diff options
author | Bernhard Nortmann <bernhard.nortmann@web.de> | 2015-08-21 15:13:20 +0200 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2015-10-23 12:15:28 -0400 |
commit | d375ebbcb655ce8f9012cf93db347d3ced66eaac (patch) | |
tree | 0f7c155651ea1a9b6c403f273f31cb10ae2f8950 /drivers/misc/gpio_led.c | |
parent | 6c2441c1d3f3ac11c7840aa1381a5beca68aafb3 (diff) | |
download | u-boot-d375ebbcb655ce8f9012cf93db347d3ced66eaac.tar.gz u-boot-d375ebbcb655ce8f9012cf93db347d3ced66eaac.tar.xz u-boot-d375ebbcb655ce8f9012cf93db347d3ced66eaac.zip |
add generic stubs for GPIO LEDs
For boards that support LEDs driven via GPIO (CONFIG_GPIO_LED),
it may be useful to have some generic stubs (wrapper functions)
for the "colored" LEDs.
This allows defining STATUS_LED_* values directly to GPIO numbers,
e.g.: #define STATUS_LED_GREEN 248 /* = PH24 */
To keep those optional, it's probably best to introduce an additional
configuration setting. I've chosen CONFIG_GPIO_LED_STUBS for that.
Placing the code in drivers/misc/gpio_led.c also ensures that it
automatically depends on CONFIG_GPIO_LED too.
Signed-off-by: Bernhard Nortmann <bernhard.nortmann@web.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'drivers/misc/gpio_led.c')
-rw-r--r-- | drivers/misc/gpio_led.c | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/drivers/misc/gpio_led.c b/drivers/misc/gpio_led.c index 3e95727d79..164c30db38 100644 --- a/drivers/misc/gpio_led.c +++ b/drivers/misc/gpio_led.c @@ -51,3 +51,57 @@ void __led_toggle(led_id_t mask) { gpio_set_value(mask, !gpio_get_value(mask)); } + +#ifdef CONFIG_GPIO_LED_STUBS + +/* 'generic' override of colored LED stubs, to use GPIO functions instead */ + +#ifdef STATUS_LED_RED +void red_led_on(void) +{ + __led_set(STATUS_LED_RED, STATUS_LED_ON); +} + +void red_led_off(void) +{ + __led_set(STATUS_LED_RED, STATUS_LED_OFF); +} +#endif + +#ifdef STATUS_LED_GREEN +void green_led_on(void) +{ + __led_set(STATUS_LED_GREEN, STATUS_LED_ON); +} + +void green_led_off(void) +{ + __led_set(STATUS_LED_GREEN, STATUS_LED_OFF); +} +#endif + +#ifdef STATUS_LED_YELLOW +void yellow_led_on(void) +{ + __led_set(STATUS_LED_YELLOW, STATUS_LED_ON); +} + +void yellow_led_off(void) +{ + __led_set(STATUS_LED_YELLOW, STATUS_LED_OFF); +} +#endif + +#ifdef STATUS_LED_BLUE +void blue_led_on(void) +{ + __led_set(STATUS_LED_BLUE, STATUS_LED_ON); +} + +void blue_led_off(void) +{ + __led_set(STATUS_LED_BLUE, STATUS_LED_OFF); +} +#endif + +#endif /* CONFIG_GPIO_LED_STUBS */ |