This adds a callback function to read the current state of a GPIOs in/out direction. Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@xxxxxxxxx> --- Cc: barebox@xxxxxxxxxxxxxxxxxxx --- 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 791488a..6577042 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, }; -- 1.8.4.rc3 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox