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

Eric Anholt eric at anholt.net
Mon Nov 28 12:18:05 PST 2016

Stefan Wahren <stefan.wahren at i2se.com> writes:

> Hi Linus,
>> Linus Walleij <linus.walleij at linaro.org> hat am 24. November 2016 um 16:16
>> geschrieben:
>> 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...
> i made a simple boot + reboot test on my RPI 1 Model B without any issues.
> Unfortunately i don't have any additional hardware with a GPIO interrupt.
> In the case this is sufficient you can have my:
> Tested-by: Stefan Wahren <stefan.wahren at i2se.com>

Given that this is mostly about changing how IRQs are handled, it would
be really nice to actually test that.  I've forwarded the patch on to
Phil in the hopes he can test it.  Alternatively, we could make HDMI use
the GPIO line as an interrupt and turn off HPD polling and see if that
works before and after.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 832 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-rpi-kernel/attachments/20161128/0c2e6d17/attachment.sig>

More information about the linux-rpi-kernel mailing list