summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/net/phy/phy.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c
index df7e9450c26..48e86d76af5 100644
--- a/drivers/net/phy/phy.c
+++ b/drivers/net/phy/phy.c
@@ -696,6 +696,12 @@ int phy_reset(struct phy_device *phydev)
reg |= BMCR_RESET;
+#ifdef CONFIG_MX6
+ /* at least on a Micrel KSZ8041 the following bits do not get
+ * cleared by a SW reset, but they should */
+ reg &= ~(BMCR_PDOWN|BMCR_LOOPBACK|BMCR_CTST);
+#endif
+
if (phy_write(phydev, devad, MII_BMCR, reg) < 0) {
debug("PHY reset failed\n");
return -1;