diff options
Diffstat (limited to 'arch/arm')
-rw-r--r-- | arch/arm/mach-omap1/gpio15xx.c | 4 | ||||
-rw-r--r-- | arch/arm/mach-omap1/gpio16xx.c | 5 | ||||
-rw-r--r-- | arch/arm/mach-omap1/gpio7xx.c | 4 | ||||
-rw-r--r-- | arch/arm/mach-omap2/gpio.c | 6 | ||||
-rw-r--r-- | arch/arm/plat-omap/include/plat/gpio.h | 5 |
5 files changed, 24 insertions, 0 deletions
diff --git a/arch/arm/mach-omap1/gpio15xx.c b/arch/arm/mach-omap1/gpio15xx.c index 487a08749655..91756245e860 100644 --- a/arch/arm/mach-omap1/gpio15xx.c +++ b/arch/arm/mach-omap1/gpio15xx.c | |||
@@ -39,6 +39,8 @@ static struct omap_gpio_reg_offs omap15xx_mpuio_regs = { | |||
39 | .datain = OMAP_MPUIO_INPUT_LATCH, | 39 | .datain = OMAP_MPUIO_INPUT_LATCH, |
40 | .dataout = OMAP_MPUIO_OUTPUT, | 40 | .dataout = OMAP_MPUIO_OUTPUT, |
41 | .irqstatus = OMAP_MPUIO_GPIO_INT, | 41 | .irqstatus = OMAP_MPUIO_GPIO_INT, |
42 | .irqenable = OMAP_MPUIO_GPIO_MASKIT, | ||
43 | .irqenable_inv = true, | ||
42 | }; | 44 | }; |
43 | 45 | ||
44 | static struct __initdata omap_gpio_platform_data omap15xx_mpu_gpio_config = { | 46 | static struct __initdata omap_gpio_platform_data omap15xx_mpu_gpio_config = { |
@@ -77,6 +79,8 @@ static struct omap_gpio_reg_offs omap15xx_gpio_regs = { | |||
77 | .datain = OMAP1510_GPIO_DATA_INPUT, | 79 | .datain = OMAP1510_GPIO_DATA_INPUT, |
78 | .dataout = OMAP1510_GPIO_DATA_OUTPUT, | 80 | .dataout = OMAP1510_GPIO_DATA_OUTPUT, |
79 | .irqstatus = OMAP1510_GPIO_INT_STATUS, | 81 | .irqstatus = OMAP1510_GPIO_INT_STATUS, |
82 | .irqenable = OMAP1510_GPIO_INT_MASK, | ||
83 | .irqenable_inv = true, | ||
80 | }; | 84 | }; |
81 | 85 | ||
82 | static struct __initdata omap_gpio_platform_data omap15xx_gpio_config = { | 86 | static struct __initdata omap_gpio_platform_data omap15xx_gpio_config = { |
diff --git a/arch/arm/mach-omap1/gpio16xx.c b/arch/arm/mach-omap1/gpio16xx.c index 3e52b7f3d9cb..a6d4a71ea4af 100644 --- a/arch/arm/mach-omap1/gpio16xx.c +++ b/arch/arm/mach-omap1/gpio16xx.c | |||
@@ -42,6 +42,8 @@ static struct omap_gpio_reg_offs omap16xx_mpuio_regs = { | |||
42 | .datain = OMAP_MPUIO_INPUT_LATCH, | 42 | .datain = OMAP_MPUIO_INPUT_LATCH, |
43 | .dataout = OMAP_MPUIO_OUTPUT, | 43 | .dataout = OMAP_MPUIO_OUTPUT, |
44 | .irqstatus = OMAP_MPUIO_GPIO_INT, | 44 | .irqstatus = OMAP_MPUIO_GPIO_INT, |
45 | .irqenable = OMAP_MPUIO_GPIO_MASKIT, | ||
46 | .irqenable_inv = true, | ||
45 | }; | 47 | }; |
46 | 48 | ||
47 | static struct __initdata omap_gpio_platform_data omap16xx_mpu_gpio_config = { | 49 | static struct __initdata omap_gpio_platform_data omap16xx_mpu_gpio_config = { |
@@ -82,6 +84,9 @@ static struct omap_gpio_reg_offs omap16xx_gpio_regs = { | |||
82 | .datain = OMAP1610_GPIO_DATAIN, | 84 | .datain = OMAP1610_GPIO_DATAIN, |
83 | .dataout = OMAP1610_GPIO_DATAOUT, | 85 | .dataout = OMAP1610_GPIO_DATAOUT, |
84 | .irqstatus = OMAP1610_GPIO_IRQSTATUS1, | 86 | .irqstatus = OMAP1610_GPIO_IRQSTATUS1, |
87 | .irqenable = OMAP1610_GPIO_IRQENABLE1, | ||
88 | .set_irqenable = OMAP1610_GPIO_SET_IRQENABLE1, | ||
89 | .clr_irqenable = OMAP1610_GPIO_CLEAR_IRQENABLE1, | ||
85 | }; | 90 | }; |
86 | 91 | ||
87 | static struct __initdata omap_gpio_platform_data omap16xx_gpio1_config = { | 92 | static struct __initdata omap_gpio_platform_data omap16xx_gpio1_config = { |
diff --git a/arch/arm/mach-omap1/gpio7xx.c b/arch/arm/mach-omap1/gpio7xx.c index 35e8b31688d0..12bcd9f2864a 100644 --- a/arch/arm/mach-omap1/gpio7xx.c +++ b/arch/arm/mach-omap1/gpio7xx.c | |||
@@ -44,6 +44,8 @@ static struct omap_gpio_reg_offs omap7xx_mpuio_regs = { | |||
44 | .datain = OMAP_MPUIO_INPUT_LATCH / 2, | 44 | .datain = OMAP_MPUIO_INPUT_LATCH / 2, |
45 | .dataout = OMAP_MPUIO_OUTPUT / 2, | 45 | .dataout = OMAP_MPUIO_OUTPUT / 2, |
46 | .irqstatus = OMAP_MPUIO_GPIO_INT / 2, | 46 | .irqstatus = OMAP_MPUIO_GPIO_INT / 2, |
47 | .irqenable = OMAP_MPUIO_GPIO_MASKIT / 2, | ||
48 | .irqenable_inv = true, | ||
47 | }; | 49 | }; |
48 | 50 | ||
49 | static struct __initdata omap_gpio_platform_data omap7xx_mpu_gpio_config = { | 51 | static struct __initdata omap_gpio_platform_data omap7xx_mpu_gpio_config = { |
@@ -82,6 +84,8 @@ static struct omap_gpio_reg_offs omap7xx_gpio_regs = { | |||
82 | .datain = OMAP7XX_GPIO_DATA_INPUT, | 84 | .datain = OMAP7XX_GPIO_DATA_INPUT, |
83 | .dataout = OMAP7XX_GPIO_DATA_OUTPUT, | 85 | .dataout = OMAP7XX_GPIO_DATA_OUTPUT, |
84 | .irqstatus = OMAP7XX_GPIO_INT_STATUS, | 86 | .irqstatus = OMAP7XX_GPIO_INT_STATUS, |
87 | .irqenable = OMAP7XX_GPIO_INT_MASK, | ||
88 | .irqenable_inv = true, | ||
85 | }; | 89 | }; |
86 | 90 | ||
87 | static struct __initdata omap_gpio_platform_data omap7xx_gpio1_config = { | 91 | static struct __initdata omap_gpio_platform_data omap7xx_gpio1_config = { |
diff --git a/arch/arm/mach-omap2/gpio.c b/arch/arm/mach-omap2/gpio.c index 7c5e67d0b635..cc26677a12f8 100644 --- a/arch/arm/mach-omap2/gpio.c +++ b/arch/arm/mach-omap2/gpio.c | |||
@@ -78,6 +78,9 @@ static int omap2_gpio_dev_init(struct omap_hwmod *oh, void *unused) | |||
78 | pdata->regs->clr_dataout = OMAP24XX_GPIO_CLEARDATAOUT; | 78 | pdata->regs->clr_dataout = OMAP24XX_GPIO_CLEARDATAOUT; |
79 | pdata->regs->irqstatus = OMAP24XX_GPIO_IRQSTATUS1; | 79 | pdata->regs->irqstatus = OMAP24XX_GPIO_IRQSTATUS1; |
80 | pdata->regs->irqstatus2 = OMAP24XX_GPIO_IRQSTATUS2; | 80 | pdata->regs->irqstatus2 = OMAP24XX_GPIO_IRQSTATUS2; |
81 | pdata->regs->irqenable = OMAP24XX_GPIO_IRQENABLE1; | ||
82 | pdata->regs->set_irqenable = OMAP24XX_GPIO_SETIRQENABLE1; | ||
83 | pdata->regs->clr_irqenable = OMAP24XX_GPIO_CLEARIRQENABLE1; | ||
81 | break; | 84 | break; |
82 | case 2: | 85 | case 2: |
83 | pdata->bank_type = METHOD_GPIO_44XX; | 86 | pdata->bank_type = METHOD_GPIO_44XX; |
@@ -88,6 +91,9 @@ static int omap2_gpio_dev_init(struct omap_hwmod *oh, void *unused) | |||
88 | pdata->regs->clr_dataout = OMAP4_GPIO_CLEARDATAOUT; | 91 | pdata->regs->clr_dataout = OMAP4_GPIO_CLEARDATAOUT; |
89 | pdata->regs->irqstatus = OMAP4_GPIO_IRQSTATUS0; | 92 | pdata->regs->irqstatus = OMAP4_GPIO_IRQSTATUS0; |
90 | pdata->regs->irqstatus2 = OMAP4_GPIO_IRQSTATUS1; | 93 | pdata->regs->irqstatus2 = OMAP4_GPIO_IRQSTATUS1; |
94 | pdata->regs->irqenable = OMAP4_GPIO_IRQSTATUSSET0; | ||
95 | pdata->regs->set_irqenable = OMAP4_GPIO_IRQSTATUSSET0; | ||
96 | pdata->regs->clr_irqenable = OMAP4_GPIO_IRQSTATUSCLR0; | ||
91 | break; | 97 | break; |
92 | default: | 98 | default: |
93 | WARN(1, "Invalid gpio bank_type\n"); | 99 | WARN(1, "Invalid gpio bank_type\n"); |
diff --git a/arch/arm/plat-omap/include/plat/gpio.h b/arch/arm/plat-omap/include/plat/gpio.h index aedd732ef464..c7e3a56340c0 100644 --- a/arch/arm/plat-omap/include/plat/gpio.h +++ b/arch/arm/plat-omap/include/plat/gpio.h | |||
@@ -182,6 +182,11 @@ struct omap_gpio_reg_offs { | |||
182 | u16 clr_dataout; | 182 | u16 clr_dataout; |
183 | u16 irqstatus; | 183 | u16 irqstatus; |
184 | u16 irqstatus2; | 184 | u16 irqstatus2; |
185 | u16 irqenable; | ||
186 | u16 set_irqenable; | ||
187 | u16 clr_irqenable; | ||
188 | |||
189 | bool irqenable_inv; | ||
185 | }; | 190 | }; |
186 | 191 | ||
187 | struct omap_gpio_platform_data { | 192 | struct omap_gpio_platform_data { |