diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2017-03-13 10:33:39 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2017-03-30 08:23:20 +0200 |
commit | 7dd8ae82311daa9ee22ffc762ea158c3977fb20c (patch) | |
tree | a4730bd86f490b0f02b1fa5cccc242923357a995 /include | |
parent | ebc5ed5310b2aadbd6b1f1d914dce8639b759a7d (diff) | |
download | barebox-7dd8ae82311daa9ee22ffc762ea158c3977fb20c.tar.gz barebox-7dd8ae82311daa9ee22ffc762ea158c3977fb20c.tar.xz |
led-trigger: Allow multiple led triggers of the same type
We used to have a static array of trigger types which, allows only one led
per trigger. While this is enough for panic and heartbeat, it falls short when
multiple leds are associated to the default-on trigger. The default-on trigger
is used to turn on a led statically from devicetree and may be used multiple
times.
This patch reworks the led triggers so that a trigger struct is allocated
dynamically when needed and put onto a list.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'include')
-rw-r--r-- | include/led.h | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/include/led.h b/include/led.h index fb5c48b9e2..0ce857129d 100644 --- a/include/led.h +++ b/include/led.h @@ -49,6 +49,7 @@ enum led_trigger { LED_TRIGGER_NET_TXRX, LED_TRIGGER_DEFAULT_ON, LED_TRIGGER_MAX, + LED_TRIGGER_INVALID = LED_TRIGGER_MAX, }; enum trigger_type { @@ -59,6 +60,7 @@ enum trigger_type { #ifdef CONFIG_LED_TRIGGERS int led_set_trigger(enum led_trigger trigger, struct led *led); +void led_trigger_disable(struct led *led); void led_trigger(enum led_trigger trigger, enum trigger_type); #else static inline int led_set_trigger(enum led_trigger trigger, struct led *led) @@ -71,7 +73,9 @@ static inline void led_trigger(enum led_trigger trigger, enum trigger_type type) } #endif -int led_get_trigger(enum led_trigger trigger); +void led_triggers_show_info(void); +const char *trigger_name(enum led_trigger trigger); +enum led_trigger trigger_by_name(const char *name); void led_of_parse_trigger(struct led *led, struct device_node *np); |