linux-gpio.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* interrupts properties and API usage with GPIO controllers/Device Tree
@ 2016-05-25 21:45 Florian Fainelli
  2016-05-27 14:23 ` Grygorii Strashko
  2016-05-31  8:48 ` Linus Walleij
  0 siblings, 2 replies; 5+ messages in thread
From: Florian Fainelli @ 2016-05-25 21:45 UTC (permalink / raw)
  To: linus.walleij, gregory.0xf0
  Cc: linux-gpio, linux-arm-kernel, devicetree, Rob Herring

Hi Linus, Gregory,

Recently came across an use case that looks like the following:

gpio0: gpio@deadbeef {
	compatible = "brcm,brcmstb-gpio";
	#interrrupt-cells = <2>;
	#gpio-cells = <2>;
	gpio-controller;
	interrupt-controller;
	...
};

test@cafeb00b {
	interrupt-parent = <&gpio0>;
	interrupts = <99 3>;
};

The driver consuming the test node's interrupts property tries to get
the interrupt by using platform_get_irq() or of_irq_parse_and_map() and
in the case of the gpio-brcmstb.c, this fails because the interrupt is
out of range  as flagged by kernel/irq/irqdomain.c::irq_domain_associate.

Unlike other GPIO provider drivers gpio-brcmstb.c, this driver registers
one gpiolib irqchip per each of its banks, and still uses the generic
map/unmap functions for its irq_domain_ops, so there is no way we can
provide a valid mapping outside of the gpio_to_irq() function
unfortunately since gpiochip_irq_map() does

So here are a few questions for either of you:

- is this a valid API and Device Tree use case: call
of_irq_parse_and_map on an "interrupts" property which has not been
acquired using the GPIO API and then gpio_to_irq? While gpio_to_irq()
works, are not we losing the second specifier in the interrupt cells
about what kind of interrupt type this is?

- would it be acceptable to export gpiochip_irq_map and
gpiochip_irq_export to make them accessible as helpers so we could just
wrap things a bit around or should I just open code the same things and
allow gpiochip_irqchip_add to be passed custom irq_domain_ops for instance?

Thanks!
-- 
Florian

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2016-05-31  9:51 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-05-25 21:45 interrupts properties and API usage with GPIO controllers/Device Tree Florian Fainelli
2016-05-27 14:23 ` Grygorii Strashko
2016-05-31  8:49   ` Linus Walleij
2016-05-31  9:51     ` Grygorii Strashko
2016-05-31  8:48 ` Linus Walleij

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).