librecmc : Bump to v1.5.15
[librecmc/librecmc.git] / package / base-files / files / lib / functions / leds.sh
1 #!/bin/sh
2 # Copyright (C) 2013 OpenWrt.org
3
4 get_dt_led() {
5         local label
6         local ledpath
7         local basepath="/proc/device-tree"
8         local nodepath="$basepath/aliases/led-$1"
9
10         [ -f "$nodepath" ] && ledpath=$(cat "$nodepath")
11         [ -n "$ledpath" ] && \
12                 label=$(cat "$basepath$ledpath/label" 2>/dev/null) || \
13                 label=$(cat "$basepath$ledpath/chan-name" 2>/dev/null)
14
15         echo "$label"
16 }
17
18 led_set_attr() {
19         [ -f "/sys/class/leds/$1/$2" ] && echo "$3" > "/sys/class/leds/$1/$2"
20 }
21
22 led_timer() {
23         led_set_attr $1 "trigger" "timer"
24         led_set_attr $1 "delay_on" "$2"
25         led_set_attr $1 "delay_off" "$3"
26 }
27
28 led_on() {
29         led_set_attr $1 "trigger" "none"
30         led_set_attr $1 "brightness" 255
31 }
32
33 led_off() {
34         led_set_attr $1 "trigger" "none"
35         led_set_attr $1 "brightness" 0
36 }
37
38 status_led_set_timer() {
39         led_timer $status_led "$1" "$2"
40         [ -n "$status_led2" ] && led_timer $status_led2 "$1" "$2"
41 }
42
43 status_led_set_heartbeat() {
44         led_set_attr $status_led "trigger" "heartbeat"
45 }
46
47 status_led_on() {
48         led_on $status_led
49         [ -n "$status_led2" ] && led_on $status_led2
50 }
51
52 status_led_off() {
53         led_off $status_led
54         [ -n "$status_led2" ] && led_off $status_led2
55 }
56
57 status_led_blink_slow() {
58         led_timer $status_led 1000 1000
59 }
60
61 status_led_blink_fast() {
62         led_timer $status_led 100 100
63 }
64
65 status_led_blink_preinit() {
66         led_timer $status_led 100 100
67 }
68
69 status_led_blink_failsafe() {
70         led_timer $status_led 50 50
71 }
72
73 status_led_blink_preinit_regular() {
74         led_timer $status_led 200 200
75 }