2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-12-22 20:23:57 +08:00
linux-next/drivers/pinctrl/sh-pfc
Geert Uytterhoeven c7977ec4a3 pinctrl: sh-pfc: Convert to platform_get_*()
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
e4ba0a9bdd ("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@glider.be>
Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2015-07-16 11:37:11 +02:00
..
core.c pinctrl: sh-pfc: Convert to platform_get_*() 2015-07-16 11:37:11 +02:00
core.h pinctrl: sh-pfc: add R8A7794 PFC support 2015-06-16 10:53:20 +02:00
gpio.c pinctrl: sh-pfc: Use u32 to store register addresses 2015-03-18 02:15:40 +01:00
Kconfig pinctrl: sh-pfc: add R8A7794 PFC support 2015-06-16 10:53:20 +02:00
Makefile pinctrl: sh-pfc: add R8A7794 PFC support 2015-06-16 10:53:20 +02:00
pfc-emev2.c sh-pfc: emev2 - Fix mangled author name 2015-02-05 14:51:34 +01:00
pfc-r8a73a4.c pinctrl: sh-pfc: r8a73a4: Remove obsolete multi-platform check 2015-05-12 13:17:44 +02:00
pfc-r8a7740.c pinctrl: sh-pfc: r8a7740: Fix typo SCIFAB in comment 2015-05-12 13:17:42 +02:00
pfc-r8a7778.c pinctrl: sh-pfc: ARM: Constify pins and cfg_regs arrays 2013-12-20 12:28:40 +01:00
pfc-r8a7779.c pinctrl: sh-pfc: ARM: Constify pins and cfg_regs arrays 2013-12-20 12:28:40 +01:00
pfc-r8a7790.c sh-pfc: r8a7790: remove non-existing GPIO pins 2015-07-16 09:39:01 +02:00
pfc-r8a7791.c sh-pfc: r8a7791: remove non-existing GPIO pins 2015-07-16 09:39:02 +02:00
pfc-r8a7794.c pinctrl: sh-pfc: r8a7794: add SDHI pin groups 2015-06-16 10:55:09 +02:00
pfc-sh73a0.c pinctrl: sh-pfc: sh73a0: Remove unnecessary SoC data allocation 2014-09-23 17:11:22 +02:00
pfc-sh7203.c pinctrl: sh-pfc: sh: Constify pins and cfg_regs arrays 2013-12-20 12:27:43 +01:00
pfc-sh7264.c pinctrl: sh-pfc: sh: Constify pins and cfg_regs arrays 2013-12-20 12:27:43 +01:00
pfc-sh7269.c pinctrl: sh-pfc: sh: Constify pins and cfg_regs arrays 2013-12-20 12:27:43 +01:00
pfc-sh7720.c pinctrl: sh-pfc: sh: Constify pins and cfg_regs arrays 2013-12-20 12:27:43 +01:00
pfc-sh7722.c pinctrl: sh-pfc: sh: Constify pins and cfg_regs arrays 2013-12-20 12:27:43 +01:00
pfc-sh7723.c pinctrl: sh-pfc: sh: Constify pins and cfg_regs arrays 2013-12-20 12:27:43 +01:00
pfc-sh7724.c pinctrl: sh-pfc: sh: Constify pins and cfg_regs arrays 2013-12-20 12:27:43 +01:00
pfc-sh7734.c pinctrl: sh-pfc: sh: Constify pins and cfg_regs arrays 2013-12-20 12:27:43 +01:00
pfc-sh7757.c pinctrl: sh-pfc: sh: Constify pins and cfg_regs arrays 2013-12-20 12:27:43 +01:00
pfc-sh7785.c pinctrl: sh-pfc: sh: Constify pins and cfg_regs arrays 2013-12-20 12:27:43 +01:00
pfc-sh7786.c pinctrl: sh-pfc: sh: Constify pins and cfg_regs arrays 2013-12-20 12:27:43 +01:00
pfc-shx3.c pinctrl: sh-pfc: sh: Constify pins and cfg_regs arrays 2013-12-20 12:27:43 +01:00
pinctrl.c pinctrl: sh-pfc: Accept standard function, pins and groups properties 2015-07-16 11:36:52 +02:00
sh_pfc.h pinctrl: sh-pfc: Use u32 to store register addresses 2015-03-18 02:15:40 +01:00