diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2017-03-13 10:33:36 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2017-03-30 08:23:20 +0200 |
commit | aea9aba24910b8aa89a889e8d826b8dc69d3d48b (patch) | |
tree | 51469149a38ca550f1e041a70603078ca630332a /include | |
parent | 441e9f5a72b245b671118f3e771eb129834a7a34 (diff) | |
download | barebox-aea9aba24910b8aa89a889e8d826b8dc69d3d48b.tar.gz barebox-aea9aba24910b8aa89a889e8d826b8dc69d3d48b.tar.xz |
led: add blinking/flashing and led_blink_pattern interface
So far blinking/flashing LEDs is only supported on led-trigger level.
Even without triggers it useful to be able to blink/flash LEDs, so
add this functionality to the LED core.
A led_blink_pattern consists of a number of on and off-periods which
are described in an array. Using such an array you can encode nearly
every blink pattern you need.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Markus Pargmann <mpa@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 | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/include/led.h b/include/led.h index 000267cdc5..fb5c48b9e2 100644 --- a/include/led.h +++ b/include/led.h @@ -12,6 +12,13 @@ struct led { char *name; int num; struct list_head list; + + int blink; + int flash; + unsigned int *blink_states; + int blink_nr_states; + int blink_next_state; + uint64_t blink_next_event; }; struct led *led_by_number(int no); @@ -25,6 +32,10 @@ static inline int led_get_number(struct led *led) int led_set_num(int num, unsigned int value); int led_set(struct led *led, unsigned int value); +int led_blink(struct led *led, unsigned int on_ms, unsigned int off_ms); +int led_blink_pattern(struct led *led, const unsigned int *pattern, + unsigned int pattern_len); +int led_flash(struct led *led, unsigned int duration_ms); int led_register(struct led *led); void led_unregister(struct led *led); void led_unregister(struct led *led); |