[PATCH v3] RFC: pinctrl: bcm2835: switch to GPIOLIB_IRQCHIP

Linus Walleij linus.walleij at linaro.org
Thu Nov 24 07:16:13 PST 2016


On Mon, Nov 14, 2016 at 6:52 PM, Linus Walleij <linus.walleij at linaro.org> wrote:

> 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 at wwwdotorg.org>
> Cc: Stefan Wahren <stefan.wahren at i2se.com>
> Cc: Eric Anholt <eric at anholt.net>
> Signed-off-by: Linus Walleij <linus.walleij at linaro.org>
> ---
> ChangeLog v2->v3:
> - Rebase on top of the two new patches from the vendor tree.
> ChangeLog v1->v2:
> - Forgot to convert the driver to chained IRQ handler. Now fixed.
>
> Rpi folks: I have no clue if this works or not, but would be happy
> if you could test it to see if IRQs fire as expected and provide
> some feedback.

Any testers?

I'm getting tempted to just apply it to get test coverage, at the
cost of having to revert it if it just explodes...

Yours,
Linus Walleij



More information about the linux-rpi-kernel mailing list