To avoid all SoC peripheral drivers deferring their probes, both clock and pinctrl drivers should already be probed. Since the pinctrl driver requires a clock to access the registers, the clock driver should be probed before the pinctrl driver. Therefore, move the clock driver from subsys_initcall to core_initcall. Signed-off-by: Phil Edworthy <phil.edworthy@xxxxxxxxxxx> --- drivers/clk/renesas/r9a06g032-clocks.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/clk/renesas/r9a06g032-clocks.c b/drivers/clk/renesas/r9a06g032-clocks.c index a0b6ecd..b03d616 100644 --- a/drivers/clk/renesas/r9a06g032-clocks.c +++ b/drivers/clk/renesas/r9a06g032-clocks.c @@ -877,17 +877,18 @@ static const struct of_device_id r9a06g032_match[] = { { } }; -static struct platform_driver r9a06g032_clock_driver = { +static struct platform_driver r9a06g032_clock_driver __refdata = { .driver = { .name = "renesas,r9a06g032-sysctrl", .of_match_table = r9a06g032_match, }, + .probe = r9a06g032_clocks_probe, }; static int __init r9a06g032_clocks_init(void) { - return platform_driver_probe(&r9a06g032_clock_driver, - r9a06g032_clocks_probe); + platform_driver_register(&r9a06g032_clock_driver); + return 0; } -subsys_initcall(r9a06g032_clocks_init); +core_initcall(r9a06g032_clocks_init); -- 2.7.4