net: phy: bcm7xxx: enable auto power down
The 28nm process BCM7xxx internal Gigabit PHYs all support automatic power down, turn on that feature as part of the configuration initialization callback. Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
705314797b
commit
9df54ddab9
|
@ -146,6 +146,27 @@ static int bcm7xxx_28nm_afe_config_init(struct phy_device *phydev)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int bcm7xxx_apd_enable(struct phy_device *phydev)
|
||||||
|
{
|
||||||
|
int val;
|
||||||
|
|
||||||
|
/* Enable powering down of the DLL during auto-power down */
|
||||||
|
val = bcm54xx_shadow_read(phydev, BCM54XX_SHD_SCR3);
|
||||||
|
if (val < 0)
|
||||||
|
return val;
|
||||||
|
|
||||||
|
val |= BCM54XX_SHD_SCR3_DLLAPD_DIS;
|
||||||
|
bcm54xx_shadow_write(phydev, BCM54XX_SHD_SCR3, val);
|
||||||
|
|
||||||
|
/* Enable auto-power down */
|
||||||
|
val = bcm54xx_shadow_read(phydev, BCM54XX_SHD_APD);
|
||||||
|
if (val < 0)
|
||||||
|
return val;
|
||||||
|
|
||||||
|
val |= BCM54XX_SHD_APD_EN;
|
||||||
|
return bcm54xx_shadow_write(phydev, BCM54XX_SHD_APD, val);
|
||||||
|
}
|
||||||
|
|
||||||
static int bcm7xxx_28nm_config_init(struct phy_device *phydev)
|
static int bcm7xxx_28nm_config_init(struct phy_device *phydev)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
|
@ -154,7 +175,11 @@ static int bcm7xxx_28nm_config_init(struct phy_device *phydev)
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
return bcm7xxx_28nm_afe_config_init(phydev);
|
ret = bcm7xxx_28nm_afe_config_init(phydev);
|
||||||
|
if (ret)
|
||||||
|
return ret;
|
||||||
|
|
||||||
|
return bcm7xxx_apd_enable(phydev);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int bcm7xxx_28nm_resume(struct phy_device *phydev)
|
static int bcm7xxx_28nm_resume(struct phy_device *phydev)
|
||||||
|
|
Loading…
Reference in New Issue