linux/include
David Brownell d2876d08d8 gpiolib: add gpio provider infrastructure
Provide new implementation infrastructure that platforms may choose to use
when implementing the GPIO programming interface.  Platforms can update their
GPIO support to use this.  In many cases the incremental cost to access a
non-inlined GPIO should be less than a dozen instructions, with the memory
cost being about a page (total) of extra data and code.  The upside is:

  * Providing two features which were "want to have (but OK to defer)" when
    GPIO interfaces were first discussed in November 2006:

    -	A "struct gpio_chip" to plug in GPIOs that aren't directly supported
	by SOC platforms, but come from FPGAs or other multifunction devices
	using conventional device registers (like UCB-1x00 or SM501 GPIOs,
	and southbridges in PCs with more open specs than usual).

    -	Full support for message-based GPIO expanders, where registers are
	accessed through sleeping I/O calls.  Previous support for these
	"cansleep" calls was just stubs.  (One example: the widely used
	pcf8574 I2C chips, with 8 GPIOs each.)

  * Including a non-stub implementation of the gpio_{request,free}() calls,
    making those calls much more useful.  The diagnostic labels are also
    recorded given DEBUG_FS, so /sys/kernel/debug/gpio can show a snapshot
    of all GPIOs known to this infrastructure.

The driver programming interfaces introduced in 2.6.21 do not change at all;
this infrastructure is entirely below those covers.

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Cc: Sam Ravnborg <sam@ravnborg.org>
Cc: Jean Delvare <khali@linux-fr.org>
Cc: Eric Miao <eric.miao@marvell.com>
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>
2008-02-05 09:44:12 -08:00
..
acpi include/acpi/: Spelling fixes 2008-02-03 17:07:16 +02:00
asm-alpha iommu sg merging: alpha: make pci_iommu respect the segment size limits 2008-02-05 09:44:10 -08:00
asm-arm Merge branch 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm 2008-02-04 15:29:53 -08:00
asm-avr32 [NET]: Introducing socket mark socket option. 2008-01-31 19:27:19 -08:00
asm-blackfin [NET]: Introducing socket mark socket option. 2008-01-31 19:27:19 -08:00
asm-cris [NET]: Introducing socket mark socket option. 2008-01-31 19:27:19 -08:00
asm-frv include/asm-frv/: Spelling fixes 2008-02-03 17:34:55 +02:00
asm-generic gpiolib: add gpio provider infrastructure 2008-02-05 09:44:12 -08:00
asm-h8300 [NET]: Introducing socket mark socket option. 2008-01-31 19:27:19 -08:00
asm-ia64 asm-*/compat.h: fix typo in comment 2008-02-03 16:32:51 +02:00
asm-m32r m32r: remove dead config symbols from M32R code 2008-02-05 09:44:08 -08:00
asm-m68k [NET]: Introducing socket mark socket option. 2008-01-31 19:27:19 -08:00
asm-m68knommu include/asm-m68knommu/: Spelling fixes 2008-02-03 17:38:04 +02:00
asm-mips include/asm-mips/: Spelling fixes 2008-02-03 16:57:20 +02:00
asm-parisc include/asm-parisc/: Spelling fixes 2008-02-03 17:00:11 +02:00
asm-powerpc iommu sg: powerpc: convert iommu to use the IOMMU helper 2008-02-05 09:44:11 -08:00
asm-ppc
asm-s390 asm-*/compat.h: fix typo in comment 2008-02-03 16:32:51 +02:00
asm-sh [NET]: Introducing socket mark socket option. 2008-01-31 19:27:19 -08:00
asm-sparc [NET]: Introducing socket mark socket option. 2008-01-31 19:27:19 -08:00
asm-sparc64 asm-*/compat.h: fix typo in comment 2008-02-03 16:32:51 +02:00
asm-um git-x86: unbreak UML 2008-01-30 13:32:38 +01:00
asm-v850 [NET]: Introducing socket mark socket option. 2008-01-31 19:27:19 -08:00
asm-x86 iommu sg: kill __clear_bit_string and find_next_zero_string 2008-02-05 09:44:11 -08:00
asm-xtensa [NET]: Introducing socket mark socket option. 2008-01-31 19:27:19 -08:00
crypto
keys
linux iommu sg merging: PCI: add dma segment boundary support 2008-02-05 09:44:12 -08:00
math-emu
media include/media/: Spelling fixes 2008-02-03 17:19:47 +02:00
mtd
net [IPV6]: Reorg struct ifmcaddr6 to save some bytes 2008-02-03 04:28:54 -08:00
pcmcia pcmcia: replace kio_addr_t with unsigned int everywhere 2008-02-05 09:44:08 -08:00
rdma
rxrpc
scsi include/scsi/: Spelling fixes 2008-02-03 17:47:00 +02:00
sound [ALSA] version 1.0.16rc2 2008-01-31 17:40:18 +01:00
video
xen x86: page.h: make pte_t a union to always include 2008-01-30 13:32:57 +01:00
Kbuild