diff options
author | Linus Walleij <linus.walleij@linaro.org> | 2016-04-01 13:21:27 (GMT) |
---|---|---|
committer | Linus Walleij <linus.walleij@linaro.org> | 2016-04-01 13:21:27 (GMT) |
commit | e1641c9d174ee21b4a75a64ab6df9063cf60ac4a (patch) | |
tree | 3ba0837c1059f695e7450db753e6937bb7a4dbbb /drivers/pinctrl | |
parent | a9b0b1fe9ecc6ca18ee710f23606532d6aafc05e (diff) | |
download | linux-e1641c9d174ee21b4a75a64ab6df9063cf60ac4a.tar.xz |
Revert "Revert "pinctrl: lantiq: Implement gpio_chip.to_irq""
This reverts commit 446f59acb70b70a425ea4105277a71eb615327cd.
Diffstat (limited to 'drivers/pinctrl')
-rw-r--r-- | drivers/pinctrl/pinctrl-xway.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/drivers/pinctrl/pinctrl-xway.c b/drivers/pinctrl/pinctrl-xway.c index 412c6b7..a13f2b6 100644 --- a/drivers/pinctrl/pinctrl-xway.c +++ b/drivers/pinctrl/pinctrl-xway.c @@ -1573,6 +1573,22 @@ static int xway_gpio_dir_out(struct gpio_chip *chip, unsigned int pin, int val) return 0; } +/* + * gpiolib gpiod_to_irq callback function. + * Returns the mapped IRQ (external interrupt) number for a given GPIO pin. + */ +static int xway_gpio_to_irq(struct gpio_chip *chip, unsigned offset) +{ + struct ltq_pinmux_info *info = dev_get_drvdata(chip->parent); + int i; + + for (i = 0; i < info->num_exin; i++) + if (info->exin[i] == offset) + return ltq_eiu_get_irq(i); + + return -1; +} + static struct gpio_chip xway_chip = { .label = "gpio-xway", .direction_input = xway_gpio_dir_in, @@ -1581,6 +1597,7 @@ static struct gpio_chip xway_chip = { .set = xway_gpio_set, .request = gpiochip_generic_request, .free = gpiochip_generic_free, + .to_irq = xway_gpio_to_irq, .base = -1, }; |