diff options
author | Baolin Wang <baolin.wang@linaro.org> | 2018-10-11 12:07:14 +0800 |
---|---|---|
committer | Jacek Anaszewski <jacek.anaszewski@gmail.com> | 2018-10-11 21:55:58 +0200 |
commit | 5fd752b6b3a2233972ce1726df8bdb40886113a9 (patch) | |
tree | 6144ef6eee8ab1db8604de39dd311fae5e22861f /include/linux/leds.h | |
parent | 2d00f35c55e74fcb5626c9aa336c1ed697cd2ae9 (diff) | |
download | linux-5fd752b6b3a2233972ce1726df8bdb40886113a9.tar.gz linux-5fd752b6b3a2233972ce1726df8bdb40886113a9.tar.bz2 linux-5fd752b6b3a2233972ce1726df8bdb40886113a9.zip |
leds: core: Introduce LED pattern trigger
This patch adds a new LED trigger that LED device can configure
to employ software or hardware pattern engine.
Consumers can write 'pattern' file to enable the software pattern
which alters the brightness for the specified duration with one
software timer.
Moreover consumers can write 'hw_pattern' file to enable the hardware
pattern for some LED controllers which can autonomously control
brightness over time, according to some preprogrammed hardware
patterns.
Signed-off-by: Raphael Teysseyre <rteysseyre@gmail.com>
Signed-off-by: Baolin Wang <baolin.wang@linaro.org>
Signed-off-by: Jacek Anaszewski <jacek.anaszewski@gmail.com>
Diffstat (limited to 'include/linux/leds.h')
-rw-r--r-- | include/linux/leds.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/include/linux/leds.h b/include/linux/leds.h index 834683d603f9..7393a316d9fa 100644 --- a/include/linux/leds.h +++ b/include/linux/leds.h @@ -22,6 +22,7 @@ #include <linux/workqueue.h> struct device; +struct led_pattern; /* * LED Core */ @@ -88,6 +89,10 @@ struct led_classdev { unsigned long *delay_on, unsigned long *delay_off); + int (*pattern_set)(struct led_classdev *led_cdev, + struct led_pattern *pattern, u32 len, int repeat); + int (*pattern_clear)(struct led_classdev *led_cdev); + struct device *dev; const struct attribute_group **groups; @@ -472,4 +477,14 @@ static inline void led_classdev_notify_brightness_hw_changed( struct led_classdev *led_cdev, enum led_brightness brightness) { } #endif +/** + * struct led_pattern - pattern interval settings + * @delta_t: pattern interval delay, in milliseconds + * @brightness: pattern interval brightness + */ +struct led_pattern { + u32 delta_t; + int brightness; +}; + #endif /* __LINUX_LEDS_H_INCLUDED */ |