openwrt/target/linux/brcm63xx/base-files/etc/diag.sh
Daniel Dickinson 8fa9b24a4c bcm63xx: Allow 'colored' power leds.
Since some devices have more than one power led, they might be separated by
their color in the name. To also allow them to be on after leaving preinit,
set any status led starting with 'power' to on instead of only those with
the exact name of 'power'.

Signed-off-by: Jonas Gorski <jonas.gorski+openwrt@gmail.com>

SVN-Revision: 24187
2010-11-28 22:04:30 +00:00

72 lines
1.5 KiB
Bash
Executable File

#!/bin/sh
#
# 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
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}" != "$status_led" ]; then
status_led_on
else
status_led_off
fi
;;
esac
}