aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpio/Kconfig
diff options
context:
space:
mode:
authorDavid Brownell <dbrownell@users.sourceforge.net>2008-02-05 01:28:24 -0500
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2008-02-05 12:44:13 -0500
commit15fae37d9f5f21571a9618d8353164b6ddfea6f6 (patch)
tree13b4fb5479cf3a9522c6673cc6ccae20b6658e55 /drivers/gpio/Kconfig
parent1c44f5f16fee880b294f8068354bfb9dddf1349b (diff)
gpiolib: pcf857x i2c gpio expander support
This is a new-style I2C driver for most common 8 and 16 bit I2C based "quasi-bidirectional" GPIO expanders: pcf8574 or pcf8575, and several compatible models (mostly faster, supporting I2C at up to 1 MHz). The driver exposes the GPIO signals using the platform-neutral GPIO programming interface, so they are easily accessed by other kernel code. The lack of such a flexible kernel API has been a big factor in the proliferation of board-specific drivers for these chips... stuff that rarely makes it upstream since it's so ugly. This driver will let such boards use standard calls. Since it's a new-style driver, these devices must be configured as part of board-specific init. That eliminates the need for error-prone manual configuration of module parameters, and makes compatibility with legacy drivers (pcf8574.c, pc8575.c) for these chips easier (there's a clear either/or disjunction). Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Acked-by: Jean Delvare <khali@linux-fr.org> Cc: Eric Miao <eric.miao@marvell.com> Cc: Sam Ravnborg <sam@ravnborg.org> Cc: Haavard Skinnemoen <hskinnemoen@atmel.com> Cc: Philipp Zabel <philipp.zabel@gmail.com> Cc: Russell King <rmk@arm.linux.org.uk> Cc: Ben Gardner <bgardner@wabtec.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/gpio/Kconfig')
-rw-r--r--drivers/gpio/Kconfig23
1 files changed, 23 insertions, 0 deletions
diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig
index 560687c4667e..36d5d6aefc0e 100644
--- a/drivers/gpio/Kconfig
+++ b/drivers/gpio/Kconfig
@@ -27,6 +27,29 @@ config DEBUG_GPIO
27 27
28comment "I2C GPIO expanders:" 28comment "I2C GPIO expanders:"
29 29
30config GPIO_PCF857X
31 tristate "PCF857x, PCA857x, and PCA967x I2C GPIO expanders"
32 depends on I2C
33 help
34 Say yes here to provide access to most "quasi-bidirectional" I2C
35 GPIO expanders used for additional digital outputs or inputs.
36 Most of these parts are from NXP, though TI is a second source for
37 some of them. Compatible models include:
38
39 8 bits: pcf8574, pcf8574a, pca8574, pca8574a,
40 pca9670, pca9672, pca9674, pca9674a
41
42 16 bits: pcf8575, pcf8575c, pca8575,
43 pca9671, pca9673, pca9675
44
45 Your board setup code will need to declare the expanders in
46 use, and assign numbers to the GPIOs they expose. Those GPIOs
47 can then be used from drivers and other kernel code, just like
48 other GPIOs, but only accessible from task contexts.
49
50 This driver provides an in-kernel interface to those GPIOs using
51 platform-neutral GPIO calls.
52
30comment "SPI GPIO expanders:" 53comment "SPI GPIO expanders:"
31 54
32endmenu 55endmenu