diff options
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 */ |