lkml.org 
[lkml]   [2011]   [Jan]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 2/3] gpio: pca953x: Implement get_direction() hook
    Date
    Adding the get_direction() function allows the accurate GPIO pin
    direction data to be shown in sysfs. Previously, the direction was
    was always initialized to 'input', even if the pin was configured as an
    output.

    Cc: Alek Du <alek.du@intel.com>
    Cc: Samuel Ortiz <sameo@linux.intel.com>
    Cc: David Brownell <dbrownell@users.sourceforge.net>
    Cc: Eric Miao <eric.y.miao@gmail.com>
    Cc: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
    Cc: Mark Brown <broonie@opensource.wolfsonmicro.com>
    Cc: Joe Perches <joe@perches.com>
    Signed-off-by: Peter Tyser <ptyser@xes-inc.com>
    ---
    drivers/gpio/pca953x.c | 11 +++++++++++
    1 files changed, 11 insertions(+), 0 deletions(-)

    diff --git a/drivers/gpio/pca953x.c b/drivers/gpio/pca953x.c
    index 5018666..d291028 100644
    --- a/drivers/gpio/pca953x.c
    +++ b/drivers/gpio/pca953x.c
    @@ -159,6 +159,16 @@ static int pca953x_gpio_direction_output(struct gpio_chip *gc,
    return 0;
    }

    +static int pca953x_gpio_get_direction(struct gpio_chip *gc, unsigned off)
    +{
    + struct pca953x_chip *chip;
    +
    + chip = container_of(gc, struct pca953x_chip, gpio_chip);
    +
    + /* return 0 if IO pin is input, 1 if its an output */
    + return chip->reg_direction & (1u << off) ? 0 : 1;
    +}
    +
    static int pca953x_gpio_get_value(struct gpio_chip *gc, unsigned off)
    {
    struct pca953x_chip *chip;
    @@ -207,6 +217,7 @@ static void pca953x_setup_gpio(struct pca953x_chip *chip, int gpios)

    gc->direction_input = pca953x_gpio_direction_input;
    gc->direction_output = pca953x_gpio_direction_output;
    + gc->get_direction = pca953x_gpio_get_direction;
    gc->get = pca953x_gpio_get_value;
    gc->set = pca953x_gpio_set_value;
    gc->can_sleep = 1;
    --
    1.7.0.4


    \
     
     \ /
      Last update: 2011-01-06 21:03    [W:0.019 / U:180.472 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site