aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/gpio.txt
diff options
context:
space:
mode:
authorDavid Brownell <david-b@pacbell.net>2008-03-04 17:28:27 -0500
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2008-03-04 19:35:10 -0500
commit7560fa60fcdcdb0da662f6a9fad9064b554ef46c (patch)
tree2089d826b0b9230752f318b20884dca20b3847d5 /Documentation/gpio.txt
parent83c7c693ed3e61535ad6a097ad991a88aafc54b8 (diff)
gpio: <linux/gpio.h> and "no GPIO support here" stubs
Add a <linux/gpio.h> defining fail/warn stubs for GPIO calls on platforms that don't support the GPIO programming interface. That includes the arch-specific implementation glue otherwise. This facilitates a new model for GPIO usage: drivers that can use GPIOs if they're available, but don't require them. One example of such a driver is NAND driver for various FreeScale chips. On platforms update with GPIO support, they can be used instead of a worst-case delay to verify that the BUSY signal is off. (Also includes a couple minor unrelated doc updates.) Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'Documentation/gpio.txt')
-rw-r--r--Documentation/gpio.txt16
1 files changed, 12 insertions, 4 deletions
diff --git a/Documentation/gpio.txt b/Documentation/gpio.txt
index 8da724e2a0ff..54630095aa3c 100644
--- a/Documentation/gpio.txt
+++ b/Documentation/gpio.txt
@@ -2,6 +2,9 @@ GPIO Interfaces
2 2
3This provides an overview of GPIO access conventions on Linux. 3This provides an overview of GPIO access conventions on Linux.
4 4
5These calls use the gpio_* naming prefix. No other calls should use that
6prefix, or the related __gpio_* prefix.
7
5 8
6What is a GPIO? 9What is a GPIO?
7=============== 10===============
@@ -69,11 +72,13 @@ in this document, but drivers acting as clients to the GPIO interface must
69not care how it's implemented.) 72not care how it's implemented.)
70 73
71That said, if the convention is supported on their platform, drivers should 74That said, if the convention is supported on their platform, drivers should
72use it when possible. Platforms should declare GENERIC_GPIO support in 75use it when possible. Platforms must declare GENERIC_GPIO support in their
73Kconfig (boolean true), which multi-platform drivers can depend on when 76Kconfig (boolean true), and provide an <asm/gpio.h> file. Drivers that can't
74using the include file: 77work without standard GPIO calls should have Kconfig entries which depend
78on GENERIC_GPIO. The GPIO calls are available, either as "real code" or as
79optimized-away stubs, when drivers use the include file:
75 80
76 #include <asm/gpio.h> 81 #include <linux/gpio.h>
77 82
78If you stick to this convention then it'll be easier for other developers to 83If you stick to this convention then it'll be easier for other developers to
79see what your code is doing, and help maintain it. 84see what your code is doing, and help maintain it.
@@ -316,6 +321,9 @@ pulldowns integrated on some platforms. Not all platforms support them,
316or support them in the same way; and any given board might use external 321or support them in the same way; and any given board might use external
317pullups (or pulldowns) so that the on-chip ones should not be used. 322pullups (or pulldowns) so that the on-chip ones should not be used.
318(When a circuit needs 5 kOhm, on-chip 100 kOhm resistors won't do.) 323(When a circuit needs 5 kOhm, on-chip 100 kOhm resistors won't do.)
324Likewise drive strength (2 mA vs 20 mA) and voltage (1.8V vs 3.3V) is a
325platform-specific issue, as are models like (not) having a one-to-one
326correspondence between configurable pins and GPIOs.
319 327
320There are other system-specific mechanisms that are not specified here, 328There are other system-specific mechanisms that are not specified here,
321like the aforementioned options for input de-glitching and wire-OR output. 329like the aforementioned options for input de-glitching and wire-OR output.