[source] base-files: add ucidef_set_led_usbport for full usbport support

LEDE Commits lede-commits at lists.infradead.org
Sat Oct 22 02:16:24 PDT 2016


rmilecki pushed a commit to source.git, branch master:
https://git.lede-project.org/2187f57db6f55d41d68704179d309fbb6199b08e

commit 2187f57db6f55d41d68704179d309fbb6199b08e
Author: Rafał Miłecki <rafal at milecki.pl>
AuthorDate: Wed Oct 19 13:05:53 2016 +0200

    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 at milecki.pl>
---
 package/base-files/files/bin/config_generate       |  9 ++++++++
 package/base-files/files/etc/init.d/led            |  1 +
 .../base-files/files/lib/functions/uci-defaults.sh | 24 ++++++++++++++++++++++
 3 files changed, 34 insertions(+)

diff --git a/package/base-files/files/bin/config_generate b/package/base-files/files/bin/config_generate
index 80e5c9f..13ddb07 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 9a793e9..7c2a185 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 a88308b..e39b0a5 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"



More information about the lede-commits mailing list