1#!/bin/sh
2#
3# Copyright (C) 2007 OpenWrt.org
4#
5#
6
7. /lib/brcm63xx.sh
8
9led_set_attr() {
10	[ -f "/sys/class/leds/$1/$2" ] && echo "$3" > "/sys/class/leds/$1/$2"
11}
12
13status_led_set_timer() {
14	led_set_attr $status_led "trigger" "timer"
15	led_set_attr $status_led "delay_on" "$1"
16	led_set_attr $status_led "delay_off" "$2"
17	[ -n "$status_led2" ] && {
18		led_set_attr $status_led2 "trigger" "timer"
19		led_set_attr $status_led2 "delay_on" "$1"
20		led_set_attr $status_led2 "delay_off" "$2"
21	}
22}
23
24status_led_set_morse() {
25	led_set_attr $status_led "trigger" "morse"
26	led_set_attr $status_led "delay" "$1"
27	led_set_attr $status_led "message" "$2"
28	[ -n "$status_led2" ] && {
29		led_set_attr $status_led2 "trigger" "morse"
30		led_set_attr $status_led2 "delay" "$1"
31		led_set_attr $status_led2 "message" "$2"
32	}
33}
34
35status_led_on() {
36	led_set_attr $status_led "trigger" "none"
37	led_set_attr $status_led "brightness" 255
38	[ -n "$status_led2" ] && {
39		led_set_attr $status_led2 "trigger" "none"
40		led_set_attr $status_led2 "brightness" 255
41	}
42}
43
44status_led_off() {
45	led_set_attr $status_led "trigger" "none"
46	led_set_attr $status_led "brightness" 0
47	[ -n "$status_led2" ] && {
48		led_set_attr $status_led2 "trigger" "none"
49		led_set_attr $status_led2 "brightness" 0
50	}
51}
52
53set_state() {
54	case "$1" in
55	preinit)
56		insmod leds-gpio
57		status_led_on
58		status_led_set_timer 200 200
59		;;
60	failsafe)
61		status_led_set_timer 50 50
62		;;
63	done)
64		if [ "${status_led/power}" != "$status_led" ]; then
65			status_led_on
66		else
67			status_led_off
68		fi
69		;;
70	esac
71}
72