msm: clock: Support multi-target compilation

Having multiple late initcalls across all the clock-$(ARCH) files
won't work when they are compiled together. Register a struct
with msm_clock_init() so that clock.c can driver the init() and
late_init() calls that need to be made per SoC.

Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
diff --git a/arch/arm/mach-msm/clock-7x30.c b/arch/arm/mach-msm/clock-7x30.c
index 6134917..0dc0cab 100644
--- a/arch/arm/mach-msm/clock-7x30.c
+++ b/arch/arm/mach-msm/clock-7x30.c
@@ -2919,7 +2919,7 @@
 };
 
 /* Local clock driver initialization. */
-void __init msm7x30_clock_init(void)
+static void __init msm7x30_clock_init(void)
 {
 	int i;
 	uint32_t val;
@@ -2957,10 +2957,14 @@
 	clk_set_rate(&lpa_codec_clk.c, 1);
 	/* Sync the GRP2D clock to AXI */
 	clk_set_rate(&grp_2d_clk.c, 1);
-
-	msm_clock_init(msm_clocks_7x30, ARRAY_SIZE(msm_clocks_7x30));
 }
 
+struct clock_init_data msm7x30_clock_init_data __initdata = {
+	.table = msm_clocks_7x30,
+	.size = ARRAY_SIZE(msm_clocks_7x30),
+	.init = msm7x30_clock_init,
+};
+
 /*
  * Clock operation handler registration
  */