[PATCH] led: gpio: add support for default-state dt-property

h.feurstein at gmail.com h.feurstein at gmail.com
Mon Feb 16 05:03:28 PST 2015


From: Hubert Feurstein <hubert.feurstein at deto.at>

This patch adds support for the default-state device tree property.

Signed-off-by: Hubert Feurstein <h.feurstein at gmail.com>
---
 drivers/led/led-gpio.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/drivers/led/led-gpio.c b/drivers/led/led-gpio.c
index a1a6617..69ad7e7 100644
--- a/drivers/led/led-gpio.c
+++ b/drivers/led/led-gpio.c
@@ -204,6 +204,7 @@ static int led_gpio_of_probe(struct device_d *dev)
 
 	for_each_child_of_node(dev->device_node, child) {
 		struct gpio_led *gled;
+		const char *default_state;
 		enum of_gpio_flags flags;
 		int gpio;
 		const char *label;
@@ -225,6 +226,18 @@ static int led_gpio_of_probe(struct device_d *dev)
 
 		led_gpio_register(gled);
 		led_of_parse_trigger(&gled->led, child);
+
+		if (!of_property_read_string(child, "default-state", &default_state)) {
+			int state = -1;
+
+			if (!strcmp(default_state, "on"))
+				state = 1;
+			else if (!strcmp(default_state, "off"))
+				state = 0;
+
+			if (state >= 0)
+				led_gpio_set(&gled->led, state ^ gled->active_low);
+		}
 	}
 
 	return 0;
-- 
2.3.0




More information about the barebox mailing list