public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot] [PATCH] M28: Added pin name support in GPIO driver
@ 2011-11-22 15:40 Robert Deliën
  2011-11-22 18:28 ` Marek Vasut
                   ` (3 more replies)
  0 siblings, 4 replies; 14+ messages in thread
From: Robert Deliën @ 2011-11-22 15:40 UTC (permalink / raw)
  To: u-boot

This patch adds adds pin name support in the GPIO driver. With this patch applied, the gpio command supports pins to be addressed with friendly names.

The user's manual refers to pins by the bank number they're in and their number within that bank. With this patch the friendly naming convention to address pin number 5 in bank 3 is b3p5. But names like B00000003p005 are interpreted correctly too.

Signed-off-by: Robert Deli?n <robert@delien.nl>
diff --git a/arch/arm/include/asm/arch-mx28/gpio.h b/arch/arm/include/asm/arch-mx28/gpio.h
index be1c944..5ae66e6 100644
--- a/arch/arm/include/asm/arch-mx28/gpio.h
+++ b/arch/arm/include/asm/arch-mx28/gpio.h
@@ -23,8 +23,44 @@
 #ifndef        __MX28_GPIO_H__
 #define        __MX28_GPIO_H__
 
+#include <linux/ctype.h>
+#include <asm/errno.h>
+#include <asm/arch/iomux.h>
+
 #ifdef CONFIG_MXS_GPIO
 void mxs_gpio_init(void);
+
+static inline int name_to_gpio(const char *name)
+{
+       int     pin_nr;
+
+       if (name[0] >= '0' && name[0] <= '9') {
+               pin_nr = simple_strtoul(name, (char **)&name, 10);
+               if (name[0])
+                       return -EINVAL;
+               else
+                       return pin_nr;
+       }
+
+       if (tolower(name[0]) == 'b') {
+               name++;
+               pin_nr = (simple_strtoul(name, (char **)&name, 10) << MXS_PAD_BANK_SHIFT) & MXS_PAD_BANK_MASK;
+       } else
+               return -EINVAL;
+
+       if (tolower(name[0]) == 'p') {
+               name++;
+               pin_nr |= (simple_strtoul(name, (char **)&name, 10) << MXS_PAD_PIN_SHIFT) & MXS_PAD_PIN_MASK;
+       } else
+               return -EINVAL;
+
+       if (name[0])
+               return -EINVAL;
+
+       return pin_nr;
+}
+#define name_to_gpio(n) name_to_gpio(n)
+
 #else
 inline void mxs_gpio_init(void) {}
 #endif

^ permalink raw reply related	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2011-11-23 22:18 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-11-22 15:40 [U-Boot] [PATCH] M28: Added pin name support in GPIO driver Robert Deliën
2011-11-22 18:28 ` Marek Vasut
2011-11-22 19:13   ` Robert Deliën
2011-11-22 19:32     ` Marek Vasut
2011-11-22 20:49       ` Robert Deliën
2011-11-22 22:18         ` Mike Frysinger
2011-11-22 22:37           ` Marek Vasut
2011-11-23 10:08             ` Robert Deliën
2011-11-23 22:18             ` Mike Frysinger
2011-11-22 21:10 ` Mike Frysinger
2011-11-22 21:11 ` Mike Frysinger
2011-11-23  9:07 ` Stefano Babic
2011-11-23  9:51   ` Robert Deliën
2011-11-23 22:11     ` Mike Frysinger

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox