pinctrl: zynq: Initialize early
authorMike Looijmans <mike.looijmans@topic.nl>
Thu, 22 Oct 2015 11:30:20 +0000 (13:30 +0200)
committerLinus Walleij <linus.walleij@linaro.org>
Fri, 30 Oct 2015 09:40:57 +0000 (10:40 +0100)
Supplying pinmux configuration for e.g. gpio pins leads to deferred
probes because the pinctrl device is probed much later than gpio.
Move the init call to a much earlier stage so it probes before the
devices that may need it.

Signed-off-by: Mike Looijmans <mike.looijmans@topic.nl>
Tested-by: Sören Brinkmann <soren.brinkmann@xilinx.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/pinctrl/pinctrl-zynq.c

index 5aafea8c6590a9625930e784f027e61c43b7a0ba..9aefc608ba79a8727cbc23b1391d85148fc85459 100644 (file)
@@ -1230,7 +1230,17 @@ static struct platform_driver zynq_pinctrl_driver = {
        .remove = zynq_pinctrl_remove,
 };
 
-module_platform_driver(zynq_pinctrl_driver);
+static int __init zynq_pinctrl_init(void)
+{
+       return platform_driver_register(&zynq_pinctrl_driver);
+}
+arch_initcall(zynq_pinctrl_init);
+
+static void __exit zynq_pinctrl_exit(void)
+{
+       platform_driver_unregister(&zynq_pinctrl_driver);
+}
+module_exit(zynq_pinctrl_exit);
 
 MODULE_AUTHOR("Sören Brinkmann <soren.brinkmann@xilinx.com>");
 MODULE_DESCRIPTION("Xilinx Zynq pinctrl driver");