base-files: add more name source to get_dt_led helper function
[openwrt/openwrt.git] / package / base-files / files / lib / functions / leds.sh
index 4ac81455fac4b2e7c1552eb4fad384b41cea82f1..e4423b4cc8d19c2e16039c5a5d643119546c857a 100644 (file)
@@ -1,6 +1,21 @@
 #!/bin/sh
 # Copyright (C) 2013 OpenWrt.org
 
+get_dt_led() {
+       local label
+       local ledpath
+       local basepath="/proc/device-tree"
+       local nodepath="$basepath/aliases/led-$1"
+
+       [ -f "$nodepath" ] && ledpath=$(cat "$nodepath")
+       [ -n "$ledpath" ] && \
+               label=$(cat "$basepath$ledpath/label" 2>/dev/null) || \
+               label=$(cat "$basepath$ledpath/chan-name" 2>/dev/null) || \
+               echo "led label not found" 1>&2
+
+       echo "$label"
+}
+
 led_set_attr() {
        [ -f "/sys/class/leds/$1/$2" ] && echo "$3" > "/sys/class/leds/$1/$2"
 }
@@ -21,12 +36,6 @@ led_off() {
        led_set_attr $1 "brightness" 0
 }
 
-led_morse() {
-       led_set_attr $1 "trigger" "morse"
-       led_set_attr $1 "delay" "$2"
-       led_set_attr $1 "message" "$3"
-}
-
 status_led_set_timer() {
        led_timer $status_led "$1" "$2"
        [ -n "$status_led2" ] && led_timer $status_led2 "$1" "$2"
@@ -36,11 +45,6 @@ status_led_set_heartbeat() {
        led_set_attr $status_led "trigger" "heartbeat"
 }
 
-status_led_set_morse() {
-       led_morse $status_led "$1" "$2"
-       [ -n "$status_led2" ] && led_morse $status_led2 "$1" "$2"
-}
-
 status_led_on() {
        led_on $status_led
        [ -n "$status_led2" ] && led_on $status_led2
@@ -60,7 +64,7 @@ status_led_blink_fast() {
 }
 
 status_led_blink_preinit() {
-       led_timer $status_led 200 200
+       led_timer $status_led 100 100
 }
 
 status_led_blink_failsafe() {
@@ -68,5 +72,5 @@ status_led_blink_failsafe() {
 }
 
 status_led_blink_preinit_regular() {
-       led_timer $status_led 500 500
+       led_timer $status_led 200 200
 }