Before CORTINA driver only supports two phy addresses.
This patch adds the four phy addresses support for
CORTINA PHY module.

Signed-off-by: Chunhe Lan <chunhe....@freescale.com>
---
 drivers/net/phy/cortina.c |   28 ++++++++++++++++++++++------
 1 files changed, 22 insertions(+), 6 deletions(-)

diff --git a/drivers/net/phy/cortina.c b/drivers/net/phy/cortina.c
index 7e46679..1b9434f 100644
--- a/drivers/net/phy/cortina.c
+++ b/drivers/net/phy/cortina.c
@@ -289,25 +289,41 @@ int phy_cortina_init(void)
 int get_phy_id(struct mii_dev *bus, int addr, int devad, u32 *phy_id)
 {
        int phy_reg;
+       bool cortina_phy = false;
+
+       switch (addr) {
+#ifdef CORTINA_PHY_ADDR1
+       case CORTINA_PHY_ADDR1:
+#endif
+#ifdef CORTINA_PHY_ADDR2
+       case CORTINA_PHY_ADDR2:
+#endif
+#ifdef CORTINA_PHY_ADDR3
+       case CORTINA_PHY_ADDR3:
+#endif
+#ifdef CORTINA_PHY_ADDR4
+       case CORTINA_PHY_ADDR4:
+#endif
+               cortina_phy = true;
+               break;
+       default:
+               break;
+       }
 
-#if defined(CORTINA_PHY_ADDR1) || defined(CORTINA_PHY_ADDR2)
        /* Cortina PHY has non-standard offset of PHY ID registers */
-       if (addr == CORTINA_PHY_ADDR1 || addr == CORTINA_PHY_ADDR2)
+       if (cortina_phy)
                phy_reg = bus->read(bus, addr, 0, VILLA_GLOBAL_CHIP_ID_LSB);
        else
-#endif
                phy_reg = bus->read(bus, addr, devad, MII_PHYSID1);
 
        if (phy_reg < 0)
                return -EIO;
 
        *phy_id = (phy_reg & 0xffff) << 16;
-#if defined(CORTINA_PHY_ADDR1) || defined(CORTINA_PHY_ADDR2)
        /* Cortina PHY has non-standard offset of PHY ID registers */
-       if (addr == CORTINA_PHY_ADDR1 || addr == CORTINA_PHY_ADDR2)
+       if (cortina_phy)
                phy_reg = bus->read(bus, addr, 0, VILLA_GLOBAL_CHIP_ID_MSB);
        else
-#endif
                phy_reg = bus->read(bus, addr, devad, MII_PHYSID2);
 
        if (phy_reg < 0)
-- 
1.7.6.5

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to