Re: How to create IRQ mappings in a GPIO driver that doesn't control its IRQ domain ?

From: Laurent Pinchart
Date: Thu Jul 25 2013 - 09:21:54 EST


Hi Mark,

On Thursday 25 July 2013 14:15:56 Mark Brown wrote:
> On Thu, Jul 25, 2013 at 11:45:33AM +0200, Laurent Pinchart wrote:
> > The two devices are independent, so there's no real parent/child
> > relationship. However, as Grant proposed, I could list all the interrupts
> > associated with GPIOs in the GPIO controller DT node. I would then just
> > call irq_of_parse_and_map() in the .to_irq() handler to magically
> > translate the GPIO number to a mapped IRQ number.
> >
> > The number of interrupts can be pretty high (up to 58 in the worst case so
> > far), so an alternative would be to specify the interrupt-parent only, and
> > call irq_create_of_mapping() directly. What solution would you prefer ?
>
> Are the interrupts in a contiguous block in the controller so you can just
> pass around the controller and a base number?

In two of the three SoCs I need to fix they are. I've just realized that in
the last one the interrupts are in two contiguous blocks in two different
parents. I will thus need at least a list of <parent-phandle base count>. Our
standard interrupt bindings don't seem to support multiple parents, is that
something that we want to fix or should I go for custom bindings ?

--
Regards,

Laurent Pinchart

Attachment: signature.asc
Description: This is a digitally signed message part.