All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] Generic stubs for GPIO LEDs
@ 2015-03-28 16:11 Bernhard Nortmann
  0 siblings, 0 replies; only message in thread
From: Bernhard Nortmann @ 2015-03-28 16:11 UTC (permalink / raw)
  To: u-boot

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 definitions like:

#define GREEN_LED_GPIO          248 /* = PH24 */

#define STATUS_LED_BIT          GREEN_LED_GPIO
#define STATUS_LED_STATE        STATUS_LED_OFF
#define STATUS_LED_PERIOD       (CONFIG_SYS_HZ / 2)

#define STATUS_LED_GREEN        GREEN_LED_GPIO

To keep this 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.

Regards, B. Nortmann

---
  drivers/misc/gpio_led.c | 39 +++++++++++++++++++++++++++++++++++++++
  1 file changed, 39 insertions(+)

diff --git a/drivers/misc/gpio_led.c b/drivers/misc/gpio_led.c
index 3e95727..8f3bd9b 100644
--- a/drivers/misc/gpio_led.c
+++ b/drivers/misc/gpio_led.c
@@ -51,3 +51,42 @@ 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 */
-- 
2.0.5

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2015-03-28 16:11 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-03-28 16:11 [U-Boot] Generic stubs for GPIO LEDs Bernhard Nortmann

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.