kernel: remove unused morse led trigger driver
[librecmc/librecmc.git] / package / base-files / files / etc / init.d / led
1 #!/bin/sh /etc/rc.common
2 # Copyright (C) 2008 OpenWrt.org
3
4 START=96
5
6 load_led() {
7         local name
8         local sysfs
9         local trigger
10         local dev
11         local mode
12         local default
13         local delayon
14         local delayoff
15         local interval
16
17         config_get sysfs $1 sysfs
18         config_get name $1 name "$sysfs"
19         config_get trigger $1 trigger "none"
20         config_get dev $1 dev
21         config_get mode $1 mode "link"
22         config_get_bool default $1 default "nil"
23         config_get delayon $1 delayon
24         config_get delayoff $1 delayoff
25         config_get interval $1 interval "50"
26         config_get port_state $1 port_state
27         config_get delay $1 delay "150"
28         config_get message $1 message ""
29         config_get gpio $1 gpio "0"
30         config_get inverted $1 inverted "0"
31
32         if [ "$trigger" = "rssi" ]; then
33                 # handled by rssileds userspace process
34                 return
35         fi
36
37         [ -e /sys/class/leds/${sysfs}/brightness ] && {
38                 echo "setting up led ${name}"
39
40                 printf "%s %s %d\n" \
41                         "$sysfs" \
42                         "$(sed -ne 's/^.*\[\(.*\)\].*$/\1/p' /sys/class/leds/${sysfs}/trigger)" \
43                         "$(cat /sys/class/leds/${sysfs}/brightness)" \
44                                 >> /var/run/led.state
45
46                 [ "$default" = 0 ] &&
47                         echo 0 >/sys/class/leds/${sysfs}/brightness
48
49                 echo $trigger > /sys/class/leds/${sysfs}/trigger 2> /dev/null
50                 ret="$?"
51
52                 [ $default = 1 ] &&
53                         cat /sys/class/leds/${sysfs}/max_brightness > /sys/class/leds/${sysfs}/brightness
54
55                 [ $ret = 0 ] || {
56                         echo >&2 "Skipping trigger '$trigger' for led '$name' due to missing kernel module"
57                         return 1
58                 }
59                 case "$trigger" in
60                 "netdev")
61                         [ -n "$dev" ] && {
62                                 echo $dev > /sys/class/leds/${sysfs}/device_name
63                                 echo $mode > /sys/class/leds/${sysfs}/mode
64                         }
65                         ;;
66
67                 "timer")
68                         [ -n "$delayon" ] && \
69                                 echo $delayon > /sys/class/leds/${sysfs}/delay_on
70                         [ -n "$delayoff" ] && \
71                                 echo $delayoff > /sys/class/leds/${sysfs}/delay_off
72                         ;;
73
74                 "usbdev")
75                         [ -n "$dev" ] && {
76                                 echo $dev > /sys/class/leds/${sysfs}/device_name
77                                 echo $interval > /sys/class/leds/${sysfs}/activity_interval
78                         }
79                         ;;
80
81                 "port_state")
82                         [ -n "$port_state" ] && \
83                                 echo $port_state > /sys/class/leds/${sysfs}/port_state
84                         ;;
85
86                 "gpio")
87                         echo $gpio > /sys/class/leds/${sysfs}/gpio
88                         echo $inverted > /sys/class/leds/${sysfs}/inverted
89                         ;;
90
91                 switch[0-9]*)
92                         local port_mask speed_mask
93
94                         config_get port_mask $1 port_mask
95                         [ -n "$port_mask" ] && \
96                                 echo $port_mask > /sys/class/leds/${sysfs}/port_mask
97                         config_get speed_mask $1 speed_mask
98                         [ -n "$speed_mask" ] && \
99                                 echo $speed_mask > /sys/class/leds/${sysfs}/speed_mask
100                         ;;
101                 esac
102         }
103 }
104
105 start() {
106         [ -e /sys/class/leds/ ] && {
107                 [ -s /var/run/led.state ] && {
108                         local led trigger brightness
109                         while read led trigger brightness; do
110                                 [ -e "/sys/class/leds/$led/trigger" ] && \
111                                         echo "$trigger" > "/sys/class/leds/$led/trigger"
112
113                                 [ -e "/sys/class/leds/$led/brightness" ] && \
114                                         echo "$brightness" > "/sys/class/leds/$led/brightness"
115                         done < /var/run/led.state
116                         rm /var/run/led.state
117                 }
118
119                 config_load system
120                 config_foreach load_led led
121         }
122 }