16 Dec, 2009
1 commit
-
Drivers may use gpiolib sysfs as part of their public user space
interface. The GPIO number and polarity might change from board to
board. The gpio_export_link() call can be used to hide the GPIO number
from user space. Add support for also hiding the GPIO line polarity
changes from user space.Signed-off-by: Jani Nikula
Cc: David Brownell
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
23 Sep, 2009
1 commit
-
Commit 926b663ce8215ba448960e1ff6e58b67a2c3b99b (gpiolib: allow GPIOs to
be named) already provides naming on the chip level. This patch provides
more flexibility by allowing multiple names where ever in sysfs on a per
GPIO basis.Adapted from David Brownell's comments on a similar concept:
http://lkml.org/lkml/2009/4/20/203.[randy.dunlap@oracle.com: fix build for CONFIG_GENERIC_GPIO=n]
Signed-off-by: Jani Nikula
Acked-by: David Brownell
Cc: Daniel Silverstone
Signed-off-by: Randy Dunlap
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
17 Oct, 2008
1 commit
-
According to the documentation gpio_free should only be called from task
context only. To make this more explicit add a might sleep to all
implementations.This is the generic part which changes gpiolib and the fallback
implementation only.Signed-off-by: Uwe Kleine-König
Cc: David Brownell
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
26 Jul, 2008
1 commit
-
This adds a simple sysfs interface for GPIOs.
/sys/class/gpio
/export ... asks the kernel to export a GPIO to userspace
/unexport ... to return a GPIO to the kernel
/gpioN ... for each exported GPIO #N
/value ... always readable, writes fail for input GPIOs
/direction ... r/w as: in, out (default low); write high, low
/gpiochipN ... for each gpiochip; #N is its first GPIO
/base ... (r/o) same as N
/label ... (r/o) descriptive, not necessarily unique
/ngpio ... (r/o) number of GPIOs; numbered N .. N+(ngpio - 1)GPIOs claimed by kernel code may be exported by its owner using a new
gpio_export() call, which should be most useful for driver debugging.
Such exports may optionally be done without a "direction" attribute.Userspace may ask to take over a GPIO by writing to a sysfs control file,
helping to cope with incomplete board support or other "one-off"
requirements that don't merit full kernel support:echo 23 > /sys/class/gpio/export
... will gpio_request(23, "sysfs") and gpio_export(23);
use /sys/class/gpio/gpio-23/direction to (re)configure it,
when that GPIO can be used as both input and output.
echo 23 > /sys/class/gpio/unexport
... will gpio_free(23), when it was exported as aboveThe extra D-space footprint is a few hundred bytes, except for the sysfs
resources associated with each exported GPIO. The additional I-space
footprint is about two thirds of the current size of gpiolib (!). Since
no /dev node creation is involved, no "udev" support is needed.Related changes:
* This adds a device pointer to "struct gpio_chip". When GPIO
providers initialize that, sysfs gpio class devices become children of
that device instead of being "virtual" devices.* The (few) gpio_chip providers which have such a device node have
been updated.* Some gpio_chip drivers also needed to update their module "owner"
field ... for which missing kerneldoc was added.* Some gpio_chips don't support input GPIOs. Those GPIOs are now
flagged appropriately when the chip is registered.Based on previous patches, and discussion both on and off LKML.
A Documentation/ABI/testing/sysfs-gpio update is ready to submit once this
merges to mainline.[akpm@linux-foundation.org: a few maintenance build fixes]
Signed-off-by: David Brownell
Cc: Guennadi Liakhovetski
Cc: Greg KH
Cc: Kay Sievers
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
25 May, 2008
1 commit
-
This fixes various gpio-related build errors (mostly potential)
reported in part by Russell King and Uwe Kleine-König.Signed-off-by: David Brownell
Cc: Uwe Kleine-König
Cc: Russell King
Cc: Arnaud Patard
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
05 Mar, 2008
1 commit
-
Add a 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
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds