X-Git-Url: http://git.rohieb.name/openwrt.git/blobdiff_plain/8a891d72ed376dd5c3ca251ec4e29c8d8b1c6c08..53a9db66e3da4f3d163beb5dc85cd2773c7a2918:/target/linux/brcm63xx/base-files/etc/diag.sh?ds=sidebyside diff --git a/target/linux/brcm63xx/base-files/etc/diag.sh b/target/linux/brcm63xx/base-files/etc/diag.sh index 325e4806e..fd9de29ad 100755 --- a/target/linux/brcm63xx/base-files/etc/diag.sh +++ b/target/linux/brcm63xx/base-files/etc/diag.sh @@ -1,12 +1,71 @@ #!/bin/sh -# Copyright (C) 2009 OpenWrt.org +# +# Copyright (C) 2007 OpenWrt.org +# +# + +. /lib/brcm63xx.sh + +led_set_attr() { + [ -f "/sys/class/leds/$1/$2" ] && echo "$3" > "/sys/class/leds/$1/$2" +} + +status_led_set_timer() { + led_set_attr $status_led "trigger" "timer" + led_set_attr $status_led "delay_on" "$1" + led_set_attr $status_led "delay_off" "$2" + [ -n "$status_led2" ] && { + led_set_attr $status_led2 "trigger" "timer" + led_set_attr $status_led2 "delay_on" "$1" + led_set_attr $status_led2 "delay_off" "$2" + } +} + +status_led_set_morse() { + led_set_attr $status_led "trigger" "morse" + led_set_attr $status_led "delay" "$1" + led_set_attr $status_led "message" "$2" + [ -n "$status_led2" ] && { + led_set_attr $status_led2 "trigger" "morse" + led_set_attr $status_led2 "delay" "$1" + led_set_attr $status_led2 "message" "$2" + } +} + +status_led_on() { + led_set_attr $status_led "trigger" "none" + led_set_attr $status_led "brightness" 255 + [ -n "$status_led2" ] && { + led_set_attr $status_led2 "trigger" "none" + led_set_attr $status_led2 "brightness" 255 + } +} + +status_led_off() { + led_set_attr $status_led "trigger" "none" + led_set_attr $status_led "brightness" 0 + [ -n "$status_led2" ] && { + led_set_attr $status_led2 "trigger" "none" + led_set_attr $status_led2 "brightness" 0 + } +} set_state() { - case "$1" in - done) - [ -d /sys/class/leds/power ] && { - echo 1 >/sys/class/leds/power/brightness - } - ;; - esac + case "$1" in + preinit) + insmod leds-gpio + status_led_on + status_led_set_timer 200 200 + ;; + failsafe) + status_led_set_timer 50 50 + ;; + done) + if [ "$status_led" = "power" ]; then + status_led_on + else + status_led_off + fi + ;; + esac }