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>
			
			
This commit is contained in:
		| @@ -335,6 +335,15 @@ generate_led() { | |||||||
| 			EOF | 			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) | 		rssi) | ||||||
| 			local iface minq maxq offset factor | 			local iface minq maxq offset factor | ||||||
| 			json_get_vars iface minq maxq offset factor | 			json_get_vars iface minq maxq offset factor | ||||||
|   | |||||||
| @@ -19,6 +19,7 @@ load_led() { | |||||||
| 	config_get name $1 name "$sysfs" | 	config_get name $1 name "$sysfs" | ||||||
| 	config_get trigger $1 trigger "none" | 	config_get trigger $1 trigger "none" | ||||||
| 	config_get dev $1 dev | 	config_get dev $1 dev | ||||||
|  | 	config_get ports $1 port | ||||||
| 	config_get mode $1 mode "link" | 	config_get mode $1 mode "link" | ||||||
| 	config_get_bool default $1 default "nil" | 	config_get_bool default $1 default "nil" | ||||||
| 	config_get delayon $1 delayon | 	config_get delayon $1 delayon | ||||||
|   | |||||||
| @@ -390,6 +390,30 @@ ucidef_set_led_usbdev() { | |||||||
| 	json_select .. | 	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() { | ucidef_set_led_wlan() { | ||||||
| 	local cfg="led_$1" | 	local cfg="led_$1" | ||||||
| 	local name="$2" | 	local name="$2" | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Rafał Miłecki
					Rafał Miłecki