summaryrefslogtreecommitdiffstats
path: root/drivers/led/core.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/led/core.c')
-rw-r--r--drivers/led/core.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/drivers/led/core.c b/drivers/led/core.c
index 4bf19abcc9..e727148a24 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);