Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=25735d10ba477d5128b1e5ccef42062bea429075
Commit:     25735d10ba477d5128b1e5ccef42062bea429075
Parent:     235b185ce47ce64793362bd3ae4bcd8afc6b57b8
Author:     Milan Svoboda <[EMAIL PROTECTED]>
AuthorDate: Wed Mar 21 14:04:08 2007 +0100
Committer:  Russell King <[EMAIL PROTECTED]>
CommitDate: Sat Apr 21 20:51:42 2007 +0100

    [ARM] 4275/1: generic gpio layer for ixp4xx
    
    This patch brings generic gpio layer support to ixp4xx. It creates
    functions needed for gpio->irq and irq->gpio translation.
    
    It expects and initial value to be passed to
    gpio_direction_output() which has been introduced by
    commit 28735a7253a6c24364765e80a5428b4a151fccc2 in Linus git tree.
    
    Generic gpio layer is going to be used by pxa2xx_udc driver.
    
    Signed-off-by: Milan Svoboda <[EMAIL PROTECTED]>
    Signed-off-by: Russell King <[EMAIL PROTECTED]>
---
 arch/arm/mach-ixp4xx/common.c      |   23 +++++++++++
 include/asm-arm/arch-ixp4xx/gpio.h |   73 ++++++++++++++++++++++++++++++++++++
 2 files changed, 96 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-ixp4xx/common.c b/arch/arm/mach-ixp4xx/common.c
index 45068c3..39f2eeb 100644
--- a/arch/arm/mach-ixp4xx/common.c
+++ b/arch/arm/mach-ixp4xx/common.c
@@ -102,6 +102,29 @@ static signed char irq2gpio[32] = {
         7,  8,  9, 10, 11, 12, -1, -1,
 };
 
+int gpio_to_irq(int gpio)
+{
+       int irq;
+
+       for (irq = 0; irq < 32; irq++) {
+               if (irq2gpio[irq] == gpio)
+                       return irq;
+       }
+       return -EINVAL;
+}
+EXPORT_SYMBOL(gpio_to_irq);
+
+int irq_to_gpio(int irq)
+{
+       int gpio = (irq < 32) ? irq2gpio[irq] : -EINVAL;
+
+       if (gpio == -1)
+               return -EINVAL;
+
+       return gpio;
+}
+EXPORT_SYMBOL(irq_to_gpio);
+
 static int ixp4xx_set_irq_type(unsigned int irq, unsigned int type)
 {
        int line = irq2gpio[irq];
diff --git a/include/asm-arm/arch-ixp4xx/gpio.h 
b/include/asm-arm/arch-ixp4xx/gpio.h
new file mode 100644
index 0000000..3a4c5b8
--- /dev/null
+++ b/include/asm-arm/arch-ixp4xx/gpio.h
@@ -0,0 +1,73 @@
+/*
+ * linux/include/asm-arm/arch-ixp4xx/gpio.h
+ *
+ * IXP4XX GPIO wrappers for arch-neutral GPIO calls
+ *
+ * Written by Milan Svoboda <[EMAIL PROTECTED]>
+ * Based on PXA implementation by Philipp Zabel <[EMAIL PROTECTED]>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ */
+
+#ifndef __ASM_ARCH_IXP4XX_GPIO_H
+#define __ASM_ARCH_IXP4XX_GPIO_H
+
+#include <asm/hardware.h>
+
+static inline int gpio_request(unsigned gpio, const char *label)
+{
+       return 0;
+}
+
+static inline void gpio_free(unsigned gpio)
+{
+       return;
+}
+
+static inline int gpio_direction_input(unsigned gpio)
+{
+       gpio_line_config(gpio, IXP4XX_GPIO_IN);
+       return 0;
+}
+
+static inline int gpio_direction_output(unsigned gpio, int level)
+{
+       gpio_line_set(gpio, level);
+       gpio_line_config(gpio, IXP4XX_GPIO_OUT);
+       return 0;
+}
+
+static inline int gpio_get_value(unsigned gpio)
+{
+       int value;
+
+       gpio_line_get(gpio, &value);
+
+       return value;
+}
+
+static inline void gpio_set_value(unsigned gpio, int value)
+{
+       gpio_line_set(gpio, value);
+}
+
+#include <asm-generic/gpio.h>                  /* cansleep wrappers */
+
+extern int gpio_to_irq(int gpio);
+extern int irq_to_gpio(int gpio);
+
+#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