diff options
author | Kevin Hilman <khilman@ti.com> | 2011-04-21 12:17:35 -0400 |
---|---|---|
committer | Kevin Hilman <khilman@ti.com> | 2011-06-16 14:13:46 -0400 |
commit | eef4bec7bf2fa9953f6b8f371d5914d014f45d40 (patch) | |
tree | 9c81437aca15d8d5f4caed2e23d1072877c1e13c /arch | |
parent | fa87931acb8203a1f40a3c637863ad238f70cd40 (diff) |
gpio/omap: consolidate IRQ status handling, remove #ifdefs
Cleanup IRQ status handling by passing IRQ status register offsets
via platform data.
Cleans up clearing of GPIO IRQ status and GPIO ISR handler.
Signed-off-by: Kevin Hilman <khilman@ti.com>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/mach-omap1/gpio15xx.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-omap1/gpio16xx.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-omap1/gpio7xx.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-omap2/gpio.c | 4 | ||||
-rw-r--r-- | arch/arm/plat-omap/include/plat/gpio.h | 2 |
5 files changed, 12 insertions, 0 deletions
diff --git a/arch/arm/mach-omap1/gpio15xx.c b/arch/arm/mach-omap1/gpio15xx.c index a622d567b53e..487a08749655 100644 --- a/arch/arm/mach-omap1/gpio15xx.c +++ b/arch/arm/mach-omap1/gpio15xx.c | |||
@@ -38,6 +38,7 @@ static struct omap_gpio_reg_offs omap15xx_mpuio_regs = { | |||
38 | .direction = OMAP_MPUIO_IO_CNTL, | 38 | .direction = OMAP_MPUIO_IO_CNTL, |
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 | }; | 42 | }; |
42 | 43 | ||
43 | static struct __initdata omap_gpio_platform_data omap15xx_mpu_gpio_config = { | 44 | static struct __initdata omap_gpio_platform_data omap15xx_mpu_gpio_config = { |
@@ -75,6 +76,7 @@ static struct omap_gpio_reg_offs omap15xx_gpio_regs = { | |||
75 | .direction = OMAP1510_GPIO_DIR_CONTROL, | 76 | .direction = OMAP1510_GPIO_DIR_CONTROL, |
76 | .datain = OMAP1510_GPIO_DATA_INPUT, | 77 | .datain = OMAP1510_GPIO_DATA_INPUT, |
77 | .dataout = OMAP1510_GPIO_DATA_OUTPUT, | 78 | .dataout = OMAP1510_GPIO_DATA_OUTPUT, |
79 | .irqstatus = OMAP1510_GPIO_INT_STATUS, | ||
78 | }; | 80 | }; |
79 | 81 | ||
80 | static struct __initdata omap_gpio_platform_data omap15xx_gpio_config = { | 82 | 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 4ff6ff36ab73..3e52b7f3d9cb 100644 --- a/arch/arm/mach-omap1/gpio16xx.c +++ b/arch/arm/mach-omap1/gpio16xx.c | |||
@@ -41,6 +41,7 @@ static struct omap_gpio_reg_offs omap16xx_mpuio_regs = { | |||
41 | .direction = OMAP_MPUIO_IO_CNTL, | 41 | .direction = OMAP_MPUIO_IO_CNTL, |
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 | }; | 45 | }; |
45 | 46 | ||
46 | static struct __initdata omap_gpio_platform_data omap16xx_mpu_gpio_config = { | 47 | static struct __initdata omap_gpio_platform_data omap16xx_mpu_gpio_config = { |
@@ -80,6 +81,7 @@ static struct omap_gpio_reg_offs omap16xx_gpio_regs = { | |||
80 | .clr_dataout = OMAP1610_GPIO_CLEAR_DATAOUT, | 81 | .clr_dataout = OMAP1610_GPIO_CLEAR_DATAOUT, |
81 | .datain = OMAP1610_GPIO_DATAIN, | 82 | .datain = OMAP1610_GPIO_DATAIN, |
82 | .dataout = OMAP1610_GPIO_DATAOUT, | 83 | .dataout = OMAP1610_GPIO_DATAOUT, |
84 | .irqstatus = OMAP1610_GPIO_IRQSTATUS1, | ||
83 | }; | 85 | }; |
84 | 86 | ||
85 | static struct __initdata omap_gpio_platform_data omap16xx_gpio1_config = { | 87 | 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 efe4dccaa4f2..35e8b31688d0 100644 --- a/arch/arm/mach-omap1/gpio7xx.c +++ b/arch/arm/mach-omap1/gpio7xx.c | |||
@@ -43,6 +43,7 @@ static struct omap_gpio_reg_offs omap7xx_mpuio_regs = { | |||
43 | .direction = OMAP_MPUIO_IO_CNTL / 2, | 43 | .direction = OMAP_MPUIO_IO_CNTL / 2, |
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 | }; | 47 | }; |
47 | 48 | ||
48 | static struct __initdata omap_gpio_platform_data omap7xx_mpu_gpio_config = { | 49 | static struct __initdata omap_gpio_platform_data omap7xx_mpu_gpio_config = { |
@@ -80,6 +81,7 @@ static struct omap_gpio_reg_offs omap7xx_gpio_regs = { | |||
80 | .direction = OMAP7XX_GPIO_DIR_CONTROL, | 81 | .direction = OMAP7XX_GPIO_DIR_CONTROL, |
81 | .datain = OMAP7XX_GPIO_DATA_INPUT, | 82 | .datain = OMAP7XX_GPIO_DATA_INPUT, |
82 | .dataout = OMAP7XX_GPIO_DATA_OUTPUT, | 83 | .dataout = OMAP7XX_GPIO_DATA_OUTPUT, |
84 | .irqstatus = OMAP7XX_GPIO_INT_STATUS, | ||
83 | }; | 85 | }; |
84 | 86 | ||
85 | static struct __initdata omap_gpio_platform_data omap7xx_gpio1_config = { | 87 | 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 357e06956b0c..7c5e67d0b635 100644 --- a/arch/arm/mach-omap2/gpio.c +++ b/arch/arm/mach-omap2/gpio.c | |||
@@ -76,6 +76,8 @@ static int omap2_gpio_dev_init(struct omap_hwmod *oh, void *unused) | |||
76 | pdata->regs->dataout = OMAP24XX_GPIO_DATAOUT; | 76 | pdata->regs->dataout = OMAP24XX_GPIO_DATAOUT; |
77 | pdata->regs->set_dataout = OMAP24XX_GPIO_SETDATAOUT; | 77 | pdata->regs->set_dataout = OMAP24XX_GPIO_SETDATAOUT; |
78 | pdata->regs->clr_dataout = OMAP24XX_GPIO_CLEARDATAOUT; | 78 | pdata->regs->clr_dataout = OMAP24XX_GPIO_CLEARDATAOUT; |
79 | pdata->regs->irqstatus = OMAP24XX_GPIO_IRQSTATUS1; | ||
80 | pdata->regs->irqstatus2 = OMAP24XX_GPIO_IRQSTATUS2; | ||
79 | break; | 81 | break; |
80 | case 2: | 82 | case 2: |
81 | pdata->bank_type = METHOD_GPIO_44XX; | 83 | pdata->bank_type = METHOD_GPIO_44XX; |
@@ -84,6 +86,8 @@ static int omap2_gpio_dev_init(struct omap_hwmod *oh, void *unused) | |||
84 | pdata->regs->dataout = OMAP4_GPIO_DATAOUT; | 86 | pdata->regs->dataout = OMAP4_GPIO_DATAOUT; |
85 | pdata->regs->set_dataout = OMAP4_GPIO_SETDATAOUT; | 87 | pdata->regs->set_dataout = OMAP4_GPIO_SETDATAOUT; |
86 | pdata->regs->clr_dataout = OMAP4_GPIO_CLEARDATAOUT; | 88 | pdata->regs->clr_dataout = OMAP4_GPIO_CLEARDATAOUT; |
89 | pdata->regs->irqstatus = OMAP4_GPIO_IRQSTATUS0; | ||
90 | pdata->regs->irqstatus2 = OMAP4_GPIO_IRQSTATUS1; | ||
87 | break; | 91 | break; |
88 | default: | 92 | default: |
89 | WARN(1, "Invalid gpio bank_type\n"); | 93 | 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 268bccd0f7f6..aedd732ef464 100644 --- a/arch/arm/plat-omap/include/plat/gpio.h +++ b/arch/arm/plat-omap/include/plat/gpio.h | |||
@@ -180,6 +180,8 @@ struct omap_gpio_reg_offs { | |||
180 | u16 dataout; | 180 | u16 dataout; |
181 | u16 set_dataout; | 181 | u16 set_dataout; |
182 | u16 clr_dataout; | 182 | u16 clr_dataout; |
183 | u16 irqstatus; | ||
184 | u16 irqstatus2; | ||
183 | }; | 185 | }; |
184 | 186 | ||
185 | struct omap_gpio_platform_data { | 187 | struct omap_gpio_platform_data { |