lantiq: add support for indicating the boot state using three leds
[openwrt/openwrt.git] / target / linux / lantiq / base-files / etc / diag.sh
index 0e65e6133b537d048033da4b828f1caca29ab91c..8356bcda69a42ed9bc2be9aedbfd193408fccd4d 100644 (file)
@@ -1,54 +1,34 @@
 #!/bin/sh
-# Copyright (C) 2012-2013 OpenWrt.org
+# Copyright (C) 2010-2015 OpenWrt.org
 
 . /lib/functions/leds.sh
 . /lib/functions/lantiq.sh
 
-power="$(lantiq_get_dt_led_chosen power)"
-power1="$(lantiq_get_dt_led_chosen power1)"
-power2="$(lantiq_get_dt_led_chosen power2)"
-
-status_led="$power"
+boot="$(lantiq_get_dt_led_chosen boot)"
+failsafe="$(lantiq_get_dt_led_chosen failsafe)"
+running="$(lantiq_get_dt_led_chosen running)"
 
 set_state() {
+    status_led="$boot"
+
        case "$1" in
        preinit)
-               if [ -n "$power2" ]; then
-                       status_led_on
-                       status_led="$power2"
-                       status_led_blink_preinit
-                       status_led="$power"
-               else
-                       status_led_blink_preinit
-               fi
+               status_led_blink_preinit
                ;;
        failsafe)
-               if [ -n "$power2" ]; then
-                       led_off "$power2"
-                       status_led_blink_failsafe
-               elif [ -n "$power1" ]; then
-                       status_led_off
-                       status_led="$power1"
-                       status_led_blink_failsafe
-                       status_led="$power"
-               else
-                       status_led_blink_failsafe
-               fi
+               status_led_off
+               status_led="$failsafe"
+               status_led_blink_failsafe
                ;;
        preinit_regular)
-               if [ -n "$power2" ]; then
-                       status_led_on
-                       status_led="$power2"
-                       status_led_blink_preinit_regular
-                       status_led="$power"
-               else
-                       status_led_blink_preinit_regular
-               fi
+               status_led_blink_preinit_regular
                ;;
        done)
-               status_led_on
-               led_off "$power1"
-               led_off "$power2"
+               status_led_off
+               [ -n "$running" ] & {
+                       status_led="$running"
+                       status_led_on
+               }
                ;;
        esac
 }