[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1294343654-20354-2-git-send-email-ptyser@xes-inc.com>
Date: Thu, 6 Jan 2011 13:54:13 -0600
From: Peter Tyser <ptyser@...-inc.com>
To: linux-kernel@...r.kernel.org
Cc: Peter Tyser <ptyser@...-inc.com>, Alek Du <alek.du@...el.com>,
Samuel Ortiz <sameo@...ux.intel.com>,
David Brownell <dbrownell@...rs.sourceforge.net>,
Eric Miao <eric.y.miao@...il.com>,
Uwe Kleine-K?nig <u.kleine-koenig@...gutronix.de>,
Mark Brown <broonie@...nsource.wolfsonmicro.com>,
Joe Perches <joe@...ches.com>
Subject: [PATCH 2/3] gpio: pca953x: Implement get_direction() hook
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@...el.com>
Cc: Samuel Ortiz <sameo@...ux.intel.com>
Cc: David Brownell <dbrownell@...rs.sourceforge.net>
Cc: Eric Miao <eric.y.miao@...il.com>
Cc: Uwe Kleine-K?nig <u.kleine-koenig@...gutronix.de>
Cc: Mark Brown <broonie@...nsource.wolfsonmicro.com>
Cc: Joe Perches <joe@...ches.com>
Signed-off-by: Peter Tyser <ptyser@...-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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists