diff options
-rw-r--r-- | arch/arm/plat-mxc/gpio.c | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/arch/arm/plat-mxc/gpio.c b/arch/arm/plat-mxc/gpio.c index 65cb5ecafc72..5c2e2d933187 100644 --- a/arch/arm/plat-mxc/gpio.c +++ b/arch/arm/plat-mxc/gpio.c @@ -39,13 +39,23 @@ /* GPIO related defines */ #if defined(CONFIG_ARCH_MX27) enum gpio_reg { + GPIO_GDIR = 0x00, /* GPIO_DDIR */ + GPIO_OCR1 = 0x04, + GPIO_OCR2 = 0x08, + GPIO_ICONFA1 = 0x0C, + GPIO_ICONFA2 = 0x10, + GPIO_ICONFB1 = 0x14, + GPIO_ICONFB2 = 0x18, GPIO_DR = 0x1C, - GPIO_GDIR = 0x00, - GPIO_PSR = 0x24, + GPIO_GIUS = 0x20, + GPIO_SSR = 0x24, GPIO_ICR1 = 0x028, GPIO_ICR2 = 0x2C, GPIO_IMR = 0x30, GPIO_ISR = 0x34, + GPIO_GPR = 0x38, + GPIO_SWR = 0x3C, + GPIO_PUEN = 0x40, }; #else enum gpio_reg { @@ -190,7 +200,11 @@ int mxc_get_gpio_datain(iomux_pin_name_t pin) port = get_gpio_port(gpio); +#ifdef CONFIG_ARCH_MX27 + return (__raw_readl(port->base + GPIO_SSR) >> GPIO_TO_INDEX(gpio)) & 1; +#else return (__raw_readl(port->base + GPIO_DR) >> GPIO_TO_INDEX(gpio)) & 1; +#endif } /* |