Revert "Revert "pinctrl: lantiq: Implement gpio_chip.to_irq""
authorLinus Walleij <linus.walleij@linaro.org>
Fri, 1 Apr 2016 13:21:27 +0000 (15:21 +0200)
committerLinus Walleij <linus.walleij@linaro.org>
Fri, 1 Apr 2016 13:21:27 +0000 (15:21 +0200)
This reverts commit 446f59acb70b70a425ea4105277a71eb615327cd.

drivers/pinctrl/pinctrl-xway.c

index 412c6b78140aa72918619f55743f8ac5666d6ffc..a13f2b6f6fc0b4572a61d889922498027accfd49 100644 (file)
@@ -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,
 };