summaryrefslogtreecommitdiff
path: root/drivers/led
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2017-04-10 17:34:57 (GMT)
committerSimon Glass <sjg@chromium.org>2017-04-15 01:38:57 (GMT)
commit53378dac8dc33e3fd5f07d60bd7a5f8258ac7a20 (patch)
tree13613de1ea3ed6d991b440f0797cb25a671da40d /drivers/led
parent9413ad4f0def2e06a5042106a6e1650a1aa03a5a (diff)
downloadu-boot-fsl-qoriq-53378dac8dc33e3fd5f07d60bd7a5f8258ac7a20.tar.xz
dm: led: Add support for blinking LEDs
Allow LEDs to be blinked if the driver supports it. Enable this for sandbox so that the tests run. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Ziping Chen <techping.chan@gmail.com>
Diffstat (limited to 'drivers/led')
-rw-r--r--drivers/led/Kconfig9
-rw-r--r--drivers/led/led-uclass.c12
2 files changed, 21 insertions, 0 deletions
diff --git a/drivers/led/Kconfig b/drivers/led/Kconfig
index 0ef45bc..309372a 100644
--- a/drivers/led/Kconfig
+++ b/drivers/led/Kconfig
@@ -9,6 +9,15 @@ config LED
can provide access to board-specific LEDs. Use of the device tree
for configuration is encouraged.
+config LED_BLINK
+ bool "Support LED blinking"
+ depends on LED
+ help
+ Some drivers can support automatic blinking of LEDs with a given
+ period, without needing timers or extra code to handle the timing.
+ This option enables support for this which adds slightly to the
+ code size.
+
config SPL_LED
bool "Enable LED support in SPL"
depends on SPL && SPL_DM
diff --git a/drivers/led/led-uclass.c b/drivers/led/led-uclass.c
index ea5fbab..78ab760 100644
--- a/drivers/led/led-uclass.c
+++ b/drivers/led/led-uclass.c
@@ -52,6 +52,18 @@ enum led_state_t led_get_state(struct udevice *dev)
return ops->get_state(dev);
}
+#ifdef CONFIG_LED_BLINK
+int led_set_period(struct udevice *dev, int period_ms)
+{
+ struct led_ops *ops = led_get_ops(dev);
+
+ if (!ops->set_period)
+ return -ENOSYS;
+
+ return ops->set_period(dev, period_ms);
+}
+#endif
+
UCLASS_DRIVER(led) = {
.id = UCLASS_LED,
.name = "led",