Skip to content

Commit

Permalink
net: phy: bcm54xx: Encode link speed and activity into LEDs
Browse files Browse the repository at this point in the history
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 <[email protected]>
Reviewed-by: Florian Fainelli <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
  • Loading branch information
vladimiroltean authored and davem330 committed Mar 26, 2019
1 parent 9926cb5 commit 450895d
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 0 deletions.
13 changes: 13 additions & 0 deletions drivers/net/phy/broadcom.c
Original file line number Diff line number Diff line change
Expand Up @@ -323,6 +323,19 @@ static int bcm54xx_config_init(struct phy_device *phydev)

bcm54xx_phydsp_config(phydev);

/* Encode link speed into LED1 and LED3 pair (green/amber).
* Also flash these two LEDs on activity. This means configuring
* them for MULTICOLOR and encoding link/activity into them.
*/
val = BCM5482_SHD_LEDS1_LED1(BCM_LED_SRC_MULTICOLOR1) |
BCM5482_SHD_LEDS1_LED3(BCM_LED_SRC_MULTICOLOR1);
bcm_phy_write_shadow(phydev, BCM5482_SHD_LEDS1, val);

val = BCM_LED_MULTICOLOR_IN_PHASE |
BCM5482_SHD_LEDS1_LED1(BCM_LED_MULTICOLOR_LINK_ACT) |
BCM5482_SHD_LEDS1_LED3(BCM_LED_MULTICOLOR_LINK_ACT);
bcm_phy_write_exp(phydev, BCM_EXP_MULTICOLOR, val);

return 0;
}

Expand Down
16 changes: 16 additions & 0 deletions include/linux/brcmphy.h
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,22 @@
#define BCM_LED_SRC_OFF 0xe /* Tied high */
#define BCM_LED_SRC_ON 0xf /* Tied low */

/*
* Broadcom Multicolor LED configurations (expansion register 4)
*/
#define BCM_EXP_MULTICOLOR (MII_BCM54XX_EXP_SEL_ER + 0x04)
#define BCM_LED_MULTICOLOR_IN_PHASE BIT(8)
#define BCM_LED_MULTICOLOR_LINK_ACT 0x0
#define BCM_LED_MULTICOLOR_SPEED 0x1
#define BCM_LED_MULTICOLOR_ACT_FLASH 0x2
#define BCM_LED_MULTICOLOR_FDX 0x3
#define BCM_LED_MULTICOLOR_OFF 0x4
#define BCM_LED_MULTICOLOR_ON 0x5
#define BCM_LED_MULTICOLOR_ALT 0x6
#define BCM_LED_MULTICOLOR_FLASH 0x7
#define BCM_LED_MULTICOLOR_LINK 0x8
#define BCM_LED_MULTICOLOR_ACT 0x9
#define BCM_LED_MULTICOLOR_PROGRAM 0xa

/*
* BCM5482: Shadow registers
Expand Down

0 comments on commit 450895d

Please sign in to comment.