Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3c729f1ecd23b86a2d6b211d646f57f9da8dfeb1
Commit:     3c729f1ecd23b86a2d6b211d646f57f9da8dfeb1
Parent:     4c20386c8d0719b42503efe65abe47ad3fb3d711
Author:     David Brownell <[EMAIL PROTECTED]>
AuthorDate: Mon Feb 12 00:53:12 2007 -0800
Committer:  Linus Torvalds <[EMAIL PROTECTED]>
CommitDate: Mon Feb 12 09:48:34 2007 -0800

    [PATCH] OMAP GPIO wrappers
    
    This teaches OMAP how to implement the cross-platform GPIO interfaces.
    
    [EMAIL PROTECTED]: cleanups]
    Signed-off-by: David Brownell <[EMAIL PROTECTED]>
    Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
    Signed-off-by: Linus Torvalds <[EMAIL PROTECTED]>
---
 include/asm-arm/arch-omap/gpio.h |   66 ++++++++++++++++++++++++++++++++++++++
 1 files changed, 66 insertions(+), 0 deletions(-)

diff --git a/include/asm-arm/arch-omap/gpio.h b/include/asm-arm/arch-omap/gpio.h
index f486b72..3762a6a 100644
--- a/include/asm-arm/arch-omap/gpio.h
+++ b/include/asm-arm/arch-omap/gpio.h
@@ -76,4 +76,70 @@ extern void omap_set_gpio_direction(int gpio, int is_input);
 extern void omap_set_gpio_dataout(int gpio, int enable);
 extern int omap_get_gpio_datain(int gpio);
 
+/*-------------------------------------------------------------------------*/
+
+/* wrappers for "new style" GPIO calls. the old OMAP-specfic ones should
+ * eventually be removed (along with this errno.h inclusion), and maybe
+ * gpios should put MPUIOs last too.
+ */
+
+#include <asm/errno.h>
+
+static inline int gpio_request(unsigned gpio, const char *label)
+{
+       return omap_request_gpio(gpio);
+}
+
+static inline void gpio_free(unsigned gpio)
+{
+       omap_free_gpio(gpio);
+}
+
+static inline int __gpio_set_direction(unsigned gpio, int is_input)
+{
+       if (cpu_class_is_omap2()) {
+               if (gpio > OMAP_MAX_GPIO_LINES)
+                       return -EINVAL;
+       } else {
+               if (gpio > (OMAP_MAX_GPIO_LINES + 16 /* MPUIO */))
+                       return -EINVAL;
+       }
+       omap_set_gpio_direction(gpio, is_input);
+       return 0;
+}
+
+static inline int gpio_direction_input(unsigned gpio)
+{
+       return __gpio_set_direction(gpio, 1);
+}
+
+static inline int gpio_direction_output(unsigned gpio)
+{
+       return __gpio_set_direction(gpio, 0);
+}
+
+static inline int gpio_get_value(unsigned gpio)
+{
+       return omap_get_gpio_datain(gpio);
+}
+
+static inline void gpio_set_value(unsigned gpio, int value)
+{
+       omap_set_gpio_dataout(gpio, value);
+}
+
+#include <asm-generic/gpio.h>          /* cansleep wrappers */
+
+static inline int gpio_to_irq(unsigned gpio)
+{
+       return OMAP_GPIO_IRQ(gpio);
+}
+
+static inline int irq_to_gpio(unsigned irq)
+{
+       if (cpu_class_is_omap1() && (irq < (IH_MPUIO_BASE + 16)))
+               return (irq - IH_MPUIO_BASE) + OMAP_MAX_GPIO_LINES;
+       return irq - IH_GPIO_BASE;
+}
+
 #endif
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to