From: Rafał Miłecki Date: Wed, 19 Oct 2016 11:05:53 +0000 (+0200) Subject: base-files: add ucidef_set_led_usbport for full usbport support X-Git-Tag: v17.01.0-rc1~1090 X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=2187f57db6f55d41d68704179d309fbb6199b08e;p=openwrt%2Fstaging%2Fxback.git base-files: add ucidef_set_led_usbport for full usbport support This helper allows using usbport trigger directly. It requires usbport compatible syntax and supports specifying multiple USB ports, e.g.: ucidef_set_led_usbport "usb" "USB" "devicename:colour:function" "usb1-port1" "usb2-port1" This adds a proper object to the board.json, e.g. "usb": { "name": "USB", "type": "usbport", "sysfs": "devicename:colour:function", "ports": [ "usb1-port1", "usb2-port1" ] } and supports translating it into uci section. Signed-off-by: Rafał Miłecki --- diff --git a/package/base-files/files/bin/config_generate b/package/base-files/files/bin/config_generate index 80e5c9f474..13ddb07e92 100755 --- a/package/base-files/files/bin/config_generate +++ b/package/base-files/files/bin/config_generate @@ -335,6 +335,15 @@ generate_led() { EOF ;; + usbport) + local ports port + json_get_values ports ports + uci set system.$cfg.trigger='usbport' + for port in $ports; do + uci add_list system.$cfg.port=$port + done + ;; + rssi) local iface minq maxq offset factor json_get_vars iface minq maxq offset factor diff --git a/package/base-files/files/etc/init.d/led b/package/base-files/files/etc/init.d/led index 9a793e9a95..7c2a185013 100755 --- a/package/base-files/files/etc/init.d/led +++ b/package/base-files/files/etc/init.d/led @@ -19,6 +19,7 @@ load_led() { config_get name $1 name "$sysfs" config_get trigger $1 trigger "none" config_get dev $1 dev + config_get ports $1 port config_get mode $1 mode "link" config_get_bool default $1 default "nil" config_get delayon $1 delayon diff --git a/package/base-files/files/lib/functions/uci-defaults.sh b/package/base-files/files/lib/functions/uci-defaults.sh index a88308bbd0..e39b0a5776 100755 --- a/package/base-files/files/lib/functions/uci-defaults.sh +++ b/package/base-files/files/lib/functions/uci-defaults.sh @@ -390,6 +390,30 @@ ucidef_set_led_usbdev() { json_select .. } +ucidef_set_led_usbport() { + local obj="$1" + local name="$2" + local sysfs="$3" + shift + shift + shift + + json_select_object led + + json_select_object "$obj" + json_add_string name "$name" + json_add_string type usbport + json_add_string sysfs "$sysfs" + json_select_array ports + for port in "$@"; do + json_add_string port "$port" + done + json_select .. + json_select .. + + json_select .. +} + ucidef_set_led_wlan() { local cfg="led_$1" local name="$2"