Skip to content

Commit a9d608c

Browse files
ffainellidavem330
authored andcommitted
net: bcmgenet: implement GPHY power down sequence
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>
1 parent 0c81a8e commit a9d608c

File tree

1 file changed

+7
-2
lines changed
  • drivers/net/ethernet/broadcom/genet

1 file changed

+7
-2
lines changed

drivers/net/ethernet/broadcom/genet/bcmmii.c

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -177,8 +177,8 @@ static void bcmgenet_phy_power_set(struct net_device *dev, bool enable)
177177
if (!GENET_IS_V4(priv))
178178
return;
179179

180+
reg = bcmgenet_ext_readl(priv, EXT_GPHY_CTRL);
180181
if (enable) {
181-
reg = bcmgenet_ext_readl(priv, EXT_GPHY_CTRL);
182182
reg &= ~EXT_CK25_DIS;
183183
bcmgenet_ext_writel(priv, reg, EXT_GPHY_CTRL);
184184
mdelay(1);
@@ -189,9 +189,14 @@ static void bcmgenet_phy_power_set(struct net_device *dev, bool enable)
189189
mdelay(1);
190190

191191
reg &= ~EXT_GPHY_RESET;
192+
} else {
193+
reg |= EXT_CFG_IDDQ_BIAS | EXT_CFG_PWR_DOWN | EXT_GPHY_RESET;
192194
bcmgenet_ext_writel(priv, reg, EXT_GPHY_CTRL);
193-
udelay(60);
195+
mdelay(1);
196+
reg |= EXT_CK25_DIS;
194197
}
198+
bcmgenet_ext_writel(priv, reg, EXT_GPHY_CTRL);
199+
udelay(60);
195200
}
196201

197202
static void bcmgenet_internal_phy_setup(struct net_device *dev)

0 commit comments

Comments
 (0)