Signed-off-by: Hubert Feurstein <[email protected]>
---
 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
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox

Reply via email to