base-files: add option to set LED brightness
authorPaweł Owoc <frut3k7@gmail.com>
Fri, 6 Dec 2024 16:11:59 +0000 (17:11 +0100)
committerJohn Crispin <john@phrozen.org>
Thu, 12 Dec 2024 08:46:38 +0000 (09:46 +0100)
Add option to set LED brightness via uci:

config led 'led_blue'
        option name 'blue'
        option sysfs 'blue:status'
        option brightness '1'

Signed-off-by: Paweł Owoc <frut3k7@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17190
Signed-off-by: John Crispin <john@phrozen.org>
package/base-files/files/etc/init.d/led

index 377b9dcf3ebce62b4984fd5a8c6444f065d7bb9b..d292e2a8dd1557693bb2cf160ab1521777b05133 100755 (executable)
@@ -51,6 +51,7 @@ load_led() {
        local delayon
        local delayoff
        local interval
+       local brightness
 
        config_get sysfs $1 sysfs
        config_get name $1 name "$sysfs"
@@ -67,6 +68,7 @@ load_led() {
        config_get message $1 message ""
        config_get gpio $1 gpio "0"
        config_get_bool inverted $1 inverted "0"
+       config_get brightness $1 brightness
 
        [ "$2" ] && [ "$sysfs" != "$2" ] && return
 
@@ -105,7 +107,8 @@ load_led() {
                        echo 0 >/sys/class/leds/${sysfs}/brightness
 
                [ $default = 1 ] &&
-                       cat /sys/class/leds/${sysfs}/max_brightness > /sys/class/leds/${sysfs}/brightness
+                       [ -z "$brightness" ] && brightness=$(cat /sys/class/leds/${sysfs}/max_brightness)
+                       echo $brightness > /sys/class/leds/${sysfs}/brightness
 
                led_color_set "$1" "$sysfs"