diff options
-rwxr-xr-x | package/base-files/files/etc/init.d/led | 7 | ||||
-rw-r--r-- | package/base-files/files/lib/functions/uci-defaults.sh | 20 |
2 files changed, 27 insertions, 0 deletions
diff --git a/package/base-files/files/etc/init.d/led b/package/base-files/files/etc/init.d/led index 1a57e8afd7..3f45732499 100755 --- a/package/base-files/files/etc/init.d/led +++ b/package/base-files/files/etc/init.d/led @@ -26,6 +26,8 @@ load_led() { config_get port_state $1 port_state config_get delay $1 delay "150" config_get message $1 message "" + config_get gpio $1 gpio "0" + config_get inverted $1 inverted "0" if [ "$trigger" = "rssi" ]; then # handled by rssileds userspace process @@ -80,6 +82,11 @@ load_led() { echo $delay > /sys/class/leds/${sysfs}/delay ;; + "gpio") + echo $gpio > /sys/class/leds/${sysfs}/gpio + echo $inverted > /sys/class/leds/${sysfs}/inverted + ;; + switch[0-9]*) local port_mask diff --git a/package/base-files/files/lib/functions/uci-defaults.sh b/package/base-files/files/lib/functions/uci-defaults.sh index 6577ecdcde..8ba95a22ff 100644 --- a/package/base-files/files/lib/functions/uci-defaults.sh +++ b/package/base-files/files/lib/functions/uci-defaults.sh @@ -158,6 +158,26 @@ EOF UCIDEF_LEDS_CHANGED=1 } +ucidef_set_led_trigger_gpio() { + local cfg="led_$1" + local name=$2 + local sysfs=$3 + local gpio=$4 + local inverted=$5 + + uci -q get system.$cfg && return 0 + + uci batch <<EOF +set system.$cfg='led' +set system.$cfg.name='$name' +set system.$cfg.sysfs='$sysfs' +set system.$cfg.trigger='gpio' +set system.$cfg.gpio='$gpio' +set system.$cfg.inverted='$inverted' +EOF + UCIDEF_LEDS_CHANGED=1 +} + ucidef_set_rssimon() { local dev="$1" local refresh="$2" |