aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Brownell <david-b@pacbell.net>2007-03-05 03:30:18 -0500
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-03-05 10:57:51 -0500
commit0a938b9768d1fc0e12a884a6820a2e15df5a612c (patch)
tree472b3b06ab1171f22b2e507cd12cf9ad53fdf9e9
parent1ad7c311079412541bebaf1c8436d405cc8c6b2c (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/Kconfig9
-rw-r--r--arch/avr32/Kconfig4
-rw-r--r--drivers/input/keyboard/Kconfig10
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
21config SYS_SUPPORTS_APM_EMULATION 21config SYS_SUPPORTS_APM_EMULATION
22 bool 22 bool
23 23
24config GENERIC_GPIO
25 bool
26 default n
27
24config GENERIC_TIME 28config GENERIC_TIME
25 bool 29 bool
26 default n 30 default n
@@ -163,6 +167,7 @@ config ARCH_VERSATILE
163 167
164config ARCH_AT91 168config 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
331config ARCH_S3C2410 338config 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
355config ARCH_OMAP 363config 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
22config UID16 22config UID16
23 bool 23 bool
24 24
25config GENERIC_GPIO
26 bool
27 default y
28
25config GENERIC_HARDIRQS 29config 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
217config KEYBOARD_GPIO 217config 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.