From d7fc449a2ea8686f73403922f045b6d39baab27f Mon Sep 17 00:00:00 2001 From: Sebastian Hesselbarth Date: Sat, 9 Nov 2013 14:24:09 +0100 Subject: [PATCH] gpio: dw: add get_direction callback This adds a callback function to read the current state of a GPIOs in/out direction. Signed-off-by: Sebastian Hesselbarth Signed-off-by: Sascha Hauer --- drivers/gpio/gpio-dw.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/gpio/gpio-dw.c b/drivers/gpio/gpio-dw.c index 791488a19..65770422a 100644 --- a/drivers/gpio/gpio-dw.c +++ b/drivers/gpio/gpio-dw.c @@ -90,9 +90,18 @@ static int dw_gpio_direction_output(struct gpio_chip *gc, return 0; } +static int dw_gpio_get_direction(struct gpio_chip *gc, unsigned offset) +{ + struct dw_gpio_instance *chip = to_dw_gpio(gc); + + return (readl(chip->regs + DW_GPIO_DDR) & (1 << offset)) ? + GPIO_DIR_OUT : GPIO_DIR_IN; +} + static struct gpio_ops imx_gpio_ops = { .direction_input = dw_gpio_direction_input, .direction_output = dw_gpio_direction_output, + .get_direction = dw_gpio_get_direction, .get = dw_gpio_get, .set = dw_gpio_set, };