aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-generic/gpio.h
diff options
context:
space:
mode:
authorMathias Nyman <mathias.nyman@linux.intel.com>2012-10-24 17:25:27 +0300
committerLinus Walleij <linus.walleij@linaro.org>2012-10-26 09:18:55 +0200
commit80b0a6029272247f19146bf8f88e5d4bba94cba5 (patch)
tree40cb6244bd1efb5e8e351952cf15e36d06801491 /include/asm-generic/gpio.h
parentGPIO: clps711x: Fix direction logic for PORTD (diff)
downloadlinux-dev-80b0a6029272247f19146bf8f88e5d4bba94cba5.tar.xz
linux-dev-80b0a6029272247f19146bf8f88e5d4bba94cba5.zip
gpiolib: add gpio get direction callback support
Add .get_direction callback to gpio_chip. This allows gpiolib to check the current direction of a gpio. Used to show the correct gpio direction in sysfs and debug entries. If callback is not set then gpiolib will work as previously; e.g. guessing everything is input until a direction is set. Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Diffstat (limited to 'include/asm-generic/gpio.h')
-rw-r--r--include/asm-generic/gpio.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/include/asm-generic/gpio.h b/include/asm-generic/gpio.h
index a9432fc6b8ba..eb70ca295971 100644
--- a/include/asm-generic/gpio.h
+++ b/include/asm-generic/gpio.h
@@ -56,6 +56,8 @@ struct device_node;
* enabling module power and clock; may sleep
* @free: optional hook for chip-specific deactivation, such as
* disabling module power and clock; may sleep
+ * @get_direction: returns direction for signal "offset", 0=out, 1=in,
+ * (same as GPIOF_DIR_XXX), or negative error
* @direction_input: configures signal "offset" as input, or returns error
* @get: returns value for signal "offset"; for output signals this
* returns either the value actually sensed, or zero
@@ -100,7 +102,8 @@ struct gpio_chip {
unsigned offset);
void (*free)(struct gpio_chip *chip,
unsigned offset);
-
+ int (*get_direction)(struct gpio_chip *chip,
+ unsigned offset);
int (*direction_input)(struct gpio_chip *chip,
unsigned offset);
int (*get)(struct gpio_chip *chip,