|
|
@ -734,6 +734,7 @@ ar8327_hw_init(struct ar8216_priv *priv) |
|
|
|
{ |
|
|
|
{ |
|
|
|
struct ar8327_platform_data *pdata; |
|
|
|
struct ar8327_platform_data *pdata; |
|
|
|
struct ar8327_led_cfg *led_cfg; |
|
|
|
struct ar8327_led_cfg *led_cfg; |
|
|
|
|
|
|
|
struct mii_bus *bus; |
|
|
|
u32 pos, new_pos; |
|
|
|
u32 pos, new_pos; |
|
|
|
u32 t; |
|
|
|
u32 t; |
|
|
|
int i; |
|
|
|
int i; |
|
|
@ -770,9 +771,20 @@ ar8327_hw_init(struct ar8216_priv *priv) |
|
|
|
priv->write(priv, AR8327_REG_POWER_ON_STRIP, new_pos); |
|
|
|
priv->write(priv, AR8327_REG_POWER_ON_STRIP, new_pos); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
for (i = 0; i < AR8327_NUM_PHYS; i++) |
|
|
|
bus = priv->phy->bus; |
|
|
|
|
|
|
|
for (i = 0; i < AR8327_NUM_PHYS; i++) { |
|
|
|
ar8327_phy_fixup(priv, i); |
|
|
|
ar8327_phy_fixup(priv, i); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* start aneg on the PHY */ |
|
|
|
|
|
|
|
mdiobus_write(bus, i, MII_ADVERTISE, ADVERTISE_ALL | |
|
|
|
|
|
|
|
ADVERTISE_PAUSE_CAP | |
|
|
|
|
|
|
|
ADVERTISE_PAUSE_ASYM); |
|
|
|
|
|
|
|
mdiobus_write(bus, i, MII_CTRL1000, ADVERTISE_1000FULL); |
|
|
|
|
|
|
|
mdiobus_write(bus, i, MII_BMCR, BMCR_RESET | BMCR_ANENABLE); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
msleep(1000); |
|
|
|
|
|
|
|
|
|
|
|
return 0; |
|
|
|
return 0; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|