Skip to content

Commit

Permalink
net: bcmgenet: implement GPHY power down sequence
Browse files Browse the repository at this point in the history
Implement the GPHY power down sequence by setting all power down bits, putting
the GPHY in reset, and finally cutting the 25Mhz reference clock.

Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Florian Fainelli authored and David S. Miller committed Mar 24, 2015
1 parent 0c81a8e commit a9d608c
Showing 1 changed file with 7 additions and 2 deletions.
9 changes: 7 additions & 2 deletions drivers/net/ethernet/broadcom/genet/bcmmii.c
Original file line number Diff line number Diff line change
Expand Up @@ -177,8 +177,8 @@ static void bcmgenet_phy_power_set(struct net_device *dev, bool enable)
if (!GENET_IS_V4(priv))
return;

reg = bcmgenet_ext_readl(priv, EXT_GPHY_CTRL);
if (enable) {
reg = bcmgenet_ext_readl(priv, EXT_GPHY_CTRL);
reg &= ~EXT_CK25_DIS;
bcmgenet_ext_writel(priv, reg, EXT_GPHY_CTRL);
mdelay(1);
Expand All @@ -189,9 +189,14 @@ static void bcmgenet_phy_power_set(struct net_device *dev, bool enable)
mdelay(1);

reg &= ~EXT_GPHY_RESET;
} else {
reg |= EXT_CFG_IDDQ_BIAS | EXT_CFG_PWR_DOWN | EXT_GPHY_RESET;
bcmgenet_ext_writel(priv, reg, EXT_GPHY_CTRL);
udelay(60);
mdelay(1);
reg |= EXT_CK25_DIS;
}
bcmgenet_ext_writel(priv, reg, EXT_GPHY_CTRL);
udelay(60);
}

static void bcmgenet_internal_phy_setup(struct net_device *dev)
Expand Down

0 comments on commit a9d608c

Please sign in to comment.