apm821xx: convert to dt based diag LED script
[openwrt/staging/hauke.git] / target / linux / apm821xx / base-files / etc / diag.sh
index eb9b04b52511f36c49425a9bf54ec716cdd754a9..e45f2a85221e78134b5e8635e6e9839af5bc093c 100755 (executable)
@@ -3,40 +3,42 @@
 . /lib/functions.sh
 . /lib/functions/leds.sh
 
-get_status_led() {
-       local board=$(board_name)
-
-       case $board in
-       mbl|\
-       mr24|\
-       mx60|\
-       wndr4700)
-               status_led="$board:green:power"
-               ;;
-
-       *)
-               ;;
-       esac
-}
+boot="$(get_dt_led boot)"
+failsafe="$(get_dt_led failsafe)"
+running="$(get_dt_led running)"
+upgrade="$(get_dt_led upgrade)"
 
 set_state() {
-       get_status_led
+       status_led="$boot"
 
        case "$1" in
+       preinit_regular)
+               status_led_blink_preinit_regular
+               ;;
        preinit)
                status_led_blink_preinit
                ;;
-
        failsafe)
+               status_led_off
+               [ -n "$running" ] && {
+                       status_led="$running"
+                       status_led_off
+               }
+               status_led="$failsafe"
                status_led_blink_failsafe
                ;;
-
-       preinit_regular)
-               status_led_blink_preinit_regular
-               ;;
-
+       upgrade)
+               [ -n "$running" ] && {
+                       status_led="$upgrade"
+                       status_led_blink_preinit_regular
+               }
+                ;;
        done)
-               status_led_on
+               status_led_off
+               [ -n "$running" ] && {
+                       status_led="$running"
+                       status_led_on
+               }
                ;;
        esac
 }