linux/drivers/pinctrl/bcm
Linus Walleij 85ae9e512f pinctrl: bcm2835: switch to GPIOLIB_IRQCHIP
It should be possible to use the GPIOLIB_IRQCHIP helper
library with the BCM2835 driver since it is a pretty straight
forward cascaded irqchip.

The only difference from other drivers is that the BCM2835
has several banks for a single gpiochip, and each bank has
a separate IRQ line. Instead of creating one gpiochip per
bank, a single gpiochip covers all banks GPIO lines. This
makes it necessary to resolve the bank ID in the IRQ
handler.

The GPIOLIB_IRQCHIP allows several IRQs to be cascaded off
the same gpiochip by calling gpiochip_set_chained_irqchip()
repeatedly, but we have been a bit short on examples
for how this should be handled in practice, so this is intended
as an example of how this can be achieved.

The old code did not model the chip as a chained interrupt
handler, but this patch also rectifies that situation.

Cc: Stephen Warren <swarren@wwwdotorg.org>
Tested-by: Stefan Wahren <stefan.wahren@i2se.com>
Tested-by: Eric Anholt <eric@anholt.net>
Acked-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2016-12-07 15:27:01 +01:00
..
Kconfig pinctrl: bcm2835: switch to GPIOLIB_IRQCHIP 2016-12-07 15:27:01 +01:00
Makefile pinctrl: nsp: add pinmux driver support for Broadcom NSP SoC 2016-06-29 10:06:00 +02:00
pinctrl-bcm281xx.c pinctrl: bcm281xx: constify pinctrl_ops and pinmux_ops structures 2016-09-07 22:41:30 +02:00
pinctrl-bcm2835.c pinctrl: bcm2835: switch to GPIOLIB_IRQCHIP 2016-12-07 15:27:01 +01:00
pinctrl-cygnus-mux.c pinctrl: cygnus-mux: Use devm_pinctrl_register() for pinctrl registration 2016-04-21 00:02:00 +02:00
pinctrl-iproc-gpio.c pinctrl: iproc: Add NSP and Stingray GPIO support 2016-07-22 16:47:51 +02:00
pinctrl-ns2-mux.c pinctrl: ns2: constify pinctrl_ops and pinmux_ops structures 2016-09-07 22:39:44 +02:00
pinctrl-nsp-gpio.c pinctrl: nsp-gpio: fix non-static functions 2016-06-08 14:09:49 +02:00
pinctrl-nsp-mux.c pinctrl: nsp: constify pinctrl_ops and pinmux_ops structures 2016-09-07 22:40:40 +02:00