summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Liu <r64343@freescale.com>2010-08-11 12:25:22 +0800
committerFrank Li <Frank.Li@freescale.com>2010-08-11 13:28:47 +0800
commitce05959b8b887839dfc451f219b7975dbf15226a (patch)
tree6b1a771375b2da96a92ba2e05d122c584ec0e283
parentadbdf54619c941b7b211e017b7c2a9bccbeec393 (diff)
ENGR00126155 FEC:Set RMII mode corretly after FEC reset
FEC on MX28 will go to MII mode after the FEC reset which lead to PHY not work correctly for next link set up. We need to reconfigure the MII/RMII mode according the platform data setting after FEC reset Signed-off-by:Jason Liu <r64343@freescale.com> (cherry picked from commit b930fa831ed7706dc3050f66ec64049755f30b11)
-rw-r--r--drivers/net/fec.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/net/fec.c b/drivers/net/fec.c
index 75deb68ae1b4..ecd121f09516 100644
--- a/drivers/net/fec.c
+++ b/drivers/net/fec.c
@@ -1409,6 +1409,15 @@ fec_stop(struct net_device *dev)
writel(1, fep->hwp + FEC_ECNTRL);
udelay(10);
+#ifdef CONFIG_ARCH_MXS
+ /* Check MII or RMII */
+ if (fep->phy_interface == PHY_INTERFACE_MODE_RMII)
+ writel(readl(fep->hwp + FEC_R_CNTRL) | 0x100,
+ fep->hwp + FEC_R_CNTRL);
+ else
+ writel(readl(fep->hwp + FEC_R_CNTRL) & ~0x100,
+ fep->hwp + FEC_R_CNTRL);
+#endif
/* Clear outstanding MII command interrupts. */
writel(FEC_ENET_MII, fep->hwp + FEC_IEVENT);