From c5cffacc1d4f7d2b9f9112dda9531252db2cdec6 Mon Sep 17 00:00:00 2001 From: Manuel Fombuena Date: Tue, 19 May 2026 13:08:00 +0100 Subject: [PATCH] base-files: add ucidef for LEDs with configurable brightness Add ucidef_set_led_brightness() to set up a static LED with an optional brightness level, complementing ucidef_set_led_default() for hardware that supports per-channel current or PWM control. The function writes a "brightness" type to board.json alongside the default on/off state. config_generate picks this up and writes the brightness option to the UCI LED config, where the led init script already knows to apply it. Signed-off-by: Manuel Fombuena Link: https://github.com/openwrt/openwrt/pull/23457 Signed-off-by: Robert Marko --- package/base-files/files/bin/config_generate | 6 ++++++ .../base-files/files/lib/functions/uci-defaults.sh | 11 +++++++++++ 2 files changed, 17 insertions(+) diff --git a/package/base-files/files/bin/config_generate b/package/base-files/files/bin/config_generate index 18fae054d4d..e9039c14a43 100755 --- a/package/base-files/files/bin/config_generate +++ b/package/base-files/files/bin/config_generate @@ -405,6 +405,12 @@ generate_led() { EOF case "$type" in + brightness) + local brightness + json_get_vars brightness + [ -n "$brightness" ] && uci -q set system.$cfg.brightness="$brightness" + ;; + gpio) local gpio inverted json_get_vars gpio inverted diff --git a/package/base-files/files/lib/functions/uci-defaults.sh b/package/base-files/files/lib/functions/uci-defaults.sh index 43c630fc7cb..b3e9824a6cf 100644 --- a/package/base-files/files/lib/functions/uci-defaults.sh +++ b/package/base-files/files/lib/functions/uci-defaults.sh @@ -416,6 +416,17 @@ ucidef_set_led_ataport() { _ucidef_set_led_trigger "$1" "$2" "$3" ata"$4" } +ucidef_set_led_brightness() { + _ucidef_set_led_common "$1" "$2" "$3" + + json_add_string type brightness + json_add_string default "$4" + [ -n "$5" ] && json_add_string brightness "$5" + json_select .. + + json_select .. +} + _ucidef_set_led_common() { local cfg="led_$1" local name="$2"