Browse Source

ARM: OMAP2+: clock: introduce ti_clk_features flags

This shall be used to replace the cpu type checks around the clock code.
Actual bit values will be introduced in patches later.

Signed-off-by: Tero Kristo <t-kristo@ti.com>
Reviewed-by: Mike Turquette <mturquette@linaro.org>
Signed-off-by: Paul Walmsley <paul@pwsan.com>
Tero Kristo 11 years ago
parent
commit
8111e01045
3 changed files with 26 additions and 0 deletions
  1. 14 0
      arch/arm/mach-omap2/clock.c
  2. 10 0
      arch/arm/mach-omap2/clock.h
  3. 2 0
      arch/arm/mach-omap2/io.c

+ 14 - 0
arch/arm/mach-omap2/clock.c

@@ -46,6 +46,11 @@
 
 
 u16 cpu_mask;
 u16 cpu_mask;
 
 
+/*
+ * Clock features setup. Used instead of CPU type checks.
+ */
+struct ti_clk_features ti_clk_features;
+
 /*
 /*
  * clkdm_control: if true, then when a clock is enabled in the
  * clkdm_control: if true, then when a clock is enabled in the
  * hardware, its clockdomain will first be enabled; and when a clock
  * hardware, its clockdomain will first be enabled; and when a clock
@@ -731,3 +736,12 @@ void __init omap2_clk_print_new_rates(const char *hfclkin_ck_name,
 		(clk_get_rate(core_ck) / 1000000),
 		(clk_get_rate(core_ck) / 1000000),
 		(clk_get_rate(mpu_ck) / 1000000));
 		(clk_get_rate(mpu_ck) / 1000000));
 }
 }
+
+/**
+ * ti_clk_init_features - init clock features struct for the SoC
+ *
+ * Initializes the clock features struct based on the SoC type.
+ */
+void __init ti_clk_init_features(void)
+{
+}

+ 10 - 0
arch/arm/mach-omap2/clock.h

@@ -223,6 +223,14 @@ void omap2_clk_writel(u32 val, struct clk_hw_omap *clk, void __iomem *reg);
 
 
 extern u16 cpu_mask;
 extern u16 cpu_mask;
 
 
+/*
+ * Clock features setup. Used instead of CPU type checks.
+ */
+struct ti_clk_features {
+	u32 flags;
+};
+extern struct ti_clk_features ti_clk_features;
+
 extern const struct clkops clkops_omap2_dflt_wait;
 extern const struct clkops clkops_omap2_dflt_wait;
 extern const struct clkops clkops_dummy;
 extern const struct clkops clkops_dummy;
 extern const struct clkops clkops_omap2_dflt;
 extern const struct clkops clkops_omap2_dflt;
@@ -261,4 +269,6 @@ extern int omap2_clkops_enable_clkdm(struct clk_hw *hw);
 extern void omap2_clkops_disable_clkdm(struct clk_hw *hw);
 extern void omap2_clkops_disable_clkdm(struct clk_hw *hw);
 
 
 extern void omap_clocks_register(struct omap_clk *oclks, int cnt);
 extern void omap_clocks_register(struct omap_clk *oclks, int cnt);
+
+void __init ti_clk_init_features(void);
 #endif
 #endif

+ 2 - 0
arch/arm/mach-omap2/io.c

@@ -728,6 +728,8 @@ int __init omap_clk_init(void)
 	if (!omap_clk_soc_init)
 	if (!omap_clk_soc_init)
 		return 0;
 		return 0;
 
 
+	ti_clk_init_features();
+
 	ret = of_prcm_init();
 	ret = of_prcm_init();
 	if (!ret)
 	if (!ret)
 		ret = omap_clk_soc_init();
 		ret = omap_clk_soc_init();