diff options
Diffstat (limited to 'target/linux/bcm27xx/patches-5.10/950-0173-net-phy-2711-Allow-ethernet-LED-mode-to-be-set-via-d.patch')
-rw-r--r-- | target/linux/bcm27xx/patches-5.10/950-0173-net-phy-2711-Allow-ethernet-LED-mode-to-be-set-via-d.patch | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/target/linux/bcm27xx/patches-5.10/950-0173-net-phy-2711-Allow-ethernet-LED-mode-to-be-set-via-d.patch b/target/linux/bcm27xx/patches-5.10/950-0173-net-phy-2711-Allow-ethernet-LED-mode-to-be-set-via-d.patch new file mode 100644 index 0000000000..84ad9387f6 --- /dev/null +++ b/target/linux/bcm27xx/patches-5.10/950-0173-net-phy-2711-Allow-ethernet-LED-mode-to-be-set-via-d.patch @@ -0,0 +1,46 @@ +From 3ab0c4b6aa76a4dedb51c4e800b5b4ba29187c46 Mon Sep 17 00:00:00 2001 +From: James Hughes <james.hughes@raspberrypi.org> +Date: Thu, 31 Oct 2019 14:39:44 +0000 +Subject: [PATCH] net:phy:2711 Allow ethernet LED mode to be set via + device tree + +Add device tree entries and code to allow the specification of +the lighting modes for the LED's on the ethernet connector. + +Signed-off-by: James Hughes <james.hughes@raspberrypi.org> +--- + drivers/net/phy/broadcom.c | 9 +++++++-- + 1 file changed, 7 insertions(+), 2 deletions(-) + +--- a/drivers/net/phy/broadcom.c ++++ b/drivers/net/phy/broadcom.c +@@ -313,6 +313,9 @@ static void bcm54xx_adjust_rxrefclk(stru + static int bcm54xx_config_init(struct phy_device *phydev) + { + int reg, err, val; ++ u32 led_modes[] = {BCM_LED_MULTICOLOR_LINK_ACT, ++ BCM_LED_MULTICOLOR_LINK_ACT}; ++ struct device_node *np = phydev->mdio.dev.of_node; + + reg = phy_read(phydev, MII_BCM54XX_ECR); + if (reg < 0) +@@ -368,6 +371,8 @@ static int bcm54xx_config_init(struct ph + + bcm54xx_phydsp_config(phydev); + ++ of_property_read_u32_array(np, "led-modes", led_modes, 2); ++ + /* 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. +@@ -377,8 +382,8 @@ static int bcm54xx_config_init(struct ph + 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); ++ BCM5482_SHD_LEDS1_LED1(led_modes[0]) | ++ BCM5482_SHD_LEDS1_LED3(led_modes[1]); + bcm_phy_write_exp(phydev, BCM_EXP_MULTICOLOR, val); + + return 0; |