kernel-ark/drivers
Daniel Glöckner ff77c352ae gpiolib: allow poll() on value
Many gpio chips allow to generate interrupts when the value of a pin
changes.  This patch gives usermode application the opportunity to make
use of this feature by calling poll(2) on the /sys/class/gpio/gpioN/value
sysfs file.  The edge to trigger can be set in the edge file in the same
directory.  Possible values are "none", "rising", "falling", and "both".

Using level triggers is not possible with current sysfs since nothing
changes the GPIO value (and the IRQ keeps triggering).  Edge triggering
will "just work".  Note that if there was an event between read() and
poll(), the poll() returns immediately.

Also note that this version only supports true GPIO interrupts.  Some
later patch might be able to synthesize this behavior by timer-driven
polling; some systems seem to need that.

[dbrownell@users.sourceforge.net: align ids to 16 bit ids; whitespace]
Signed-off-by: Daniel Glöckner <dg@emlix.com>
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>
2009-09-23 07:39:48 -07:00
..
accessibility
acpi x86: Trivial whitespace cleanups 2009-09-20 20:18:57 +02:00
amba Merge branches 'arm', 'at91', 'bcmring', 'ep93xx', 'mach-types', 'misc' and 'w90x900' into devel 2009-09-12 12:01:34 +01:00
ata trivial: fix comment typo in drivers/ata/pata_hpt37x.c 2009-09-21 15:15:53 +02:00
atm
auxdisplay
base mm: oom analysis: add shmem vmstat 2009-09-22 07:17:27 -07:00
block seq_file: constify seq_operations 2009-09-23 07:39:29 -07:00
bluetooth pcmcia: dtl1_cs: fix pcmcia_loop_config logic 2009-09-15 10:17:16 -07:00
cdrom const: make block_device_operations const 2009-09-22 07:17:25 -07:00
char BUILD_BUG_ON(): fix it and a couple of bogus uses of it 2009-09-23 07:39:29 -07:00
clocksource
connector proc connector: add event for process becoming session leader 2009-09-23 07:39:29 -07:00
cpufreq Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/davej/cpufreq 2009-09-18 09:16:57 -07:00
cpuidle cpuidle: menu governor: reduce latency on exit 2009-09-22 07:17:45 -07:00
crypto
dca
dio
dma at_hdmac: Rework suspend_late()/resume_early() 2009-09-14 20:27:00 +02:00
edac trivial: fix typo "for for" in multiple files 2009-09-21 15:14:54 +02:00
eisa
firewire driver model: constify attribute groups 2009-09-15 09:50:47 -07:00
firmware mm: don't use alloc_bootmem_low() where not strictly needed 2009-09-22 07:17:38 -07:00
gpio gpiolib: allow poll() on value 2009-09-23 07:39:48 -07:00
gpu Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2009-09-22 07:51:45 -07:00
hid Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid 2009-09-22 07:51:28 -07:00
hwmon spi: prefix modalias with "spi:" 2009-09-23 07:39:43 -07:00
i2c [PATCH] i2c-imx: make bus available early 2009-09-19 23:36:56 +01:00
ide Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2009-09-22 07:51:45 -07:00
idle
ieee1394
ieee802154
infiniband walk system ram range 2009-09-23 07:39:41 -07:00
input spi: prefix modalias with "spi:" 2009-09-23 07:39:43 -07:00
isdn seq_file: constify seq_operations 2009-09-23 07:39:29 -07:00
leds spi: prefix modalias with "spi:" 2009-09-23 07:39:43 -07:00
lguest trivial: fix typo "to to" in multiple files 2009-09-21 15:14:55 +02:00
macintosh trivial: remove unnecessary semicolons 2009-09-21 15:14:58 +02:00
mca
md Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2009-09-22 07:51:45 -07:00
media Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2009-09-22 07:51:45 -07:00
memstick const: make block_device_operations const 2009-09-22 07:17:25 -07:00
message Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2009-09-22 07:51:45 -07:00
mfd mfd/gpio: add a GPIO interface to the UCB1400 MFD chip driver via gpiolib 2009-09-23 07:39:48 -07:00
misc spi: prefix modalias with "spi:" 2009-09-23 07:39:43 -07:00
mmc spi: prefix modalias with "spi:" 2009-09-23 07:39:43 -07:00
mtd spi: prefix modalias with "spi:" 2009-09-23 07:39:43 -07:00
net spi: prefix modalias with "spi:" 2009-09-23 07:39:43 -07:00
nubus
of of: remove "stm,m25p40" alias 2009-09-23 07:39:43 -07:00
oprofile const: mark remaining super_operations const 2009-09-22 07:17:24 -07:00
parisc mm: replace various uses of num_physpages by totalram_pages 2009-09-22 07:17:38 -07:00
parport
pci Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6 2009-09-16 07:49:54 -07:00
pcmcia pcmcia: cleanup/fixup patch for sa1100_jornada_pcmcia driver 2009-09-22 07:17:42 -07:00
platform hp-wmi: Switch driver to dev_pm_ops 2009-09-14 20:26:59 +02:00
pnp pnp: add a shutdown method to pnp drivers 2009-09-22 07:17:49 -07:00
power
pps
ps3 powerpc/ps3: Workaround for flash memory I/O error 2009-09-11 11:28:00 +10:00
rapidio
regulator regulator: Voltage count for AB3100 2009-09-17 15:48:24 +02:00
rtc rtc: add boot_timesource sysfs attribute 2009-09-23 07:39:46 -07:00
s390 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2009-09-22 07:51:45 -07:00
sbus const: make block_device_operations const 2009-09-22 07:17:25 -07:00
scsi seq_file: constify seq_operations 2009-09-23 07:39:29 -07:00
serial spi: prefix modalias with "spi:" 2009-09-23 07:39:43 -07:00
sh
sn
spi spi: handle TX-only/RX-only 2009-09-23 07:39:44 -07:00
ssb ssb/sdio: fix printk format warnings 2009-09-16 16:21:00 -04:00
staging spi: prefix modalias with "spi:" 2009-09-23 07:39:43 -07:00
tc
telephony
thermal
uio Merge git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6 2009-09-18 09:43:09 -07:00
usb Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2009-09-22 07:51:45 -07:00
uwb trivial: remove unnecessary semicolons 2009-09-21 15:14:58 +02:00
video spi: prefix modalias with "spi:" 2009-09-23 07:39:43 -07:00
virtio
vlynq vlynq: includecheck fix: drivers/vlynq/vlynq.c 2009-09-23 07:39:30 -07:00
w1
watchdog [WATCHDOG] sizeof cleanup 2009-09-18 08:39:37 +00:00
xen Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2009-09-22 07:51:45 -07:00
zorro
Kconfig
Makefile