On Thu, Jun 25, 2015 at 11:39 AM, Geert Uytterhoeven <geert+renesas@xxxxxxxxx> wrote: > If the pin function controller (which can be a GPIO controller) is > instantiated before the interrupt controllers, due to the ordering in > the DTS, the irq domains for the interrupt controllers referenced by its > "interrupts-extended" property cannot be found yet: > > irq: no irq domain found for /interrupt-controller@e61c0000 ! > > As the sh-pfc driver accesses the platform device's resources directly, > it cannot find the (optional) IRQ resources, and thinks no interrupts > are available. This may lead to failures later, when GPIOs are used as > interupts: > > gpio-keys keyboard: Unable to claim irq 0; error -22 > gpio-keys: probe of keyboard failed with error -22 > > To fix this, add support for deferred probing to sh-pfc, by converting > the driver from direct platform device resource access to using the > platform_get_resource() and platform_get_irq() helpers. > > Note that while this fixes the root cause worked around by commit > e4ba0a9bddff3ba5 ("ARM: shmobile: r8a73a4: Move pfc node to work around > probe ordering bug"), I strongly recommend against reverting the > workaround now, as this would lead to lots of probe deferrals in drivers > relying on pinctrl. This may be reconsidered once the DT code starts > taking into account phandle dependencies during device instantation. > > Signed-off-by: Geert Uytterhoeven <geert+renesas@xxxxxxxxx> Patch applied with Laurent's ACK. Yours, Linus Walleij -- To unsubscribe from this list: send the line "unsubscribe linux-gpio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html