Skip to content

Commit 450895d

Browse files
vladimirolteandavem330
authored andcommitted
net: phy: bcm54xx: Encode link speed and activity into LEDs
Previously the green and amber LEDs on this quad PHY were solid, to indicate an encoding of the link speed (10/100/1000). This keeps the LEDs always on just as before, but now they flash on Rx/Tx activity. Signed-off-by: Vladimir Oltean <olteanv@gmail.com> Reviewed-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
1 parent 9926cb5 commit 450895d

File tree

2 files changed

+29
-0
lines changed

2 files changed

+29
-0
lines changed

drivers/net/phy/broadcom.c

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -323,6 +323,19 @@ static int bcm54xx_config_init(struct phy_device *phydev)
323323

324324
bcm54xx_phydsp_config(phydev);
325325

326+
/* Encode link speed into LED1 and LED3 pair (green/amber).
327+
* Also flash these two LEDs on activity. This means configuring
328+
* them for MULTICOLOR and encoding link/activity into them.
329+
*/
330+
val = BCM5482_SHD_LEDS1_LED1(BCM_LED_SRC_MULTICOLOR1) |
331+
BCM5482_SHD_LEDS1_LED3(BCM_LED_SRC_MULTICOLOR1);
332+
bcm_phy_write_shadow(phydev, BCM5482_SHD_LEDS1, val);
333+
334+
val = BCM_LED_MULTICOLOR_IN_PHASE |
335+
BCM5482_SHD_LEDS1_LED1(BCM_LED_MULTICOLOR_LINK_ACT) |
336+
BCM5482_SHD_LEDS1_LED3(BCM_LED_MULTICOLOR_LINK_ACT);
337+
bcm_phy_write_exp(phydev, BCM_EXP_MULTICOLOR, val);
338+
326339
return 0;
327340
}
328341

include/linux/brcmphy.h

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,22 @@
148148
#define BCM_LED_SRC_OFF 0xe /* Tied high */
149149
#define BCM_LED_SRC_ON 0xf /* Tied low */
150150

151+
/*
152+
* Broadcom Multicolor LED configurations (expansion register 4)
153+
*/
154+
#define BCM_EXP_MULTICOLOR (MII_BCM54XX_EXP_SEL_ER + 0x04)
155+
#define BCM_LED_MULTICOLOR_IN_PHASE BIT(8)
156+
#define BCM_LED_MULTICOLOR_LINK_ACT 0x0
157+
#define BCM_LED_MULTICOLOR_SPEED 0x1
158+
#define BCM_LED_MULTICOLOR_ACT_FLASH 0x2
159+
#define BCM_LED_MULTICOLOR_FDX 0x3
160+
#define BCM_LED_MULTICOLOR_OFF 0x4
161+
#define BCM_LED_MULTICOLOR_ON 0x5
162+
#define BCM_LED_MULTICOLOR_ALT 0x6
163+
#define BCM_LED_MULTICOLOR_FLASH 0x7
164+
#define BCM_LED_MULTICOLOR_LINK 0x8
165+
#define BCM_LED_MULTICOLOR_ACT 0x9
166+
#define BCM_LED_MULTICOLOR_PROGRAM 0xa
151167

152168
/*
153169
* BCM5482: Shadow registers

0 commit comments

Comments
 (0)