forked from Minki/linux
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;
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
int ret;
|
||||
@ -154,7 +175,11 @@ static int bcm7xxx_28nm_config_init(struct phy_device *phydev)
|
||||
if (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)
|
||||
|
Loading…
Reference in New Issue
Block a user