[ARM] 4095/1: S3C24XX: Fix GPIO set for Bank A
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>
This commit is contained in:
parent
5225cd8079
commit
6c3c5bb3c6
2 changed files with 3 additions and 2 deletions
|
@ -57,6 +57,7 @@ void s3c2410_gpio_cfgpin(unsigned int pin, unsigned int function)
|
||||||
case S3C2410_GPIO_SFN2:
|
case S3C2410_GPIO_SFN2:
|
||||||
case S3C2410_GPIO_SFN3:
|
case S3C2410_GPIO_SFN3:
|
||||||
if (pin < S3C2410_GPIO_BANKB) {
|
if (pin < S3C2410_GPIO_BANKB) {
|
||||||
|
function -= 1;
|
||||||
function &= 1;
|
function &= 1;
|
||||||
function <<= S3C2410_GPIO_OFFSET(pin);
|
function <<= S3C2410_GPIO_OFFSET(pin);
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -52,10 +52,10 @@
|
||||||
/* general configuration options */
|
/* general configuration options */
|
||||||
|
|
||||||
#define S3C2410_GPIO_LEAVE (0xFFFFFFFF)
|
#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_OUTPUT (0xFFFFFFF1)
|
||||||
#define S3C2410_GPIO_IRQ (0xFFFFFFF2) /* not available for all */
|
#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 */
|
#define S3C2410_GPIO_SFN3 (0xFFFFFFF3) /* not available on A */
|
||||||
|
|
||||||
/* register address for the GPIO registers.
|
/* register address for the GPIO registers.
|
||||||
|
|
Loading…
Reference in a new issue