@@ -222,6 +222,11 @@
#address-cells = <1>;
#size-cells = <0>;
};
+
+ gmac: gmac@18070000 {
+ compatible = "qca,qca9560-gmac";
+ reg = <0x18070000 0x64>;
+ };
};
usb_phy0: usb-phy {
@@ -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);
This commit adds the ability to configure the GMAC of the QCA956x. Signed-off-by: David Bauer <mail@david-bauer.net> --- target/linux/ath79/dts/qca956x.dtsi | 5 +++++ .../net/ethernet/atheros/ag71xx/ag71xx_gmac.c | 13 +++++++++++++ 2 files changed, 18 insertions(+)