diff options
author | David Brownell <david-b@pacbell.net> | 2007-03-05 03:30:18 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-03-05 10:57:51 -0500 |
commit | 0a938b9768d1fc0e12a884a6820a2e15df5a612c (patch) | |
tree | 472b3b06ab1171f22b2e507cd12cf9ad53fdf9e9 | |
parent | 1ad7c311079412541bebaf1c8436d405cc8c6b2c (diff) |
[PATCH] add CONFIG_GENERIC_GPIO
Most drivers using GPIOs already know they are running on a system that
supports the generic GPIO calls, because of other platform dependencies.
But the generic GPIO-based LED and input button drivers can't know that.
So this patch adds a Kconfig hook, GENERIC_GPIO, to mark the platforms
where <asm/gpio.h> will do the right thing. Currently that's a bunch of
ARMs, and AVR32; more are on the way.
It also fixes a dependency bug for the gpio button input driver; it was
wrong to start with, now it covers all platforms with GENERIC_GPIO.
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Acked-by: Richard Purdie <rpurdie@rpsys.net>
Cc: Arnaud Patard <arnaud.patard@rtp-net.org>
Cc: <raph@8d.com>
Cc: <msvoboda@ra.rockwell.com>
Cc: pHilipp Zabel <philipp.zabel@gmail.com>
Cc: Haavard Skinnemoen <hskinnemoen@atmel.com>
Cc: Dmitry Torokhov <dtor@mail.ru>
Cc: Russell King <rmk@arm.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r-- | arch/arm/Kconfig | 9 | ||||
-rw-r--r-- | arch/avr32/Kconfig | 4 | ||||
-rw-r--r-- | drivers/input/keyboard/Kconfig | 10 |
3 files changed, 19 insertions, 4 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index ac2ffdcfbbb4..e7baca29f3fb 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig | |||
@@ -21,6 +21,10 @@ config ARM | |||
21 | config SYS_SUPPORTS_APM_EMULATION | 21 | config SYS_SUPPORTS_APM_EMULATION |
22 | bool | 22 | bool |
23 | 23 | ||
24 | config GENERIC_GPIO | ||
25 | bool | ||
26 | default n | ||
27 | |||
24 | config GENERIC_TIME | 28 | config GENERIC_TIME |
25 | bool | 29 | bool |
26 | default n | 30 | default n |
@@ -163,6 +167,7 @@ config ARCH_VERSATILE | |||
163 | 167 | ||
164 | config ARCH_AT91 | 168 | config ARCH_AT91 |
165 | bool "Atmel AT91" | 169 | bool "Atmel AT91" |
170 | select GENERIC_GPIO | ||
166 | help | 171 | help |
167 | This enables support for systems based on the Atmel AT91RM9200 | 172 | This enables support for systems based on the Atmel AT91RM9200 |
168 | and AT91SAM9xxx processors. | 173 | and AT91SAM9xxx processors. |
@@ -304,6 +309,7 @@ config ARCH_PXA | |||
304 | bool "PXA2xx-based" | 309 | bool "PXA2xx-based" |
305 | depends on MMU | 310 | depends on MMU |
306 | select ARCH_MTD_XIP | 311 | select ARCH_MTD_XIP |
312 | select GENERIC_GPIO | ||
307 | select GENERIC_TIME | 313 | select GENERIC_TIME |
308 | help | 314 | help |
309 | Support for Intel's PXA2XX processor line. | 315 | Support for Intel's PXA2XX processor line. |
@@ -325,11 +331,13 @@ config ARCH_SA1100 | |||
325 | select ISA | 331 | select ISA |
326 | select ARCH_DISCONTIGMEM_ENABLE | 332 | select ARCH_DISCONTIGMEM_ENABLE |
327 | select ARCH_MTD_XIP | 333 | select ARCH_MTD_XIP |
334 | select GENERIC_GPIO | ||
328 | help | 335 | help |
329 | Support for StrongARM 11x0 based boards. | 336 | Support for StrongARM 11x0 based boards. |
330 | 337 | ||
331 | config ARCH_S3C2410 | 338 | config ARCH_S3C2410 |
332 | bool "Samsung S3C2410, S3C2412, S3C2413, S3C2440, S3C2442, S3C2443" | 339 | bool "Samsung S3C2410, S3C2412, S3C2413, S3C2440, S3C2442, S3C2443" |
340 | select GENERIC_GPIO | ||
333 | help | 341 | help |
334 | Samsung S3C2410X CPU based systems, such as the Simtec Electronics | 342 | Samsung S3C2410X CPU based systems, such as the Simtec Electronics |
335 | BAST (<http://www.simtec.co.uk/products/EB110ITX/>), the IPAQ 1940 or | 343 | BAST (<http://www.simtec.co.uk/products/EB110ITX/>), the IPAQ 1940 or |
@@ -354,6 +362,7 @@ config ARCH_LH7A40X | |||
354 | 362 | ||
355 | config ARCH_OMAP | 363 | config ARCH_OMAP |
356 | bool "TI OMAP" | 364 | bool "TI OMAP" |
365 | select GENERIC_GPIO | ||
357 | help | 366 | help |
358 | Support for TI's OMAP platform (OMAP1 and OMAP2). | 367 | Support for TI's OMAP platform (OMAP1 and OMAP2). |
359 | 368 | ||
diff --git a/arch/avr32/Kconfig b/arch/avr32/Kconfig index bb059a4e1df9..ce4013aee59b 100644 --- a/arch/avr32/Kconfig +++ b/arch/avr32/Kconfig | |||
@@ -22,6 +22,10 @@ config AVR32 | |||
22 | config UID16 | 22 | config UID16 |
23 | bool | 23 | bool |
24 | 24 | ||
25 | config GENERIC_GPIO | ||
26 | bool | ||
27 | default y | ||
28 | |||
25 | config GENERIC_HARDIRQS | 29 | config GENERIC_HARDIRQS |
26 | bool | 30 | bool |
27 | default y | 31 | default y |
diff --git a/drivers/input/keyboard/Kconfig b/drivers/input/keyboard/Kconfig index 64509689fa65..f17e9c7d4b36 100644 --- a/drivers/input/keyboard/Kconfig +++ b/drivers/input/keyboard/Kconfig | |||
@@ -215,14 +215,16 @@ config KEYBOARD_AAED2000 | |||
215 | module will be called aaed2000_kbd. | 215 | module will be called aaed2000_kbd. |
216 | 216 | ||
217 | config KEYBOARD_GPIO | 217 | config KEYBOARD_GPIO |
218 | tristate "Buttons on CPU GPIOs (PXA)" | 218 | tristate "GPIO Buttons" |
219 | depends on (ARCH_SA1100 || ARCH_PXA || ARCH_S3C2410) | 219 | depends on GENERIC_GPIO |
220 | help | 220 | help |
221 | This driver implements support for buttons connected | 221 | This driver implements support for buttons connected |
222 | directly to GPIO pins of SA1100, PXA or S3C24xx CPUs. | 222 | to GPIO pins of various CPUs (and some other chips). |
223 | 223 | ||
224 | Say Y here if your device has buttons connected | 224 | Say Y here if your device has buttons connected |
225 | directly to GPIO pins of the CPU. | 225 | directly to such GPIO pins. Your board-specific |
226 | setup logic must also provide a platform device, | ||
227 | with configuration data saying which GPIOs are used. | ||
226 | 228 | ||
227 | To compile this driver as a module, choose M here: the | 229 | To compile this driver as a module, choose M here: the |
228 | module will be called gpio-keys. | 230 | module will be called gpio-keys. |