diff options
| -rw-r--r-- | arch/arm/mach-omap2/gpio.c | 2 | ||||
| -rw-r--r-- | arch/arm/plat-omap/include/plat/gpio.h | 2 | ||||
| -rw-r--r-- | drivers/gpio/gpio-omap.c | 4 | 
3 files changed, 6 insertions, 2 deletions
diff --git a/arch/arm/mach-omap2/gpio.c b/arch/arm/mach-omap2/gpio.c index 86f91a6ed4e..a144e22969a 100644 --- a/arch/arm/mach-omap2/gpio.c +++ b/arch/arm/mach-omap2/gpio.c @@ -101,6 +101,8 @@ static int __init omap2_gpio_dev_init(struct omap_hwmod *oh, void *unused)  		pdata->regs->dataout = OMAP4_GPIO_DATAOUT;  		pdata->regs->set_dataout = OMAP4_GPIO_SETDATAOUT;  		pdata->regs->clr_dataout = OMAP4_GPIO_CLEARDATAOUT; +		pdata->regs->irqstatus_raw0 = OMAP4_GPIO_IRQSTATUSRAW0; +		pdata->regs->irqstatus_raw1 = OMAP4_GPIO_IRQSTATUSRAW1;  		pdata->regs->irqstatus = OMAP4_GPIO_IRQSTATUS0;  		pdata->regs->irqstatus2 = OMAP4_GPIO_IRQSTATUS1;  		pdata->regs->irqenable = OMAP4_GPIO_IRQSTATUSSET0; diff --git a/arch/arm/plat-omap/include/plat/gpio.h b/arch/arm/plat-omap/include/plat/gpio.h index d903e7df3fb..50fb7cc000e 100644 --- a/arch/arm/plat-omap/include/plat/gpio.h +++ b/arch/arm/plat-omap/include/plat/gpio.h @@ -172,6 +172,8 @@ struct omap_gpio_reg_offs {  	u16 clr_dataout;  	u16 irqstatus;  	u16 irqstatus2; +	u16 irqstatus_raw0; +	u16 irqstatus_raw1;  	u16 irqenable;  	u16 irqenable2;  	u16 set_irqenable; diff --git a/drivers/gpio/gpio-omap.c b/drivers/gpio/gpio-omap.c index c89c38869c0..2c70617e6b4 100644 --- a/drivers/gpio/gpio-omap.c +++ b/drivers/gpio/gpio-omap.c @@ -1286,14 +1286,14 @@ static int omap_gpio_runtime_resume(struct device *dev)  		old0 = __raw_readl(bank->base + bank->regs->leveldetect0);  		old1 = __raw_readl(bank->base + bank->regs->leveldetect1); -		if (cpu_is_omap24xx() || cpu_is_omap34xx()) { +		if (!bank->regs->irqstatus_raw0) {  			__raw_writel(old0 | gen, bank->base +  						bank->regs->leveldetect0);  			__raw_writel(old1 | gen, bank->base +  						bank->regs->leveldetect1);  		} -		if (cpu_is_omap44xx()) { +		if (bank->regs->irqstatus_raw0) {  			__raw_writel(old0 | l, bank->base +  						bank->regs->leveldetect0);  			__raw_writel(old1 | l, bank->base +  |