ar8216: Fix problem with AR8337 MAC swap handling
[openwrt.git] / target / linux / ar71xx / files / arch / mips / ath79 / mach-wlr8100.c
index 8eecc0e..6a90c6e 100644 (file)
@@ -136,23 +136,6 @@ static struct mdio_board_info wlr8100_mdio0_info[] = {
        },
 };
 
-static void __init wlr8100_gmac_setup(void)
-{
-       void __iomem *base;
-       u32 t;
-
-       base = ioremap(QCA955X_GMAC_BASE, QCA955X_GMAC_SIZE);
-
-       t = __raw_readl(base + QCA955X_GMAC_REG_ETH_CFG);
-
-       t &= ~(QCA955X_ETH_CFG_RGMII_EN | QCA955X_ETH_CFG_GE0_SGMII);
-       t |= QCA955X_ETH_CFG_RGMII_EN;
-
-       __raw_writel(t, base + QCA955X_GMAC_REG_ETH_CFG);
-
-       iounmap(base);
-}
-
 static void __init wlr8100_common_setup(void)
 {
        u8 *art = (u8 *) KSEG1ADDR(0x1fff0000);
@@ -169,7 +152,7 @@ static void __init wlr8100_common_setup(void)
 
        ath79_register_wmac(art + WLR8100_WMAC_CALDATA_OFFSET, NULL);
 
-       wlr8100_gmac_setup();
+       ath79_setup_qca955x_eth_cfg(QCA955X_ETH_CFG_RGMII_EN);
 
        ath79_register_mdio(0, 0x0);
 
@@ -203,6 +186,7 @@ static void __init wlr8100_010_setup(void)
        wlr8100_ar8327_pad0_cfg.rxclk_delay_en = true;
        wlr8100_ar8327_pad0_cfg.txclk_delay_sel = AR8327_CLK_DELAY_SEL1;
        wlr8100_ar8327_pad0_cfg.rxclk_delay_sel = AR8327_CLK_DELAY_SEL2;
+       wlr8100_ar8327_pad0_cfg.mac06_exchange_en = true;
 
        /* GMAC6 of the AR8337 switch is connected to GMAC1 via SGMII */
        wlr8100_ar8327_pad6_cfg.mode = AR8327_PAD_MAC_SGMII;