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>
This commit is contained in:
Bernhard Nortmann 2015-08-21 15:13:20 +02:00 committed by Tom Rini
parent 6c2441c1d3
commit d375ebbcb6

View file

@ -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 */