From: Linus Walleij Date: Sat, 12 Nov 2016 13:36:17 +0000 (+0100) Subject: gpio: htc-egpio: add .get_direction() support X-Git-Tag: v4.14-rc1~1940^2~20 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=9298539c0472c1bd7516c62d444e561493e3f26c;p=platform%2Fkernel%2Flinux-rpi.git gpio: htc-egpio: add .get_direction() support This makes is possible to read out the current direction of a GPIO line on the HTC CPLD GPIO expander. Suggested-by: Russell King Signed-off-by: Linus Walleij --- diff --git a/drivers/gpio/gpio-htc-egpio.c b/drivers/gpio/gpio-htc-egpio.c index 5ab895b..27af528 100644 --- a/drivers/gpio/gpio-htc-egpio.c +++ b/drivers/gpio/gpio-htc-egpio.c @@ -225,6 +225,15 @@ static int egpio_direction_output(struct gpio_chip *chip, } } +static int egpio_get_direction(struct gpio_chip *chip, unsigned offset) +{ + struct egpio_chip *egpio; + + egpio = gpiochip_get_data(chip); + + return !test_bit(offset, &egpio->is_out); +} + static void egpio_write_cache(struct egpio_info *ei) { int i; @@ -327,6 +336,7 @@ static int __init egpio_probe(struct platform_device *pdev) chip->set = egpio_set; chip->direction_input = egpio_direction_input; chip->direction_output = egpio_direction_output; + chip->get_direction = egpio_get_direction; chip->base = pdata->chip[i].gpio_base; chip->ngpio = pdata->chip[i].num_gpios;