[PATCH 3/5] gpio/omap: Add DT support to GPIO driver
Stephen Warren
swarren at wwwdotorg.org
Mon Apr 15 12:58:43 EDT 2013
On 04/14/2013 02:53 PM, Linus Walleij wrote:
> On Sun, Apr 14, 2013 at 3:35 AM, Javier Martinez Canillas
> <martinez.javier at gmail.com> wrote:
>
>> Is the following inlined patch [1] what you were thinking that would
>> be the right approach?
>
> This looks sort of OK, but I'm still struggling with the question of
> what we could do to help other implementations facing the same issue.
>
> This is a pretty hard design pattern to properly replicate in every such
> driver is it not?
Well, instead of adding .request_irq() to the irqchip, and then making
each driver call gpio_request() from the implementation, perhaps you
could add a .irq_to_gpio() to the irqchip, have the IRQ core call that,
and if it gets back a non-error response, the IRQ core could call
gpio_request(). That means that the change to each GPIO+IRQ driver is
simply to implement a standalone data transformation function
.irq_to_gpio().
Now, this does re-introduce irq_to_gpio() in some way, but with the
following advantages:
1) The implementation is per-controller, not a single global function,
so isn't introducing any kind of centralized mapping scheme again.
2) This irq-chip-specific .irq_to_gpio() would only be implemented for
IRQ+GPIO chips that actually have a 1:1 mapping between GPIOs and IRQs.
Its potential existence doesn't imply that all IRQ chips need implement
this; it would be very specifically be for this one particular case.
So, I think it's reasonable to introduce this.
More information about the linux-arm-kernel
mailing list