[ARM] 4095/1: S3C24XX: Fix GPIO set for Bank A
authorBen Dooks <ben-linux@fluff.org>
Tue, 16 Jan 2007 11:33:35 +0000 (12:33 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Wed, 24 Jan 2007 11:59:56 +0000 (11:59 +0000)
GPIO bank A can only be output or a special
function, and the regs-gpio.h header has
mistakenly got this as input or output.

The mistake is carried on into the gpio.c
s3c2410_gpio_cfgpin() call which will set the
wrong value if S3C2410_GPIO_OUTPUT is passed.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/mach-s3c2410/gpio.c
include/asm-arm/arch-s3c2410/regs-gpio.h

index ba34654..d174064 100644 (file)
@@ -57,6 +57,7 @@ void s3c2410_gpio_cfgpin(unsigned int pin, unsigned int function)
        case S3C2410_GPIO_SFN2:
        case S3C2410_GPIO_SFN3:
                if (pin < S3C2410_GPIO_BANKB) {
+                       function -= 1;
                        function &= 1;
                        function <<= S3C2410_GPIO_OFFSET(pin);
                } else {
index b2893e3..eae9169 100644 (file)
 /* general configuration options */
 
 #define S3C2410_GPIO_LEAVE   (0xFFFFFFFF)
-#define S3C2410_GPIO_INPUT   (0xFFFFFFF0)
+#define S3C2410_GPIO_INPUT   (0xFFFFFFF0)      /* not available on A */
 #define S3C2410_GPIO_OUTPUT  (0xFFFFFFF1)
 #define S3C2410_GPIO_IRQ     (0xFFFFFFF2)      /* not available for all */
-#define S3C2410_GPIO_SFN2    (0xFFFFFFF2)      /* not available on A */
+#define S3C2410_GPIO_SFN2    (0xFFFFFFF2)      /* bank A => addr/cs/nand */
 #define S3C2410_GPIO_SFN3    (0xFFFFFFF3)      /* not available on A */
 
 /* register address for the GPIO registers.