Messages in this thread Patch in this message | | | From | Peter Tyser <> | Subject | [PATCH v4 3/4] gpio: pca953x: Implement get_direction() hook | Date | Fri, 25 Feb 2011 15:26:20 -0600 |
| |
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 'unknown'.
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> Cc: Alan Cox <alan@lxorguk.ukuu.org.uk> Cc: Grant Likely <grant.likely@secretlab.ca> Signed-off-by: Peter Tyser <ptyser@xes-inc.com> --- Changes since v1: - None
Changes since v2: - Use GPIOF_DIR_* defines
Changes since v3: - None
drivers/gpio/pca953x.c | 10 ++++++++++ 1 files changed, 10 insertions(+), 0 deletions(-)
diff --git a/drivers/gpio/pca953x.c b/drivers/gpio/pca953x.c index b473429..b93611f 100644 --- a/drivers/gpio/pca953x.c +++ b/drivers/gpio/pca953x.c @@ -168,6 +168,15 @@ exit: return ret; } +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 chip->reg_direction & (1u << off) ? GPIOF_DIR_IN : GPIOF_DIR_OUT; +} + static int pca953x_gpio_get_value(struct gpio_chip *gc, unsigned off) { struct pca953x_chip *chip; @@ -221,6 +230,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
| |