On Wed, Nov 23, 2016 at 02:30:45PM +0100, Linus Walleij wrote:
On Tue, Nov 22, 2016 at 6:55 PM, Thierry Reding
[off-list ref] wrote:
quoted
From: Thierry Reding <redacted>
Tegra186 has two GPIO controllers that are largely register compatible
between one another but are completely different from the controller
found on earlier generations.
Signed-off-by: Thierry Reding <redacted>
I would prefer if you could try to convert this driver to use
CONFIG_GPIOLIB_IRQCHIP and install a chained interrupt
handler with gpiochip_irqchio_add() + gpiolib_set_chained_irqchip().
It would save us so much trouble and so much complicated
code to maintain for this custom irqdomain.
I suggest you to look into the mechanisms mentioned in my
previous mail for how to poke holes in the single linear
irqdomain used by this mechanism.
As it seems, you only have one parent interrupt with all
these IRQs cascading off it as far as I can tell.
Like I said in other email, I don't think this will work because the
GPIOLIB_IRQCHIP support seems to be limited to cases where a single
parent interrupt is used. We could possibly live with a single IRQ
handler and data, but we definitely need to request multiple IRQs if
we want to be able to use all GPIOs as interrupts.
Thierry