diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-07-22 17:50:57 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-07-22 17:50:57 -0400 |
commit | c7c8518498e82591d7784452f5674c3aeb4d079c (patch) | |
tree | 790ff7e6b6741daf32ec686b9a302b957b07c0f4 /arch/arm/mach-omap1 | |
parent | ece236ce2fad9c27a6fd2530f899289025194bce (diff) | |
parent | 591567a5ea25852f20b7ef2953f6f72020121199 (diff) |
Merge branch 'gpio/next' of git://git.secretlab.ca/git/linux-2.6
* 'gpio/next' of git://git.secretlab.ca/git/linux-2.6: (61 commits)
gpio/mxc/mxs: fix build error introduced by the irq_gc_ack() renaming
mcp23s08: add i2c support
mcp23s08: isolate spi specific parts
mcp23s08: get rid of setup/teardown callbacks
gpio/tegra: dt: add binding for gpio polarity
mcp23s08: remove unused work queue
gpio/da9052: remove a redundant assignment for gpio->da9052
gpio/mxc: add device tree probe support
ARM: mxc: use ARCH_NR_GPIOS to define gpio number
gpio/mxc: get rid of the uses of cpu_is_mx()
gpio/mxc: add missing initialization of basic_mmio_gpio shadow variables
gpio: Move mpc5200 gpio driver to drivers/gpio
GPIO: DA9052 GPIO module v3
gpio/tegra: Use engineering names in DT compatible property
of/gpio: Add new method for getting gpios under different property names
gpio/dt: Refine GPIO device tree binding
gpio/ml-ioh: fix off-by-one for displaying variable i in dev_err
gpio/pca953x: Deprecate meaningless device-tree bindings
gpio/pca953x: Remove dynamic platform data pointer
gpio/pca953x: Fix IRQ support.
...
Diffstat (limited to 'arch/arm/mach-omap1')
-rw-r--r-- | arch/arm/mach-omap1/gpio15xx.c | 22 | ||||
-rw-r--r-- | arch/arm/mach-omap1/gpio16xx.c | 28 | ||||
-rw-r--r-- | arch/arm/mach-omap1/gpio7xx.c | 27 |
3 files changed, 77 insertions, 0 deletions
diff --git a/arch/arm/mach-omap1/gpio15xx.c b/arch/arm/mach-omap1/gpio15xx.c index 364137c2042..399da4ce017 100644 --- a/arch/arm/mach-omap1/gpio15xx.c +++ b/arch/arm/mach-omap1/gpio15xx.c | |||
@@ -34,11 +34,22 @@ static struct __initdata resource omap15xx_mpu_gpio_resources[] = { | |||
34 | }, | 34 | }, |
35 | }; | 35 | }; |
36 | 36 | ||
37 | static struct omap_gpio_reg_offs omap15xx_mpuio_regs = { | ||
38 | .revision = USHRT_MAX, | ||
39 | .direction = OMAP_MPUIO_IO_CNTL, | ||
40 | .datain = OMAP_MPUIO_INPUT_LATCH, | ||
41 | .dataout = OMAP_MPUIO_OUTPUT, | ||
42 | .irqstatus = OMAP_MPUIO_GPIO_INT, | ||
43 | .irqenable = OMAP_MPUIO_GPIO_MASKIT, | ||
44 | .irqenable_inv = true, | ||
45 | }; | ||
46 | |||
37 | static struct __initdata omap_gpio_platform_data omap15xx_mpu_gpio_config = { | 47 | static struct __initdata omap_gpio_platform_data omap15xx_mpu_gpio_config = { |
38 | .virtual_irq_start = IH_MPUIO_BASE, | 48 | .virtual_irq_start = IH_MPUIO_BASE, |
39 | .bank_type = METHOD_MPUIO, | 49 | .bank_type = METHOD_MPUIO, |
40 | .bank_width = 16, | 50 | .bank_width = 16, |
41 | .bank_stride = 1, | 51 | .bank_stride = 1, |
52 | .regs = &omap15xx_mpuio_regs, | ||
42 | }; | 53 | }; |
43 | 54 | ||
44 | static struct platform_device omap15xx_mpu_gpio = { | 55 | static struct platform_device omap15xx_mpu_gpio = { |
@@ -64,10 +75,21 @@ static struct __initdata resource omap15xx_gpio_resources[] = { | |||
64 | }, | 75 | }, |
65 | }; | 76 | }; |
66 | 77 | ||
78 | static struct omap_gpio_reg_offs omap15xx_gpio_regs = { | ||
79 | .revision = USHRT_MAX, | ||
80 | .direction = OMAP1510_GPIO_DIR_CONTROL, | ||
81 | .datain = OMAP1510_GPIO_DATA_INPUT, | ||
82 | .dataout = OMAP1510_GPIO_DATA_OUTPUT, | ||
83 | .irqstatus = OMAP1510_GPIO_INT_STATUS, | ||
84 | .irqenable = OMAP1510_GPIO_INT_MASK, | ||
85 | .irqenable_inv = true, | ||
86 | }; | ||
87 | |||
67 | static struct __initdata omap_gpio_platform_data omap15xx_gpio_config = { | 88 | static struct __initdata omap_gpio_platform_data omap15xx_gpio_config = { |
68 | .virtual_irq_start = IH_GPIO_BASE, | 89 | .virtual_irq_start = IH_GPIO_BASE, |
69 | .bank_type = METHOD_GPIO_1510, | 90 | .bank_type = METHOD_GPIO_1510, |
70 | .bank_width = 16, | 91 | .bank_width = 16, |
92 | .regs = &omap15xx_gpio_regs, | ||
71 | }; | 93 | }; |
72 | 94 | ||
73 | static struct platform_device omap15xx_gpio = { | 95 | static struct platform_device omap15xx_gpio = { |
diff --git a/arch/arm/mach-omap1/gpio16xx.c b/arch/arm/mach-omap1/gpio16xx.c index 293a246e282..0f399bd0e70 100644 --- a/arch/arm/mach-omap1/gpio16xx.c +++ b/arch/arm/mach-omap1/gpio16xx.c | |||
@@ -37,11 +37,22 @@ static struct __initdata resource omap16xx_mpu_gpio_resources[] = { | |||
37 | }, | 37 | }, |
38 | }; | 38 | }; |
39 | 39 | ||
40 | static struct omap_gpio_reg_offs omap16xx_mpuio_regs = { | ||
41 | .revision = USHRT_MAX, | ||
42 | .direction = OMAP_MPUIO_IO_CNTL, | ||
43 | .datain = OMAP_MPUIO_INPUT_LATCH, | ||
44 | .dataout = OMAP_MPUIO_OUTPUT, | ||
45 | .irqstatus = OMAP_MPUIO_GPIO_INT, | ||
46 | .irqenable = OMAP_MPUIO_GPIO_MASKIT, | ||
47 | .irqenable_inv = true, | ||
48 | }; | ||
49 | |||
40 | static struct __initdata omap_gpio_platform_data omap16xx_mpu_gpio_config = { | 50 | static struct __initdata omap_gpio_platform_data omap16xx_mpu_gpio_config = { |
41 | .virtual_irq_start = IH_MPUIO_BASE, | 51 | .virtual_irq_start = IH_MPUIO_BASE, |
42 | .bank_type = METHOD_MPUIO, | 52 | .bank_type = METHOD_MPUIO, |
43 | .bank_width = 16, | 53 | .bank_width = 16, |
44 | .bank_stride = 1, | 54 | .bank_stride = 1, |
55 | .regs = &omap16xx_mpuio_regs, | ||
45 | }; | 56 | }; |
46 | 57 | ||
47 | static struct platform_device omap16xx_mpu_gpio = { | 58 | static struct platform_device omap16xx_mpu_gpio = { |
@@ -67,10 +78,24 @@ static struct __initdata resource omap16xx_gpio1_resources[] = { | |||
67 | }, | 78 | }, |
68 | }; | 79 | }; |
69 | 80 | ||
81 | static struct omap_gpio_reg_offs omap16xx_gpio_regs = { | ||
82 | .revision = OMAP1610_GPIO_REVISION, | ||
83 | .direction = OMAP1610_GPIO_DIRECTION, | ||
84 | .set_dataout = OMAP1610_GPIO_SET_DATAOUT, | ||
85 | .clr_dataout = OMAP1610_GPIO_CLEAR_DATAOUT, | ||
86 | .datain = OMAP1610_GPIO_DATAIN, | ||
87 | .dataout = OMAP1610_GPIO_DATAOUT, | ||
88 | .irqstatus = OMAP1610_GPIO_IRQSTATUS1, | ||
89 | .irqenable = OMAP1610_GPIO_IRQENABLE1, | ||
90 | .set_irqenable = OMAP1610_GPIO_SET_IRQENABLE1, | ||
91 | .clr_irqenable = OMAP1610_GPIO_CLEAR_IRQENABLE1, | ||
92 | }; | ||
93 | |||
70 | static struct __initdata omap_gpio_platform_data omap16xx_gpio1_config = { | 94 | static struct __initdata omap_gpio_platform_data omap16xx_gpio1_config = { |
71 | .virtual_irq_start = IH_GPIO_BASE, | 95 | .virtual_irq_start = IH_GPIO_BASE, |
72 | .bank_type = METHOD_GPIO_1610, | 96 | .bank_type = METHOD_GPIO_1610, |
73 | .bank_width = 16, | 97 | .bank_width = 16, |
98 | .regs = &omap16xx_gpio_regs, | ||
74 | }; | 99 | }; |
75 | 100 | ||
76 | static struct platform_device omap16xx_gpio1 = { | 101 | static struct platform_device omap16xx_gpio1 = { |
@@ -100,6 +125,7 @@ static struct __initdata omap_gpio_platform_data omap16xx_gpio2_config = { | |||
100 | .virtual_irq_start = IH_GPIO_BASE + 16, | 125 | .virtual_irq_start = IH_GPIO_BASE + 16, |
101 | .bank_type = METHOD_GPIO_1610, | 126 | .bank_type = METHOD_GPIO_1610, |
102 | .bank_width = 16, | 127 | .bank_width = 16, |
128 | .regs = &omap16xx_gpio_regs, | ||
103 | }; | 129 | }; |
104 | 130 | ||
105 | static struct platform_device omap16xx_gpio2 = { | 131 | static struct platform_device omap16xx_gpio2 = { |
@@ -129,6 +155,7 @@ static struct __initdata omap_gpio_platform_data omap16xx_gpio3_config = { | |||
129 | .virtual_irq_start = IH_GPIO_BASE + 32, | 155 | .virtual_irq_start = IH_GPIO_BASE + 32, |
130 | .bank_type = METHOD_GPIO_1610, | 156 | .bank_type = METHOD_GPIO_1610, |
131 | .bank_width = 16, | 157 | .bank_width = 16, |
158 | .regs = &omap16xx_gpio_regs, | ||
132 | }; | 159 | }; |
133 | 160 | ||
134 | static struct platform_device omap16xx_gpio3 = { | 161 | static struct platform_device omap16xx_gpio3 = { |
@@ -158,6 +185,7 @@ static struct __initdata omap_gpio_platform_data omap16xx_gpio4_config = { | |||
158 | .virtual_irq_start = IH_GPIO_BASE + 48, | 185 | .virtual_irq_start = IH_GPIO_BASE + 48, |
159 | .bank_type = METHOD_GPIO_1610, | 186 | .bank_type = METHOD_GPIO_1610, |
160 | .bank_width = 16, | 187 | .bank_width = 16, |
188 | .regs = &omap16xx_gpio_regs, | ||
161 | }; | 189 | }; |
162 | 190 | ||
163 | static struct platform_device omap16xx_gpio4 = { | 191 | static struct platform_device omap16xx_gpio4 = { |
diff --git a/arch/arm/mach-omap1/gpio7xx.c b/arch/arm/mach-omap1/gpio7xx.c index c6ad248d63a..5ab63eab0ff 100644 --- a/arch/arm/mach-omap1/gpio7xx.c +++ b/arch/arm/mach-omap1/gpio7xx.c | |||
@@ -39,11 +39,22 @@ static struct __initdata resource omap7xx_mpu_gpio_resources[] = { | |||
39 | }, | 39 | }, |
40 | }; | 40 | }; |
41 | 41 | ||
42 | static struct omap_gpio_reg_offs omap7xx_mpuio_regs = { | ||
43 | .revision = USHRT_MAX, | ||
44 | .direction = OMAP_MPUIO_IO_CNTL / 2, | ||
45 | .datain = OMAP_MPUIO_INPUT_LATCH / 2, | ||
46 | .dataout = OMAP_MPUIO_OUTPUT / 2, | ||
47 | .irqstatus = OMAP_MPUIO_GPIO_INT / 2, | ||
48 | .irqenable = OMAP_MPUIO_GPIO_MASKIT / 2, | ||
49 | .irqenable_inv = true, | ||
50 | }; | ||
51 | |||
42 | static struct __initdata omap_gpio_platform_data omap7xx_mpu_gpio_config = { | 52 | static struct __initdata omap_gpio_platform_data omap7xx_mpu_gpio_config = { |
43 | .virtual_irq_start = IH_MPUIO_BASE, | 53 | .virtual_irq_start = IH_MPUIO_BASE, |
44 | .bank_type = METHOD_MPUIO, | 54 | .bank_type = METHOD_MPUIO, |
45 | .bank_width = 32, | 55 | .bank_width = 32, |
46 | .bank_stride = 2, | 56 | .bank_stride = 2, |
57 | .regs = &omap7xx_mpuio_regs, | ||
47 | }; | 58 | }; |
48 | 59 | ||
49 | static struct platform_device omap7xx_mpu_gpio = { | 60 | static struct platform_device omap7xx_mpu_gpio = { |
@@ -69,10 +80,21 @@ static struct __initdata resource omap7xx_gpio1_resources[] = { | |||
69 | }, | 80 | }, |
70 | }; | 81 | }; |
71 | 82 | ||
83 | static struct omap_gpio_reg_offs omap7xx_gpio_regs = { | ||
84 | .revision = USHRT_MAX, | ||
85 | .direction = OMAP7XX_GPIO_DIR_CONTROL, | ||
86 | .datain = OMAP7XX_GPIO_DATA_INPUT, | ||
87 | .dataout = OMAP7XX_GPIO_DATA_OUTPUT, | ||
88 | .irqstatus = OMAP7XX_GPIO_INT_STATUS, | ||
89 | .irqenable = OMAP7XX_GPIO_INT_MASK, | ||
90 | .irqenable_inv = true, | ||
91 | }; | ||
92 | |||
72 | static struct __initdata omap_gpio_platform_data omap7xx_gpio1_config = { | 93 | static struct __initdata omap_gpio_platform_data omap7xx_gpio1_config = { |
73 | .virtual_irq_start = IH_GPIO_BASE, | 94 | .virtual_irq_start = IH_GPIO_BASE, |
74 | .bank_type = METHOD_GPIO_7XX, | 95 | .bank_type = METHOD_GPIO_7XX, |
75 | .bank_width = 32, | 96 | .bank_width = 32, |
97 | .regs = &omap7xx_gpio_regs, | ||
76 | }; | 98 | }; |
77 | 99 | ||
78 | static struct platform_device omap7xx_gpio1 = { | 100 | static struct platform_device omap7xx_gpio1 = { |
@@ -102,6 +124,7 @@ static struct __initdata omap_gpio_platform_data omap7xx_gpio2_config = { | |||
102 | .virtual_irq_start = IH_GPIO_BASE + 32, | 124 | .virtual_irq_start = IH_GPIO_BASE + 32, |
103 | .bank_type = METHOD_GPIO_7XX, | 125 | .bank_type = METHOD_GPIO_7XX, |
104 | .bank_width = 32, | 126 | .bank_width = 32, |
127 | .regs = &omap7xx_gpio_regs, | ||
105 | }; | 128 | }; |
106 | 129 | ||
107 | static struct platform_device omap7xx_gpio2 = { | 130 | static struct platform_device omap7xx_gpio2 = { |
@@ -131,6 +154,7 @@ static struct __initdata omap_gpio_platform_data omap7xx_gpio3_config = { | |||
131 | .virtual_irq_start = IH_GPIO_BASE + 64, | 154 | .virtual_irq_start = IH_GPIO_BASE + 64, |
132 | .bank_type = METHOD_GPIO_7XX, | 155 | .bank_type = METHOD_GPIO_7XX, |
133 | .bank_width = 32, | 156 | .bank_width = 32, |
157 | .regs = &omap7xx_gpio_regs, | ||
134 | }; | 158 | }; |
135 | 159 | ||
136 | static struct platform_device omap7xx_gpio3 = { | 160 | static struct platform_device omap7xx_gpio3 = { |
@@ -160,6 +184,7 @@ static struct __initdata omap_gpio_platform_data omap7xx_gpio4_config = { | |||
160 | .virtual_irq_start = IH_GPIO_BASE + 96, | 184 | .virtual_irq_start = IH_GPIO_BASE + 96, |
161 | .bank_type = METHOD_GPIO_7XX, | 185 | .bank_type = METHOD_GPIO_7XX, |
162 | .bank_width = 32, | 186 | .bank_width = 32, |
187 | .regs = &omap7xx_gpio_regs, | ||
163 | }; | 188 | }; |
164 | 189 | ||
165 | static struct platform_device omap7xx_gpio4 = { | 190 | static struct platform_device omap7xx_gpio4 = { |
@@ -189,6 +214,7 @@ static struct __initdata omap_gpio_platform_data omap7xx_gpio5_config = { | |||
189 | .virtual_irq_start = IH_GPIO_BASE + 128, | 214 | .virtual_irq_start = IH_GPIO_BASE + 128, |
190 | .bank_type = METHOD_GPIO_7XX, | 215 | .bank_type = METHOD_GPIO_7XX, |
191 | .bank_width = 32, | 216 | .bank_width = 32, |
217 | .regs = &omap7xx_gpio_regs, | ||
192 | }; | 218 | }; |
193 | 219 | ||
194 | static struct platform_device omap7xx_gpio5 = { | 220 | static struct platform_device omap7xx_gpio5 = { |
@@ -218,6 +244,7 @@ static struct __initdata omap_gpio_platform_data omap7xx_gpio6_config = { | |||
218 | .virtual_irq_start = IH_GPIO_BASE + 160, | 244 | .virtual_irq_start = IH_GPIO_BASE + 160, |
219 | .bank_type = METHOD_GPIO_7XX, | 245 | .bank_type = METHOD_GPIO_7XX, |
220 | .bank_width = 32, | 246 | .bank_width = 32, |
247 | .regs = &omap7xx_gpio_regs, | ||
221 | }; | 248 | }; |
222 | 249 | ||
223 | static struct platform_device omap7xx_gpio6 = { | 250 | static struct platform_device omap7xx_gpio6 = { |