All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bernhard Nortmann <bernhard.nortmann@web.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] Generic stubs for GPIO LEDs
Date: Sat, 28 Mar 2015 17:11:37 +0100	[thread overview]
Message-ID: <5516D2B9.6070802@web.de> (raw)

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

                 reply	other threads:[~2015-03-28 16:11 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5516D2B9.6070802@web.de \
    --to=bernhard.nortmann@web.de \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.