1 # Copyright (C) 2013 OpenWrt.org
5 local basepath
="/proc/device-tree"
6 local nodepath
="$basepath/aliases/led-$1"
8 [ -f "$nodepath" ] && ledpath
=$
(cat "$nodepath")
9 [ -n "$ledpath" ] && ledpath
="$basepath$ledpath"
17 local ledpath
=$
(get_dt_led_path
$1)
19 [ -n "$ledpath" ] && {
20 label
=$
(cat "$ledpath/label" 2>/dev
/null
) || \
21 label
=$
(cat "$ledpath/chan-name" 2>/dev
/null
) || \
22 label
=$
(basename "$ledpath")
24 [ -d "/sys/class/leds/$label" ] ||
{
26 for node
in /sys
/class
/leds
/*; do
27 of_path
=$
(grep OF_FULLNAME
"$node/uevent" | cut
-f2 -d'=')
28 [ "/proc/device-tree$of_path" = "$ledpath" ] && {
29 label
=$
(basename "$node")
40 [ -f "/sys/class/leds/$1/$2" ] && echo "$3" > "/sys/class/leds/$1/$2"
44 led_set_attr
$1 "trigger" "timer"
45 led_set_attr
$1 "delay_on" "$2"
46 led_set_attr
$1 "delay_off" "$3"
50 led_set_attr
$1 "trigger" "none"
51 led_set_attr
$1 "brightness" 255
55 led_set_attr
$1 "trigger" "none"
56 led_set_attr
$1 "brightness" 0
59 status_led_restore_trigger
() {
61 local ledpath
=$
(get_dt_led_path
$1)
63 [ -n "$ledpath" ] && \
64 trigger
=$
(cat "$ledpath/linux,default-trigger" 2>/dev
/null
)
66 [ -n "$trigger" ] && \
67 led_set_attr
"$(get_dt_led $1)" "trigger" "$trigger"
70 status_led_set_timer
() {
71 led_timer
$status_led "$1" "$2"
72 [ -n "$status_led2" ] && led_timer
$status_led2 "$1" "$2"
75 status_led_set_heartbeat
() {
76 led_set_attr
$status_led "trigger" "heartbeat"
81 [ -n "$status_led2" ] && led_on
$status_led2
86 [ -n "$status_led2" ] && led_off
$status_led2
89 status_led_blink_slow
() {
90 led_timer
$status_led 1000 1000
93 status_led_blink_fast
() {
94 led_timer
$status_led 100 100
97 status_led_blink_preinit
() {
98 led_timer
$status_led 100 100
101 status_led_blink_failsafe
() {
102 led_timer
$status_led 50 50
105 status_led_blink_preinit_regular
() {
106 led_timer
$status_led 200 200