1#!/bin/sh
2#
3# Copyright (c) 2013 The Linux Foundation. All rights reserved.
4# Copyright (C) 2009 OpenWrt.org
5#
6#
7
8. /lib/ar71xx.sh
9
10status_led=""
11
12led_set_attr() {
13	[ -f "/sys/class/leds/$1/$2" ] && echo "$3" > "/sys/class/leds/$1/$2"
14}
15
16status_led_set_timer() {
17	led_set_attr $status_led "trigger" "timer"
18	led_set_attr $status_led "delay_on" "$1"
19	led_set_attr $status_led "delay_off" "$2"
20}
21
22status_led_on() {
23	led_set_attr $status_led "trigger" "none"
24	led_set_attr $status_led "brightness" 255
25}
26
27status_led_off() {
28	led_set_attr $status_led "trigger" "none"
29	led_set_attr $status_led "brightness" 0
30}
31
32get_status_led() {
33	case $(ar71xx_board_name) in
34	alfa-nx)
35		status_led="alfa:green:led_8"
36		;;
37	all0305)
38		status_led="eap7660d:green:ds4"
39		;;
40	ap135 | \
41	ap135-dual)
42		status_led="ap135:green:status"
43		;;
44	ap136)
45		status_led="ap136:green:status"
46		;;
47	ap81)
48		status_led="ap81:green:status"
49		;;
50	ap83)
51		status_led="ap83:green:power"
52		;;
53	ap96)
54		status_led="ap96:green:led2"
55		;;
56	aph131)
57		status_led="aph131:green:status"
58		;;
59	aw-nr580)
60		status_led="aw-nr580:green:ready"
61		;;
62	bullet-m | rocket-m | nano-m | nanostation-m)
63		status_led="ubnt:green:link4"
64		;;
65	cap4200ag)
66		status_led="senao:green:pwr"
67		;;
68	db120 | \
69	db120tb388)
70		status_led="db120:green:status"
71		;;
72	db120-vhyfi)
73		status_led="db120-vhyfi:green:status"
74		;;
75	dir-600-a1 |\
76	dir-615-e4)
77		status_led="d-link:green:power"
78		;;
79	dir-615-c1)
80		status_led="d-link:green:status"
81		;;
82	dir-825-b1)
83		status_led="d-link:orange:power"
84		;;
85	eap7660d)
86		status_led="eap7660d:green:ds4"
87		;;
88	hornet-ub)
89		status_led="alfa:blue:wps"
90		;;
91	ja76pf | \
92	ja76pf2)
93		status_led="jjplus:green:led1"
94		;;
95	ls-sr71)
96		status_led="ubnt:green:d22"
97		;;
98	mr600)
99		status_led="mr600:orange:power"
100		;;
101	mzk-w04nu | \
102	mzk-w300nh)
103		status_led="planex:green:status"
104		;;
105	nbg460n_550n_550nh)
106		status_led="nbg460n:green:power"
107		;;
108	om2p | \
109	om2p-hs | \
110	om2p-lc)
111		status_led="om2p:blue:power"
112		;;
113	pb44)
114		status_led="pb44:amber:jump1"
115		;;
116	rb-411 | rb-411u | rb-433 | rb-433u | rb-450 | rb-450g | rb-493)
117		status_led="rb4xx:yellow:user"
118		;;
119       rb-750)
120               status_led="rb750:green:act"
121               ;;
122	reh132)
123		status_led="reh132:green:status"
124		;;
125	routerstation | routerstation-pro)
126		status_led="ubnt:green:rf"
127		;;
128	rw2458n)
129		status_led="rw2458n:green:d3"
130		;;
131	tew-632brp)
132		status_led="tew-632brp:green:status"
133		;;
134	tew-673gru)
135		status_led="trendnet:blue:wps"
136		;;
137	tew-712br)
138		status_led="trendnet:green:power"
139		;;
140	tl-mr3020)
141		status_led="tp-link:green:wps"
142		;;
143	tl-mr3220 | \
144	tl-mr3420 | \
145	tl-wa901nd | \
146	tl-wa901nd-v2 | \
147	tl-wr1041n-v2 | \
148	tl-wr1043nd | \
149	tl-wr741nd | \
150	tl-wr741nd-v4 | \
151	tl-wr841n-v1 | \
152	tl-wr841n-v7 | \
153	tl-wr841n-v8 | \
154	tl-wr941nd)
155		status_led="tp-link:green:system"
156		;;
157	tl-wdr4300 | \
158	tl-wr703n)
159		status_led="tp-link:blue:system"
160		;;
161	tl-wr2543n)
162		status_led="tp-link:green:wps"
163		;;
164	unifi)
165		status_led="ubnt:green:dome"
166		;;
167	whr-g301n | \
168	whr-hp-g300n | \
169	whr-hp-gn | \
170	wzr-hp-g300nh)
171		status_led="buffalo:green:router"
172		;;
173	wlae-ag300n)
174		status_led="buffalo:green:status"
175		;;
176	wzr-hp-ag300h | \
177	wzr-hp-g300nh2)
178		status_led="buffalo:red:diag"
179		;;
180	wndr3700)
181		status_led="wndr3700:green:power"
182		;;
183	wnr2000)
184		status_led="wnr2000:green:power"
185		;;
186	wp543)
187		status_led="wp543:green:diag"
188		;;
189	wrt400n)
190		status_led="wrt400n:blue:wps"
191		;;
192	wrt160nl)
193		status_led="wrt160nl:blue:wps"
194		;;
195	zcn-1523h-2 | zcn-1523h-5)
196		status_led="zcn-1523h:amber:init"
197		;;
198	esac;
199}
200
201set_state() {
202	get_status_led
203
204	case "$1" in
205	preinit)
206		insmod leds-gpio
207		insmod ledtrig-default-on
208		insmod ledtrig-timer
209		status_led_set_timer 200 200
210		;;
211	failsafe)
212		status_led_set_timer 50 50
213		;;
214	done)
215		status_led_on
216		;;
217	esac
218}
219