diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2010-12-18 14:36:02 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2010-12-20 09:57:32 +0100 |
commit | 91d781f51df5d4de23d09a6777bfc968a0a7ca68 (patch) | |
tree | c157c2074ab337ee7512ebf3bd8ac38dfdd7c6a7 /include/led.h | |
parent | 51271530d2f824ee9e1ef01a2eb7f361622716aa (diff) | |
download | barebox-91d781f51df5d4de23d09a6777bfc968a0a7ca68.tar.gz barebox-91d781f51df5d4de23d09a6777bfc968a0a7ca68.tar.xz |
LED: Add gpio LED support
This patch adds support for registering gpios as LEDs.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'include/led.h')
-rw-r--r-- | include/led.h | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/include/led.h b/include/led.h index 3e7b1d98b3..0210897ff2 100644 --- a/include/led.h +++ b/include/led.h @@ -1,6 +1,8 @@ #ifndef __LED_H #define __LED_H +#include <errno.h> + struct led { void (*set)(struct led *, unsigned int value); int max_value; @@ -24,4 +26,45 @@ int led_register(struct led *led); void led_unregister(struct led *led); void led_unregister(struct led *led); +/* gpio LED support */ +struct gpio_led { + int gpio; + bool active_low; + struct led led; +}; + +struct gpio_rgb_led { + int gpio_r, gpio_g, gpio_b; + bool active_low; + struct led led; +}; + +#ifdef CONFIG_LED_GPIO +int led_gpio_register(struct gpio_led *led); +void led_gpio_unregister(struct gpio_led *led); +#else +static inline int led_gpio_register(struct gpio_led *led) +{ + return -ENOSYS; +} + +static inline void led_gpio_unregister(struct gpio_led *led) +{ +} +#endif + +#ifdef CONFIG_LED_GPIO_RGB +int led_gpio_rgb_register(struct gpio_rgb_led *led); +void led_gpio_rgb_unregister(struct gpio_led *led); +#else +static inline int led_gpio_rgb_register(struct gpio_rgb_led *led) +{ + return -ENOSYS; +} + +static inline void led_gpio_rgb_unregister(struct gpio_led *led) +{ +} +#endif + #endif /* __LED_H */ |