aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRafał Miłecki <rafal@milecki.pl>2016-10-19 13:05:53 +0200
committerRafał Miłecki <rafal@milecki.pl>2016-10-22 11:16:01 +0200
commit2187f57db6f55d41d68704179d309fbb6199b08e (patch)
tree2be4b254edec74d16f8091c170e3fa9b07c7025e
parent32c28a78f798dffb983a7f00342b471e5e4ac177 (diff)
downloadupstream-2187f57db6f55d41d68704179d309fbb6199b08e.tar.gz
upstream-2187f57db6f55d41d68704179d309fbb6199b08e.tar.bz2
upstream-2187f57db6f55d41d68704179d309fbb6199b08e.zip
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 <rafal@milecki.pl>
-rwxr-xr-xpackage/base-files/files/bin/config_generate9
-rwxr-xr-xpackage/base-files/files/etc/init.d/led1
-rwxr-xr-xpackage/base-files/files/lib/functions/uci-defaults.sh24
3 files changed, 34 insertions, 0 deletions
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"