[OpenWrt-Devel] [PATCH 1/2] ath79: add QCA956x GMAC config

David Bauer mail at david-bauer.net
Sun Aug 12 19:48:39 EDT 2018


This commit adds the ability to configure the GMAC of the QCA956x.

Signed-off-by: David Bauer <mail at david-bauer.net>
---
 target/linux/ath79/dts/qca956x.dtsi                 |  5 +++++
 .../net/ethernet/atheros/ag71xx/ag71xx_gmac.c       | 13 +++++++++++++
 2 files changed, 18 insertions(+)

diff --git a/target/linux/ath79/dts/qca956x.dtsi b/target/linux/ath79/dts/qca956x.dtsi
index 10c88eedc2..8145371747 100644
--- a/target/linux/ath79/dts/qca956x.dtsi
+++ b/target/linux/ath79/dts/qca956x.dtsi
@@ -222,6 +222,11 @@
 			#address-cells = <1>;
 			#size-cells = <0>;
 		};
+
+		gmac: gmac at 18070000 {
+			compatible = "qca,qca9560-gmac";
+			reg = <0x18070000 0x64>;
+		};
 	};
 
 	usb_phy0: usb-phy {
diff --git a/target/linux/ath79/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_gmac.c b/target/linux/ath79/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_gmac.c
index 55a8f57f15..2e5fb3a641 100644
--- a/target/linux/ath79/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_gmac.c
+++ b/target/linux/ath79/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_gmac.c
@@ -75,6 +75,17 @@ static void ag71xx_setup_gmac_955x(struct device_node *np, void __iomem *base)
 	__raw_writel(val, base + QCA955X_GMAC_REG_ETH_CFG);
 }
 
+static void ag71xx_setup_gmac_956x(struct device_node *np, void __iomem *base)
+{
+	u32 val = __raw_readl(base + QCA956X_GMAC_REG_ETH_CFG);
+
+	ag71xx_of_bit(np, "switch-phy-swap", &val, QCA956X_ETH_CFG_SW_PHY_SWAP);
+	ag71xx_of_bit(np, "switch-phy-addr-swap", &val,
+		QCA956X_ETH_CFG_SW_PHY_ADDR_SWAP);
+
+	__raw_writel(val, base + QCA956X_GMAC_REG_ETH_CFG);
+}
+
 int ag71xx_setup_gmac(struct device_node *np)
 {
 	struct device_node *np_dev;
@@ -102,6 +113,8 @@ int ag71xx_setup_gmac(struct device_node *np)
 		ag71xx_setup_gmac_934x(np, base);
 	else if (of_device_is_compatible(np_dev, "qca,qca9550-gmac"))
 		ag71xx_setup_gmac_955x(np, base);
+	else if (of_device_is_compatible(np_dev, "qca,qca9560-gmac"))
+		ag71xx_setup_gmac_956x(np, base);
 
 	iounmap(base);
 
-- 
2.18.0


_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel



More information about the openwrt-devel mailing list