diff options
Diffstat (limited to 'package/base-files/files/lib/functions/leds.sh')
-rw-r--r-- | package/base-files/files/lib/functions/leds.sh | 27 |
1 files changed, 23 insertions, 4 deletions
diff --git a/package/base-files/files/lib/functions/leds.sh b/package/base-files/files/lib/functions/leds.sh index 8a1d21caef..43b2fe02ed 100644 --- a/package/base-files/files/lib/functions/leds.sh +++ b/package/base-files/files/lib/functions/leds.sh @@ -1,16 +1,24 @@ #!/bin/sh # Copyright (C) 2013 OpenWrt.org -get_dt_led() { - local label +get_dt_led_path() { local ledpath local basepath="/proc/device-tree" local nodepath="$basepath/aliases/led-$1" [ -f "$nodepath" ] && ledpath=$(cat "$nodepath") + [ -n "$ledpath" ] && ledpath="$basepath$ledpath" + + echo "$ledpath" +} + +get_dt_led() { + local label + local ledpath=$(get_dt_led_path $1) + [ -n "$ledpath" ] && \ - label=$(cat "$basepath$ledpath/label" 2>/dev/null) || \ - label=$(cat "$basepath$ledpath/chan-name" 2>/dev/null) + label=$(cat "$ledpath/label" 2>/dev/null) || \ + label=$(cat "$ledpath/chan-name" 2>/dev/null) echo "$label" } @@ -35,6 +43,17 @@ led_off() { led_set_attr $1 "brightness" 0 } +status_led_restore_trigger() { + local trigger + local ledpath=$(get_dt_led_path $1) + + [ -n "$ledpath" ] && \ + trigger=$(cat "$ledpath/linux,default-trigger" 2>/dev/null) + + [ -n "$trigger" ] && \ + led_set_attr "$(get_dt_led $1)" "trigger" "$trigger" +} + status_led_set_timer() { led_timer $status_led "$1" "$2" [ -n "$status_led2" ] && led_timer $status_led2 "$1" "$2" |