ARM: shmobile: only call rcar_gen2_clocks_init() if present
authorSimon Horman <horms@verge.net.au>
Mon, 31 Oct 2016 09:52:17 +0000 (10:52 +0100)
committerSimon Horman <horms+renesas@verge.net.au>
Wed, 2 Nov 2016 09:15:07 +0000 (10:15 +0100)
The RZ/G1M (r8a7743) uses the R-Car Gen2 core, but not the R-Car Gen2 clock
driver. This is a harbinger of a transition for R-Car Gen2 SoCs. As the
process to get all the required pieces in place is somewhat complex it
seems useful to try to disentangle dependencies where possible.

The approach here is to temporarily disable calling rcar_gen2_clocks_init()
if no R-Car Gen2 SoC are configured and thus the symbol will not be
present.

Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Acked-by: Geert Uytterhoeven <geert+renesas@glider.be>
arch/arm/mach-shmobile/setup-rcar-gen2.c

index afb9fdcd3d9084e26747fb1b34eb226493b43401..154e8051825a5ca1841b759a246fdbdc7371d1fb 100644 (file)
@@ -15,6 +15,7 @@
  * GNU General Public License for more details.
  */
 
+#include <linux/clk-provider.h>
 #include <linux/clk/renesas.h>
 #include <linux/clocksource.h>
 #include <linux/device.h>
@@ -130,7 +131,15 @@ void __init rcar_gen2_timer_init(void)
        iounmap(base);
 #endif /* CONFIG_ARM_ARCH_TIMER */
 
-       rcar_gen2_clocks_init(mode);
+       if (IS_ENABLED(CONFIG_ARCH_R8A7790) ||
+           IS_ENABLED(CONFIG_ARCH_R8A7791) ||
+           IS_ENABLED(CONFIG_ARCH_R8A7792) ||
+           IS_ENABLED(CONFIG_ARCH_R8A7793) ||
+           IS_ENABLED(CONFIG_ARCH_R8A7794))
+               rcar_gen2_clocks_init(mode);
+       else
+               of_clk_init(NULL);
+
        clocksource_probe();
 }