summaryrefslogtreecommitdiffstats
path: root/include/led.h
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2010-12-18 14:36:02 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2010-12-20 09:57:32 +0100
commit91d781f51df5d4de23d09a6777bfc968a0a7ca68 (patch)
treec157c2074ab337ee7512ebf3bd8ac38dfdd7c6a7 /include/led.h
parent51271530d2f824ee9e1ef01a2eb7f361622716aa (diff)
downloadbarebox-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.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 */