net: macb: Fix GMAC not work when enable DM_ETH
authorWenyou Yang <wenyou.yang@atmel.com>
Thu, 20 Apr 2017 03:13:13 +0000 (11:13 +0800)
committerJoe Hershberger <joe.hershberger@ni.com>
Fri, 2 Jun 2017 19:44:19 +0000 (14:44 -0500)
Always search the PHY to determine the macb->phy_addr before using
the PHY to fix "No PHY present" error.

Fix the wrong test of the GMAC's phy interface mode, it should be
PHY_INTERFACE_MODE_RGMII.

Signed-off-by: Wenyou Yang <wenyou.yang@atmel.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
drivers/net/macb.c

index bbbdb74e9517604800fcf316f1d074c5431454c6..f9373db0b9370e7afcca58caba2c3928817b87d0 100644 (file)
@@ -450,7 +450,6 @@ static void macb_phy_reset(struct macb_device *macb, const char *name)
                       name, status);
 }
 
-#ifdef CONFIG_MACB_SEARCH_PHY
 static int macb_phy_find(struct macb_device *macb, const char *name)
 {
        int i;
@@ -471,7 +470,6 @@ static int macb_phy_find(struct macb_device *macb, const char *name)
 
        return 0;
 }
-#endif /* CONFIG_MACB_SEARCH_PHY */
 
 #ifdef CONFIG_DM_ETH
 static int macb_phy_init(struct udevice *dev, const char *name)
@@ -488,11 +486,9 @@ static int macb_phy_init(struct macb_device *macb, const char *name)
        int i;
 
        arch_get_mdio_control(name);
-#ifdef CONFIG_MACB_SEARCH_PHY
        /* Auto-detect phy_addr */
        if (!macb_phy_find(macb, name))
                return 0;
-#endif /* CONFIG_MACB_SEARCH_PHY */
 
        /* Check if the PHY is up to snuff... */
        phy_id = macb_mdio_read(macb, MII_PHYSID1);
@@ -667,7 +663,8 @@ static int _macb_init(struct macb_device *macb, const char *name)
                 * to select interface between RMII and MII.
                 */
 #ifdef CONFIG_DM_ETH
-               if (macb->phy_interface == PHY_INTERFACE_MODE_RMII)
+               if ((macb->phy_interface == PHY_INTERFACE_MODE_RMII) ||
+                   (macb->phy_interface == PHY_INTERFACE_MODE_RGMII))
                        gem_writel(macb, UR, GEM_BIT(RGMII));
                else
                        gem_writel(macb, UR, 0);