base-files: added option to configure the gpio led trigger in uci-defaults
authorblogic <blogic@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Tue, 14 Jul 2015 07:35:59 +0000 (07:35 +0000)
committerblogic <blogic@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Tue, 14 Jul 2015 07:35:59 +0000 (07:35 +0000)
Signed-off-by: Günther Kelleter <guenther.kelleter@devolo.de>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@46341 3c298f89-4303-0410-b956-a3cf2f4a3e73

package/base-files/files/etc/init.d/led
package/base-files/files/lib/functions/uci-defaults.sh

index 1a57e8a..3f45732 100755 (executable)
@@ -26,6 +26,8 @@ load_led() {
        config_get port_state $1 port_state
        config_get delay $1 delay "150"
        config_get message $1 message ""
+       config_get gpio $1 gpio "0"
+       config_get inverted $1 inverted "0"
 
        if [ "$trigger" = "rssi" ]; then
                # handled by rssileds userspace process
@@ -80,6 +82,11 @@ load_led() {
                        echo $delay > /sys/class/leds/${sysfs}/delay
                        ;;
 
+               "gpio")
+                       echo $gpio > /sys/class/leds/${sysfs}/gpio
+                       echo $inverted > /sys/class/leds/${sysfs}/inverted
+                       ;;
+
                switch[0-9]*)
                        local port_mask
 
index 6577ecd..8ba95a2 100644 (file)
@@ -158,6 +158,26 @@ EOF
        UCIDEF_LEDS_CHANGED=1
 }
 
+ucidef_set_led_trigger_gpio() {
+       local cfg="led_$1"
+       local name=$2
+       local sysfs=$3
+       local gpio=$4
+       local inverted=$5
+
+       uci -q get system.$cfg && return 0
+
+       uci batch <<EOF
+set system.$cfg='led'
+set system.$cfg.name='$name'
+set system.$cfg.sysfs='$sysfs'
+set system.$cfg.trigger='gpio'
+set system.$cfg.gpio='$gpio'
+set system.$cfg.inverted='$inverted'
+EOF
+       UCIDEF_LEDS_CHANGED=1
+}
+
 ucidef_set_rssimon() {
        local dev="$1"
        local refresh="$2"