aboutsummaryrefslogtreecommitdiff
path: root/drivers/net/phy
diff options
context:
space:
mode:
authorMarek Vasut <marex@denx.de>2024-01-01 22:07:47 +0100
committerTom Rini <trini@konsulko.com>2024-03-26 19:58:26 -0400
commit388cb2d321dd0bc5b0dc6e7f8e96d6d0f2929736 (patch)
tree09a0ced503cc82817e7aa953f63df2016a7dd56f /drivers/net/phy
parent22f314e01ce249ec1649623ef725552f677beb62 (diff)
downloadu-boot-388cb2d321dd0bc5b0dc6e7f8e96d6d0f2929736.zip
u-boot-388cb2d321dd0bc5b0dc6e7f8e96d6d0f2929736.tar.gz
u-boot-388cb2d321dd0bc5b0dc6e7f8e96d6d0f2929736.tar.bz2
net: phy: broadcom: Configure LEDs on BCM54210E
Configure LEDs on BCM54210E so they would blink on activity and indicate link speed. Without this the LEDs are always on if cable is plugged in. Signed-off-by: Marek Vasut <marex@denx.de>
Diffstat (limited to 'drivers/net/phy')
-rw-r--r--drivers/net/phy/broadcom.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/drivers/net/phy/broadcom.c b/drivers/net/phy/broadcom.c
index 82e3bbe..ecccb7c 100644
--- a/drivers/net/phy/broadcom.c
+++ b/drivers/net/phy/broadcom.c
@@ -42,6 +42,12 @@
#define BCM54810_SHD_CLK_CTL 0x3
#define BCM54810_SHD_CLK_CTL_GTXCLK_EN BIT(9)
+#define BCM54XX_SHD_LEDS1 0x0d
+#define BCM_LED_SRC_LINKSPD2 0x1
+#define BCM_LED_SRC_ACTIVITYLED 0x3
+#define BCM54XX_SHD_LEDS1_LED3(src) (((src) & 0xf) << 4)
+#define BCM54XX_SHD_LEDS1_LED1(src) (((src) & 0xf) << 0)
+
static int bcm54xx_auxctl_read(struct phy_device *phydev, u16 regnum)
{
/* The register must be written to both the Shadow Register Select and
@@ -148,7 +154,16 @@ static int bcm54210e_config(struct phy_device *phydev)
if (ret < 0)
return ret;
- return bcm5461_config(phydev);
+ ret = bcm5461_config(phydev);
+ if (ret < 0)
+ return ret;
+
+ /* Configure LEDs to blink. */
+ bcm_phy_write_shadow(phydev, BCM54XX_SHD_LEDS1,
+ BCM54XX_SHD_LEDS1_LED1(BCM_LED_SRC_ACTIVITYLED) |
+ BCM54XX_SHD_LEDS1_LED3(BCM_LED_SRC_LINKSPD2));
+
+ return 0;
}
static int bcm54xx_parse_status(struct phy_device *phydev)