]> git.sur5r.net Git - u-boot/blobdiff - drivers/net/phy/phy.c
phy: Add support for SMSC LAN87xx PHYs
[u-boot] / drivers / net / phy / phy.c
index 833a0512ecaacdf109fe48faddea1ddac50c0206..eb551803e5c749dbcdafb1ed2f0f000f620741e4 100644 (file)
@@ -318,10 +318,13 @@ static int genphy_parse_link(struct phy_device *phydev)
                lpa = phy_read(phydev, MDIO_DEVAD_NONE, MII_ADVERTISE);
                lpa &= phy_read(phydev, MDIO_DEVAD_NONE, MII_LPA);
 
-               if (lpa & (LPA_100FULL | LPA_100HALF))
+               if (lpa & (LPA_100FULL | LPA_100HALF)) {
                        phydev->speed = SPEED_100;
 
-               if (lpa & (LPA_100FULL | LPA_10FULL))
+                       if (lpa & LPA_100FULL)
+                               phydev->duplex = DUPLEX_FULL;
+
+               } else if (lpa & LPA_10FULL)
                        phydev->duplex = DUPLEX_FULL;
        } else {
                u32 bmcr = phy_read(phydev, MDIO_DEVAD_NONE, MII_BMCR);
@@ -441,6 +444,9 @@ int phy_init(void)
 #ifdef CONFIG_PHY_REALTEK
        phy_realtek_init();
 #endif
+#ifdef CONFIG_PHY_SMSC
+       phy_smsc_init();
+#endif
 #ifdef CONFIG_PHY_TERANETICS
        phy_teranetics_init();
 #endif