aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorKevin Hilman <khilman@ti.com>2011-04-21 12:17:35 -0400
committerKevin Hilman <khilman@ti.com>2011-06-16 14:13:46 -0400
commiteef4bec7bf2fa9953f6b8f371d5914d014f45d40 (patch)
tree9c81437aca15d8d5f4caed2e23d1072877c1e13c /arch
parentfa87931acb8203a1f40a3c637863ad238f70cd40 (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.c2
-rw-r--r--arch/arm/mach-omap1/gpio16xx.c2
-rw-r--r--arch/arm/mach-omap1/gpio7xx.c2
-rw-r--r--arch/arm/mach-omap2/gpio.c4
-rw-r--r--arch/arm/plat-omap/include/plat/gpio.h2
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
43static struct __initdata omap_gpio_platform_data omap15xx_mpu_gpio_config = { 44static 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
80static struct __initdata omap_gpio_platform_data omap15xx_gpio_config = { 82static 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
46static struct __initdata omap_gpio_platform_data omap16xx_mpu_gpio_config = { 47static 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
85static struct __initdata omap_gpio_platform_data omap16xx_gpio1_config = { 87static 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
48static struct __initdata omap_gpio_platform_data omap7xx_mpu_gpio_config = { 49static 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
85static struct __initdata omap_gpio_platform_data omap7xx_gpio1_config = { 87static 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
185struct omap_gpio_platform_data { 187struct omap_gpio_platform_data {