]> rtime.felk.cvut.cz Git - zynq/linux.git/commit
gpio: gpio-zynq: shift zynq_gpio_init() to subsys_initcall level
authorNava kishore Manne <nava.manne@xilinx.com>
Thu, 18 May 2017 08:54:12 +0000 (14:24 +0530)
committerMichal Simek <michal.simek@xilinx.com>
Tue, 20 Jun 2017 12:13:38 +0000 (14:13 +0200)
commit554ae6bb8c269b2b0ddd4b86cfb94677ccfd618d
tree8ca2d043f0c1e5fdce319b1738c01be34a771875
parent3388607d1895f5f2198e328eec5fc88c5403e7ef
gpio: gpio-zynq: shift zynq_gpio_init() to subsys_initcall level

In general situation on-SoC GPIO controller drivers should be probed
after pinctrl/pinmux controller driver, because on-SoC GPIOs utilize a
pin/pad as a resource provided and controlled by pinctrl subsystem.

  GPIO must come after pinctrl as gpios may need to mux pins....etc

Looking at Xilinx SoC series pinctrl drivers, zynq*_pinctrl_init()
functions are called at arch_initcall init levels,
so the change of initcall level for gpio-zynq driver from
postcore_initcall to subsys_initcall level is sufficient. Also note
that the most of GPIO controller drivers settled at subsys_initcall
level.

If pinctrl subsystem manages pads with GPIO functions, the change is
needed to avoid unwanted driver probe deferrals during kernel boot.

Signed-off-by: Nava kishore Manne <navam@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
drivers/gpio/gpio-zynq.c