1 #!/bin/sh /etc/rc.common
2 # Copyright (C) 2008 OpenWrt.org
17 config_get sysfs $1 sysfs
18 config_get name $1 name "$sysfs"
19 config_get trigger $1 trigger "none"
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"
32 if [ "$trigger" = "rssi" ]; then
33 # handled by rssileds userspace process
37 [ -e /sys/class/leds/${sysfs}/brightness ] && {
38 echo "setting up led ${name}"
42 "$(sed -ne 's/^.*\[\(.*\)\].*$/\1/p' /sys/class/leds/${sysfs}/trigger)" \
43 "$(cat /sys/class/leds/${sysfs}/brightness)" \
47 echo 0 >/sys/class/leds/${sysfs}/brightness
49 echo $trigger > /sys/class/leds/${sysfs}/trigger 2> /dev/null
53 cat /sys/class/leds/${sysfs}/max_brightness > /sys/class/leds/${sysfs}/brightness
56 echo >&2 "Skipping trigger '$trigger' for led '$name' due to missing kernel module"
62 echo $dev > /sys/class/leds/${sysfs}/device_name
63 echo $mode > /sys/class/leds/${sysfs}/mode
68 [ -n "$delayon" ] && \
69 echo $delayon > /sys/class/leds/${sysfs}/delay_on
70 [ -n "$delayoff" ] && \
71 echo $delayoff > /sys/class/leds/${sysfs}/delay_off
76 echo $dev > /sys/class/leds/${sysfs}/device_name
77 echo $interval > /sys/class/leds/${sysfs}/activity_interval
82 [ -n "$port_state" ] && \
83 echo $port_state > /sys/class/leds/${sysfs}/port_state
87 echo $message > /sys/class/leds/${sysfs}/message
88 echo $delay > /sys/class/leds/${sysfs}/delay
92 echo $gpio > /sys/class/leds/${sysfs}/gpio
93 echo $inverted > /sys/class/leds/${sysfs}/inverted
97 local port_mask speed_mask
99 config_get port_mask $1 port_mask
100 [ -n "$port_mask" ] && \
101 echo $port_mask > /sys/class/leds/${sysfs}/port_mask
102 config_get speed_mask $1 speed_mask
103 [ -n "$speed_mask" ] && \
104 echo $speed_mask > /sys/class/leds/${sysfs}/speed_mask
111 [ -e /sys/class/leds/ ] && {
112 [ -s /var/run/led.state ] && {
113 local led trigger brightness
114 while read led trigger brightness; do
115 [ -e "/sys/class/leds/$led/trigger" ] && \
116 echo "$trigger" > "/sys/class/leds/$led/trigger"
118 [ -e "/sys/class/leds/$led/brightness" ] && \
119 echo "$brightness" > "/sys/class/leds/$led/brightness"
120 done < /var/run/led.state
121 rm /var/run/led.state
125 config_foreach load_led led