diff options
author | Wolfgang Denk <wd@denx.de> | 2009-08-11 21:44:55 +0200 |
---|---|---|
committer | Wolfgang Denk <wd@denx.de> | 2009-08-11 21:44:55 +0200 |
commit | f45c07dbd185650c1298399cd5b3a31a29cf0e5a (patch) | |
tree | f8a66a7451d494304039518b574c9f04baa5d4c4 /drivers/net/phy/mv88e61xx.c | |
parent | f90dc43fd67eea71124b999a7d5e617d0d86795b (diff) | |
parent | 1443cd7e54d6893ab7cc51d93fe7759cdaa8b31f (diff) | |
download | u-boot-imx-f45c07dbd185650c1298399cd5b3a31a29cf0e5a.zip u-boot-imx-f45c07dbd185650c1298399cd5b3a31a29cf0e5a.tar.gz u-boot-imx-f45c07dbd185650c1298399cd5b3a31a29cf0e5a.tar.bz2 |
Merge branch 'master' of git://git.denx.de/u-boot-net
Diffstat (limited to 'drivers/net/phy/mv88e61xx.c')
-rw-r--r-- | drivers/net/phy/mv88e61xx.c | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/drivers/net/phy/mv88e61xx.c b/drivers/net/phy/mv88e61xx.c index 29630f5..3754e8b 100644 --- a/drivers/net/phy/mv88e61xx.c +++ b/drivers/net/phy/mv88e61xx.c @@ -38,7 +38,7 @@ */ static int mv88e61xx_busychk_multic(char *name, u32 devaddr) { - u32 reg = 0; + u16 reg = 0; u32 timeout = MV88E61XX_PHY_TIMEOUT; /* Poll till SMIBusy bit is clear */ @@ -54,8 +54,7 @@ static int mv88e61xx_busychk_multic(char *name, u32 devaddr) static void mv88e61xx_wr_phy(char *name, u32 phy_adr, u32 reg_ofs, u16 data) { - u16 reg; - u32 mii_dev_addr; + u16 mii_dev_addr; /* command to read PHY dev address */ if (miiphy_read(name, 0xEE, 0xEE, &mii_dev_addr)) { @@ -73,8 +72,7 @@ static void mv88e61xx_wr_phy(char *name, u32 phy_adr, u32 reg_ofs, u16 data) static void mv88e61xx_rd_phy(char *name, u32 phy_adr, u32 reg_ofs, u16 * data) { - u16 reg; - u32 mii_dev_addr; + u16 mii_dev_addr; /* command to read PHY dev address */ if (miiphy_read(name, 0xEE, 0xEE, &mii_dev_addr)) { @@ -357,15 +355,22 @@ int mv88e61xx_switch_initialize(struct mv88e61xx_config *swconfig) } RD_PHY(name, MV88E61XX_PRT_OFST, PHY_PHYIDR2, ®); - reg &= 0xfff0; - if (reg == 0x1610) + switch (reg &= 0xfff0) { + case 0x1610: idstr = "88E6161"; - if (reg == 0x1650) + break; + case 0x1650: idstr = "88E6165"; - if (reg == 0x1210) { + break; + case 0x1210: idstr = "88E6123"; /* ports 2,3,4 not available */ swconfig->ports_enabled &= 0x023; + break; + default: + /* Could not detect switch id */ + idstr = "88E61??"; + break; } /* Port based VLANs configuration */ |