ARM: don't probe PHY address for LaCie boards
authorSimon Guinot <simon.guinot@sequanux.org>
Tue, 5 Jun 2012 13:16:00 +0000 (13:16 +0000)
committerAlbert ARIBAUD <albert.u.boot@aribaud.net>
Sat, 7 Jul 2012 12:07:33 +0000 (14:07 +0200)
The command miiphy_read(name, 0xEE, 0xEE, (u16 *) &devadr) always
returns 8 for the PHY address. It is the reset value for the PHY
Address Register. Obviously, this default value could be incorrect.
Moreover, as the PHY address is well known, there is no need to
auto-detect it.

Now, the PHY address must given as a parameter to the PHY initialization
function. Additionally this patch also fixes some aesthetic issues.

Signed-off-by: Simon Guinot <simon.guinot@sequanux.org>
board/LaCie/common/common.c
board/LaCie/common/common.h
board/LaCie/edminiv2/edminiv2.c
board/LaCie/net2big_v2/net2big_v2.c
board/LaCie/netspace_v2/netspace_v2.c

index dc5350dc281219babe1b0c16fcda4181645379f1..78d0edc66d8384ac4a44a25bd8d6d2cfd0976a1e 100644 (file)
 #define MV88E1116_RGMII_TXTM_CTRL      (1 << 4)
 #define MV88E1116_RGMII_RXTM_CTRL      (1 << 5)
 
-void mv_phy_88e1116_init(const char *name)
+void mv_phy_88e1116_init(const char *name, u16 phyaddr)
 {
        u16 reg;
-       u16 devadr;
 
        if (miiphy_set_current_dev(name))
                return;
 
-       /* command to read PHY dev address */
-       if (miiphy_read(name, 0xEE, 0xEE, (u16 *) &devadr)) {
-               printf("Err..(%s) could not read PHY dev address\n", __func__);
-               return;
-       }
-
        /*
         * Enable RGMII delay on Tx and Rx for CPU port
         * Ref: sec 4.7.2 of chip datasheet
         */
-       miiphy_write(name, devadr, MV88E1116_PGADR_REG, 2);
-       miiphy_read(name, devadr, MV88E1116_MAC_CTRL_REG, &reg);
+       miiphy_write(name, phyaddr, MV88E1116_PGADR_REG, 2);
+       miiphy_read(name, phyaddr, MV88E1116_MAC_CTRL_REG, &reg);
        reg |= (MV88E1116_RGMII_RXTM_CTRL | MV88E1116_RGMII_TXTM_CTRL);
-       miiphy_write(name, devadr, MV88E1116_MAC_CTRL_REG, reg);
-       miiphy_write(name, devadr, MV88E1116_PGADR_REG, 0);
-
-       /* reset the phy */
-       miiphy_reset(name, devadr);
+       miiphy_write(name, phyaddr, MV88E1116_MAC_CTRL_REG, reg);
+       miiphy_write(name, phyaddr, MV88E1116_PGADR_REG, 0);
 
-       printf("88E1116 Initialized on %s\n", name);
+       if (miiphy_reset(name, phyaddr) == 0)
+               printf("88E1116 Initialized on %s\n", name);
 }
 #endif /* CONFIG_CMD_NET && CONFIG_RESET_PHY_R */
 
index 82a95222360c90278050f090f88ef6e3592b9447..2edd5abbcd055b31ecdce28e731c752d286eef4d 100644 (file)
@@ -11,7 +11,7 @@
 #define _LACIE_COMMON_H
 
 #if defined(CONFIG_CMD_NET) && defined(CONFIG_RESET_PHY_R)
-void mv_phy_88e1116_init(const char *name);
+void mv_phy_88e1116_init(const char *name, u16 phyaddr);
 #endif
 #if defined(CONFIG_CMD_I2C) && defined(CONFIG_SYS_I2C_EEPROM_ADDR)
 int lacie_read_mac_address(uchar *mac);
index 1b33875f2f0e5d29685f025bcbfe2da0502a3e01..4a9b30834acc143b5aa56625fa2d956dfa7a9434 100644 (file)
@@ -96,6 +96,6 @@ int board_init(void)
 /* Configure and enable MV88E1116 PHY */
 void reset_phy(void)
 {
-       mv_phy_88e1116_init("egiga0");
+       mv_phy_88e1116_init("egiga0", 8);
 }
 #endif /* CONFIG_RESET_PHY_R */
index 0f5e5a5b1f1a078390aba5228b29a8b6d44b09eb..0e06c29153dfefc89059845c1c054656963a81bd 100644 (file)
@@ -109,7 +109,7 @@ int misc_init_r(void)
 /* Configure and initialize PHY */
 void reset_phy(void)
 {
-       mv_phy_88e1116_init("egiga0");
+       mv_phy_88e1116_init("egiga0", 8);
 }
 #endif
 
index 704005f9f1ee0af6a4e4ade387067f8a2522b92a..68e8a770c790c510924ca6014f2fff0365456f1d 100644 (file)
@@ -107,7 +107,7 @@ int misc_init_r(void)
 /* Configure and initialize PHY */
 void reset_phy(void)
 {
-       mv_phy_88e1116_init("egiga0");
+       mv_phy_88e1116_init("egiga0", 8);
 }
 #endif