28 Apr, 2008

1 commit

  • Introduce a gpio_is_valid() predicate; use it in gpiolib.

    Signed-off-by: Guennadi Liakhovetski
    [ use inline function; follow the gpio_* naming convention;
    work without gpiolib; all programming interfaces need docs ]
    Signed-off-by: David Brownell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Guennadi Liakhovetski
     

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

    David Brownell
     

06 Feb, 2008

1 commit

  • Update Documentation/gpio.txt, primarily to include the new "gpiolib"
    infrastructure.

    Signed-off-by: David Brownell
    Cc: Jean Delvare
    Cc: Eric Miao
    Cc: Sam Ravnborg
    Cc: Haavard Skinnemoen
    Cc: Philipp Zabel
    Cc: Russell King
    Cc: Ben Gardner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Brownell
     

25 Jul, 2007

1 commit

  • Fix doc bug noted by Uwe Kleine-König: gpio_set_direction() is long
    gone, replaced by gpio_direction_input() and gpio_direction_output().

    Signed-off-by: David Brownell
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Brownell
     

20 Jul, 2007

1 commit

  • Clarify that drivers using the GPIO operations don't need to issue io
    barrier instructions themselves. Previously this wasn't clear, and at
    least one platform assumed otherwise (and would thus break various
    otherwise-portable drivers which don't issue barriers).

    Signed-off-by: David Brownell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Brownell
     

17 May, 2007

1 commit

  • Loosen gpio_{request,free}() and gpio_direction_{in,out}put() call context
    restrictions slightly, so a common idiom is no longer an error: board init
    code setting up spinlock-safe GPIOs before tasking is enabled.

    The issue was caught by some paranoid code with might_sleep() checks. The
    legacy platform-specific GPIO interfaces stick to spinlock-safe GPIOs, so this
    change reflects current implementations and won't break anything.

    Signed-off-by: David Brownell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Brownell
     

11 May, 2007

1 commit

  • Documentation/gpio.txt should mention the Kconfig GENERIC_GPIO flag, for
    platforms to declare when relevant. This should help minimize goofs like
    omitting it, or not depending on it when needed.

    Signed-off-by: David Brownell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Brownell
     

13 Apr, 2007

1 commit


17 Mar, 2007

1 commit

  • It's been pointed out that output GPIOs should have an initial value, to
    avoid signal glitching ... among other things, it can be some time before
    a driver is ready. This patch corrects that oversight, fixing

    - documentation
    - platforms supporting the GPIO interface
    - users of that call (just one for now, others are pending)

    There's only one user of this call for now since most platforms are still
    using non-generic GPIO setup code, which in most cases already couples the
    initial value with its "set output mode" request.

    Note that most platforms are clear about the hardware letting the output
    value be set before the pin direction is changed, but the s3c241x docs are
    vague on that topic ... so those chips might not avoid the glitches.

    Signed-off-by: David Brownell
    Acked-by: Andrew Victor
    Acked-by: Milan Svoboda
    Acked-by: Haavard Skinnemoen
    Cc: Russell King
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Brownell
     

17 Feb, 2007

1 commit


13 Feb, 2007

1 commit

  • This defines a simple and minimalist programming interface for GPIO APIs:

    - Documentation/gpio.txt ... describes things (read it)

    - include/asm-arm/gpio.h ... defines the ARM hook, which just punts
    to for any implementation

    - include/asm-generic/gpio.h ... implement "can sleep" variants as calling
    the normal ones, for systems that don't handle i2c expanders.

    The immediate need for such a cross-architecture API convention is to support
    drivers that work the same on AT91 ARM and AVR32 AP7000 chips, which embed many
    of the same controllers but have different CPUs. However, several other users
    have been reported, including a driver for a hardware watchdog chip and some
    handhelds.org multi-CPU button drivers.

    Signed-off-by: David Brownell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Brownell