Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3e640743 authored by John Crispin's avatar John Crispin Committed by Linus Walleij
Browse files

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: default avatarJohn Crispin <blogic@openwrt.org>
Signed-off-by: default avatarMartin Schiller <mschiller@tdt.de>
[Switched ->dev to ->parent]
Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parent b4818afe
Loading
Loading
Loading
Loading
+17 −0
Original line number Diff line number Diff line
@@ -682,6 +682,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,
@@ -690,6 +706,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,
};