summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/ethernet/freescale/xgmac_mdio.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/net/ethernet/freescale/xgmac_mdio.c b/drivers/net/ethernet/freescale/xgmac_mdio.c
index 2263477..dca1325 100644
--- a/drivers/net/ethernet/freescale/xgmac_mdio.c
+++ b/drivers/net/ethernet/freescale/xgmac_mdio.c
@@ -19,6 +19,9 @@
#include <linux/mdio.h>
#include <linux/of_platform.h>
#include <linux/of_mdio.h>
+#ifdef CONFIG_FMAN_V3L
+#include <asm/mpc85xx.h>
+#endif
/* Number of microseconds to wait for a register to respond */
#define TIMEOUT 1000
@@ -180,6 +183,12 @@ static int xgmac_mdio_read(struct mii_bus *bus, int phy_id, int regnum)
return ret;
}
+#ifdef CONFIG_FMAN_V3L
+ /* Fixup for RTL8211F MDIO timing delay on T1023RDB */
+ if (SVR_SOC_VER(mfspr(SPRN_SVR)) == SVR_T1023)
+ udelay(50);
+#endif
+
/* Initiate the read */
out_be32(&regs->mdio_ctl, mdio_ctl | MDIO_CTL_READ);