[PATCH 4/4] led: parse panic-indicator from device-tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Signed-off-by: Hubert Feurstein <h.feurstein@xxxxxxxxx>
---
 Documentation/devicetree/bindings/leds/common.rst |  3 +++
 drivers/led/core.c                                | 11 ++++++++---
 2 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/Documentation/devicetree/bindings/leds/common.rst b/Documentation/devicetree/bindings/leds/common.rst
index 5a592d67d..911a55f4f 100644
--- a/Documentation/devicetree/bindings/leds/common.rst
+++ b/Documentation/devicetree/bindings/leds/common.rst
@@ -12,3 +12,6 @@ Common leds properties
 
 * ``label``: The label for this LED. If omitted, the label is taken
   from the node name (excluding the unit address).
+
+* ``panic-indicator`` - This property specifies that the LED should be used as a
+ panic indicator.
diff --git a/drivers/led/core.c b/drivers/led/core.c
index 4bf19abcc..e727148a2 100644
--- a/drivers/led/core.c
+++ b/drivers/led/core.c
@@ -286,11 +286,16 @@ enum led_trigger trigger_by_name(const char *name)
 
 void led_of_parse_trigger(struct led *led, struct device_node *np)
 {
-	enum led_trigger trg;
+	enum led_trigger trg = LED_TRIGGER_MAX;
 	const char *trigger;
 
-	trigger = of_get_property(np, "linux,default-trigger", NULL);
-	trg = trigger_by_name(trigger);
+	if (of_property_read_bool(np, "panic-indicator"))
+		trg = LED_TRIGGER_PANIC;
+
+	if (trg == LED_TRIGGER_MAX) {
+		trigger = of_get_property(np, "linux,default-trigger", NULL);
+		trg = trigger_by_name(trigger);
+	}
 
 	if (trg == LED_TRIGGER_MAX) {
 		trigger = of_get_property(np, "barebox,default-trigger", NULL);
-- 
2.24.0


_______________________________________________
barebox mailing list
barebox@xxxxxxxxxxxxxxxxxxx
http://lists.infradead.org/mailman/listinfo/barebox



[Index of Archives]     [Linux Embedded]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux