From 0e0119b6f0f90461b8924507ae38a3201900c3e3 Mon Sep 17 00:00:00 2001
From: Jo-Philipp Wich <jow@openwrt.org>
Date: Thu, 26 Nov 2015 13:53:06 +0000
Subject: [PATCH] base-files: uci-defaults-new, config_generate: support for
 gpio leds

Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>

SVN-Revision: 47660
---
 package/base-files/files/bin/config_generate  | 10 +++++++++
 .../files/lib/functions/uci-defaults-new.sh   | 21 +++++++++++++++++++
 2 files changed, 31 insertions(+)

diff --git a/package/base-files/files/bin/config_generate b/package/base-files/files/bin/config_generate
index a0ff53a72c..b6675f12ce 100755
--- a/package/base-files/files/bin/config_generate
+++ b/package/base-files/files/bin/config_generate
@@ -305,6 +305,16 @@ generate_led() {
 	EOF
 
 	case "$type" in
+		gpio)
+			local gpio inverted
+			json_get_vars gpio inverted
+			uci -q batch <<-EOF
+				set system.$cfg.trigger='gpio'
+				set system.$cfg.gpio='$gpio'
+				set system.$cfg.inverted='$inverted'
+			EOF
+		;;
+
 		netdev)
 			local device
 			json_get_vars device
diff --git a/package/base-files/files/lib/functions/uci-defaults-new.sh b/package/base-files/files/lib/functions/uci-defaults-new.sh
index 2ea0742e1e..e79ec99f53 100755
--- a/package/base-files/files/lib/functions/uci-defaults-new.sh
+++ b/package/base-files/files/lib/functions/uci-defaults-new.sh
@@ -321,6 +321,27 @@ ucidef_set_led_default() {
 	json_select ..
 }
 
+ucidef_set_led_gpio() {
+	local cfg="led_$1"
+	local name="$2"
+	local sysfs="$3"
+	local gpio="$4"
+	local inverted="$5"
+
+	json_select_object led
+
+	json_select_object "$1"
+	json_add_string type gpio
+	json_add_string name "$name"
+	json_add_string sysfs "$sysfs"
+	json_add_string trigger "$trigger"
+	json_add_int gpio "$gpio"
+	json_add_boolean inverted "$inverted"
+	json_select ..
+
+	json_select ..
+}
+
 ucidef_set_led_rssi() {
 	local cfg="led_$1"
 	local name="$2"
-- 
GitLab