mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-04 16:15:11 +00:00
pinctrl: lantiq: Implement gpio_chip.to_irq
Some drivers require a way to translate GPIO pins to their IRQ numbers. This patch adds the .to_irq() gpiolib callback to the pinctrl-xway driver, which returns an IRQ mapping for a given GPIO pin. Signed-off-by: John Crispin <blogic@openwrt.org> Signed-off-by: Martin Schiller <mschiller@tdt.de> [Switched ->dev to ->parent] Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
This commit is contained in:
parent
b4818afeac
commit
3e640743fe
1 changed files with 17 additions and 0 deletions
|
@ -682,6 +682,22 @@ static int xway_gpio_dir_out(struct gpio_chip *chip, unsigned int pin, int val)
|
||||||
return 0;
|
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 = {
|
static struct gpio_chip xway_chip = {
|
||||||
.label = "gpio-xway",
|
.label = "gpio-xway",
|
||||||
.direction_input = xway_gpio_dir_in,
|
.direction_input = xway_gpio_dir_in,
|
||||||
|
@ -690,6 +706,7 @@ static struct gpio_chip xway_chip = {
|
||||||
.set = xway_gpio_set,
|
.set = xway_gpio_set,
|
||||||
.request = gpiochip_generic_request,
|
.request = gpiochip_generic_request,
|
||||||
.free = gpiochip_generic_free,
|
.free = gpiochip_generic_free,
|
||||||
|
.to_irq = xway_gpio_to_irq,
|
||||||
.base = -1,
|
.base = -1,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue