From 38d35f413daf049bd45f162ec8f68111e2da2fc6 Mon Sep 17 00:00:00 2001 From: Sven Eckelmann Date: Tue, 15 Jul 2025 19:53:07 +0200 Subject: [PATCH] realtek: rtl931x: Add support for active-low LEDs RTL930x received support for specifying active low/high LEDs in commit bec9e79a99ad ("realtek: dsa: support active-high LEDs"). But this was completely forgotten on RTL931x. Signed-off-by: Sven Eckelmann Link: https://github.com/openwrt/openwrt/pull/20300 Signed-off-by: Hauke Mehrtens --- .../realtek/files-6.12/drivers/net/dsa/rtl83xx/rtl838x.h | 2 ++ .../realtek/files-6.12/drivers/net/dsa/rtl83xx/rtl931x.c | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/target/linux/realtek/files-6.12/drivers/net/dsa/rtl83xx/rtl838x.h b/target/linux/realtek/files-6.12/drivers/net/dsa/rtl83xx/rtl838x.h index 01f83d7271..66b761fdd5 100644 --- a/target/linux/realtek/files-6.12/drivers/net/dsa/rtl83xx/rtl838x.h +++ b/target/linux/realtek/files-6.12/drivers/net/dsa/rtl83xx/rtl838x.h @@ -582,6 +582,8 @@ typedef enum { #define RTL931X_LED_PORT_FIB_MASK_CTRL (0x065c) #define RTL931X_LED_PORT_COMBO_MASK_CTRL (0x0664) +#define RTL931X_LED_GLB_ACTIVE_LOW BIT(21) + #define MAX_VLANS 4096 #define MAX_LAGS 16 #define MAX_PRIOS 8 diff --git a/target/linux/realtek/files-6.12/drivers/net/dsa/rtl83xx/rtl931x.c b/target/linux/realtek/files-6.12/drivers/net/dsa/rtl83xx/rtl931x.c index 98c74cabf8..8ac9bcc177 100644 --- a/target/linux/realtek/files-6.12/drivers/net/dsa/rtl83xx/rtl931x.c +++ b/target/linux/realtek/files-6.12/drivers/net/dsa/rtl83xx/rtl931x.c @@ -1538,6 +1538,11 @@ static void rtldsa_931x_led_init(struct rtl838x_switch_priv *priv) /* Set LED mode to serial (0x1) */ sw_w32_mask(0x3, 0x1, RTL931X_LED_GLB_CTRL); + if (of_property_read_bool(node, "active-low")) + sw_w32_mask(RTL931X_LED_GLB_ACTIVE_LOW, 0, RTL931X_LED_GLB_CTRL); + else + sw_w32_mask(0, RTL931X_LED_GLB_ACTIVE_LOW, RTL931X_LED_GLB_CTRL); + rtl839x_set_port_reg_le(pm_copper, RTL931X_LED_PORT_COPR_MASK_CTRL); rtl839x_set_port_reg_le(pm_fiber, RTL931X_LED_PORT_FIB_MASK_CTRL); rtl839x_set_port_reg_le(pm_copper | pm_fiber, RTL931X_LED_PORT_COMBO_MASK_CTRL); -- 2.30.2