mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-21 06:33:41 +00:00
68 lines
2.2 KiB
Diff
68 lines
2.2 KiB
Diff
|
From b1e290ec968186530ec59479adfba89d2cfe21c8 Mon Sep 17 00:00:00 2001
|
||
|
From: Vladimir Oltean <olteanv@gmail.com>
|
||
|
Date: Sun, 24 Mar 2019 00:18:46 +0200
|
||
|
Subject: [PATCH] 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>
|
||
|
---
|
||
|
drivers/net/phy/broadcom.c | 13 +++++++++++++
|
||
|
include/linux/brcmphy.h | 16 ++++++++++++++++
|
||
|
2 files changed, 29 insertions(+)
|
||
|
|
||
|
--- a/drivers/net/phy/broadcom.c
|
||
|
+++ b/drivers/net/phy/broadcom.c
|
||
|
@@ -345,6 +345,19 @@ static int bcm54xx_config_init(struct ph
|
||
|
|
||
|
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;
|
||
|
}
|
||
|
|
||
|
--- a/include/linux/brcmphy.h
|
||
|
+++ b/include/linux/brcmphy.h
|
||
|
@@ -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
|