aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/phy
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/phy')
-rw-r--r--drivers/net/phy/broadcom.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/net/phy/broadcom.c b/drivers/net/phy/broadcom.c
index 7b10495fe8fb..f63c96a4ecb4 100644
--- a/drivers/net/phy/broadcom.c
+++ b/drivers/net/phy/broadcom.c
@@ -108,6 +108,7 @@
108#define BCM54XX_SHD_SCR3 0x05 108#define BCM54XX_SHD_SCR3 0x05
109#define BCM54XX_SHD_SCR3_DEF_CLK125 0x0001 109#define BCM54XX_SHD_SCR3_DEF_CLK125 0x0001
110#define BCM54XX_SHD_SCR3_DLLAPD_DIS 0x0002 110#define BCM54XX_SHD_SCR3_DLLAPD_DIS 0x0002
111#define BCM54XX_SHD_SCR3_TRDDAPD 0x0004
111 112
112/* 01010: Auto Power-Down */ 113/* 01010: Auto Power-Down */
113#define BCM54XX_SHD_APD 0x0a 114#define BCM54XX_SHD_APD 0x0a
@@ -362,6 +363,9 @@ static void bcm54xx_adjust_rxrefclk(struct phy_device *phydev)
362 else 363 else
363 val |= BCM54XX_SHD_SCR3_DLLAPD_DIS; 364 val |= BCM54XX_SHD_SCR3_DLLAPD_DIS;
364 365
366 if (phydev->dev_flags & PHY_BRCM_DIS_TXCRXC_NOENRGY)
367 val |= BCM54XX_SHD_SCR3_TRDDAPD;
368
365 if (orig != val) 369 if (orig != val)
366 bcm54xx_shadow_write(phydev, BCM54XX_SHD_SCR3, val); 370 bcm54xx_shadow_write(phydev, BCM54XX_SHD_SCR3, val);
367 371
@@ -409,6 +413,7 @@ static int bcm54xx_config_init(struct phy_device *phydev)
409 bcm54xx_shadow_write(phydev, BCM54XX_SHD_RGMII_MODE, 0); 413 bcm54xx_shadow_write(phydev, BCM54XX_SHD_RGMII_MODE, 0);
410 414
411 if ((phydev->dev_flags & PHY_BRCM_RX_REFCLK_UNUSED) || 415 if ((phydev->dev_flags & PHY_BRCM_RX_REFCLK_UNUSED) ||
416 (phydev->dev_flags & PHY_BRCM_DIS_TXCRXC_NOENRGY) ||
412 (phydev->dev_flags & PHY_BRCM_AUTO_PWRDWN_ENABLE)) 417 (phydev->dev_flags & PHY_BRCM_AUTO_PWRDWN_ENABLE))
413 bcm54xx_adjust_rxrefclk(phydev); 418 bcm54xx_adjust_rxrefclk(phydev);
414 419