summaryrefslogtreecommitdiffstats
path: root/include/led.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/led.h')
-rw-r--r--include/led.h43
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 */