diff options
author | Santosh Shilimkar <santosh.shilimkar@ti.com> | 2010-02-23 00:09:40 -0500 |
---|---|---|
committer | Paul Walmsley <paul@pwsan.com> | 2010-02-24 19:45:17 -0500 |
commit | 7c43d5472878db90d0244551370f6f0dc1b97747 (patch) | |
tree | de164f1449df926212479d452bb0d8528c5c6083 | |
parent | 547760502665eacc1f9fd9f3782b8b7f27c56bd4 (diff) |
OMAP4: clock: Add dummy clock nodes for interface clocks
On OMAP4 platform the iclk control is completly under hardware control
and no software control is available.
This difference w.r.t previous OMAP's needs all the common driver
accross OMAP's , cpu_is_xxxx() checks. To avoid poulluting the
drivers dummy clock nodes are created (The autogeneration
script has been updated accordingly).
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Signed-off-by: Rajendra Nayak <rnayak@ti.com>
Signed-off-by: Benoit Cousson <b-cousson@ti.com>
[paul@pwsan.com: made OMAP1 dummy_ck common and edited patch to reuse that]
Signed-off-by: Paul Walmsley <paul@pwsan.com>
-rw-r--r-- | arch/arm/mach-omap1/clock.c | 14 | ||||
-rw-r--r-- | arch/arm/mach-omap1/clock_data.c | 6 | ||||
-rw-r--r-- | arch/arm/mach-omap2/clock.h | 1 | ||||
-rw-r--r-- | arch/arm/mach-omap2/clock44xx_data.c | 35 | ||||
-rw-r--r-- | arch/arm/plat-omap/clock.c | 10 | ||||
-rw-r--r-- | arch/arm/plat-omap/include/plat/clock.h | 2 |
6 files changed, 48 insertions, 20 deletions
diff --git a/arch/arm/mach-omap1/clock.c b/arch/arm/mach-omap1/clock.c index 0ba044d80a41..e0aec1007a0d 100644 --- a/arch/arm/mach-omap1/clock.c +++ b/arch/arm/mach-omap1/clock.c | |||
@@ -38,20 +38,6 @@ struct clk *api_ck_p, *ck_dpll1_p, *ck_ref_p; | |||
38 | * Omap1 specific clock functions | 38 | * Omap1 specific clock functions |
39 | *-------------------------------------------------------------------------*/ | 39 | *-------------------------------------------------------------------------*/ |
40 | 40 | ||
41 | static int clk_omap1_dummy_enable(struct clk *clk) | ||
42 | { | ||
43 | return 0; | ||
44 | } | ||
45 | |||
46 | static void clk_omap1_dummy_disable(struct clk *clk) | ||
47 | { | ||
48 | } | ||
49 | |||
50 | const struct clkops clkops_dummy = { | ||
51 | .enable = clk_omap1_dummy_enable, | ||
52 | .disable = clk_omap1_dummy_disable, | ||
53 | }; | ||
54 | |||
55 | unsigned long omap1_uart_recalc(struct clk *clk) | 41 | unsigned long omap1_uart_recalc(struct clk *clk) |
56 | { | 42 | { |
57 | unsigned int val = __raw_readl(clk->enable_reg); | 43 | unsigned int val = __raw_readl(clk->enable_reg); |
diff --git a/arch/arm/mach-omap1/clock_data.c b/arch/arm/mach-omap1/clock_data.c index 8b1d14d1e38e..aa8558adbf1c 100644 --- a/arch/arm/mach-omap1/clock_data.c +++ b/arch/arm/mach-omap1/clock_data.c | |||
@@ -27,12 +27,6 @@ | |||
27 | * Omap1 clocks | 27 | * Omap1 clocks |
28 | *-------------------------------------------------------------------------*/ | 28 | *-------------------------------------------------------------------------*/ |
29 | 29 | ||
30 | /* XXX is this necessary? */ | ||
31 | static struct clk dummy_ck = { | ||
32 | .name = "dummy", | ||
33 | .ops = &clkops_dummy, | ||
34 | }; | ||
35 | |||
36 | static struct clk ck_ref = { | 30 | static struct clk ck_ref = { |
37 | .name = "ck_ref", | 31 | .name = "ck_ref", |
38 | .ops = &clkops_null, | 32 | .ops = &clkops_null, |
diff --git a/arch/arm/mach-omap2/clock.h b/arch/arm/mach-omap2/clock.h index f77d8af585ae..ad8a1f7c1afc 100644 --- a/arch/arm/mach-omap2/clock.h +++ b/arch/arm/mach-omap2/clock.h | |||
@@ -127,6 +127,7 @@ void omap2_clk_print_new_rates(const char *hfclkin_ck_name, | |||
127 | extern u8 cpu_mask; | 127 | extern u8 cpu_mask; |
128 | 128 | ||
129 | extern const struct clkops clkops_omap2_dflt_wait; | 129 | extern const struct clkops clkops_omap2_dflt_wait; |
130 | extern const struct clkops clkops_dummy; | ||
130 | extern const struct clkops clkops_omap2_dflt; | 131 | extern const struct clkops clkops_omap2_dflt; |
131 | 132 | ||
132 | extern struct clk_functions omap2_clk_functions; | 133 | extern struct clk_functions omap2_clk_functions; |
diff --git a/arch/arm/mach-omap2/clock44xx_data.c b/arch/arm/mach-omap2/clock44xx_data.c index c0825cffdbbc..28b107967c86 100644 --- a/arch/arm/mach-omap2/clock44xx_data.c +++ b/arch/arm/mach-omap2/clock44xx_data.c | |||
@@ -2645,6 +2645,41 @@ static struct omap_clk omap44xx_clks[] = { | |||
2645 | CLK(NULL, "usim_fclk", &usim_fclk, CK_443X), | 2645 | CLK(NULL, "usim_fclk", &usim_fclk, CK_443X), |
2646 | CLK(NULL, "utmi_p1_gfclk_ck", &utmi_p1_gfclk_ck, CK_443X), | 2646 | CLK(NULL, "utmi_p1_gfclk_ck", &utmi_p1_gfclk_ck, CK_443X), |
2647 | CLK(NULL, "utmi_p2_gfclk_ck", &utmi_p2_gfclk_ck, CK_443X), | 2647 | CLK(NULL, "utmi_p2_gfclk_ck", &utmi_p2_gfclk_ck, CK_443X), |
2648 | CLK(NULL, "gpio1_dbck", &dummy_ck, CK_443X), | ||
2649 | CLK(NULL, "gpio2_dbck", &dummy_ck, CK_443X), | ||
2650 | CLK(NULL, "gpio3_dbck", &dummy_ck, CK_443X), | ||
2651 | CLK(NULL, "gpio4_dbck", &dummy_ck, CK_443X), | ||
2652 | CLK(NULL, "gpio5_dbck", &dummy_ck, CK_443X), | ||
2653 | CLK(NULL, "gpio6_dbck", &dummy_ck, CK_443X), | ||
2654 | CLK(NULL, "gpmc_ck", &dummy_ck, CK_443X), | ||
2655 | CLK(NULL, "gpt1_ick", &dummy_ck, CK_443X), | ||
2656 | CLK(NULL, "gpt2_ick", &dummy_ck, CK_443X), | ||
2657 | CLK(NULL, "gpt3_ick", &dummy_ck, CK_443X), | ||
2658 | CLK(NULL, "gpt4_ick", &dummy_ck, CK_443X), | ||
2659 | CLK(NULL, "gpt5_ick", &dummy_ck, CK_443X), | ||
2660 | CLK(NULL, "gpt6_ick", &dummy_ck, CK_443X), | ||
2661 | CLK(NULL, "gpt7_ick", &dummy_ck, CK_443X), | ||
2662 | CLK(NULL, "gpt8_ick", &dummy_ck, CK_443X), | ||
2663 | CLK(NULL, "gpt9_ick", &dummy_ck, CK_443X), | ||
2664 | CLK(NULL, "gpt10_ick", &dummy_ck, CK_443X), | ||
2665 | CLK(NULL, "gpt11_ick", &dummy_ck, CK_443X), | ||
2666 | CLK("i2c_omap.1", "ick", &dummy_ck, CK_443X), | ||
2667 | CLK("i2c_omap.2", "ick", &dummy_ck, CK_443X), | ||
2668 | CLK("i2c_omap.3", "ick", &dummy_ck, CK_443X), | ||
2669 | CLK("i2c_omap.4", "ick", &dummy_ck, CK_443X), | ||
2670 | CLK("omap-mcbsp.1", "ick", &dummy_ck, CK_443X), | ||
2671 | CLK("omap-mcbsp.2", "ick", &dummy_ck, CK_443X), | ||
2672 | CLK("omap-mcbsp.3", "ick", &dummy_ck, CK_443X), | ||
2673 | CLK("omap-mcbsp.4", "ick", &dummy_ck, CK_443X), | ||
2674 | CLK("omap-mcspi.1", "ick", &dummy_ck, CK_443X), | ||
2675 | CLK("omap-mcspi.2", "ick", &dummy_ck, CK_443X), | ||
2676 | CLK("omap-mcspi.3", "ick", &dummy_ck, CK_443X), | ||
2677 | CLK("omap-mcspi.4", "ick", &dummy_ck, CK_443X), | ||
2678 | CLK(NULL, "uart1_ick", &dummy_ck, CK_443X), | ||
2679 | CLK(NULL, "uart2_ick", &dummy_ck, CK_443X), | ||
2680 | CLK(NULL, "uart3_ick", &dummy_ck, CK_443X), | ||
2681 | CLK(NULL, "uart4_ick", &dummy_ck, CK_443X), | ||
2682 | CLK("omap_wdt", "ick", &dummy_ck, CK_443X), | ||
2648 | }; | 2683 | }; |
2649 | 2684 | ||
2650 | int __init omap4xxx_clk_init(void) | 2685 | int __init omap4xxx_clk_init(void) |
diff --git a/arch/arm/plat-omap/clock.c b/arch/arm/plat-omap/clock.c index 6cc13e7fd897..5261a0923691 100644 --- a/arch/arm/plat-omap/clock.c +++ b/arch/arm/plat-omap/clock.c | |||
@@ -357,6 +357,16 @@ const struct clkops clkops_null = { | |||
357 | .disable = clkll_disable_null, | 357 | .disable = clkll_disable_null, |
358 | }; | 358 | }; |
359 | 359 | ||
360 | /* | ||
361 | * Dummy clock | ||
362 | * | ||
363 | * Used for clock aliases that are needed on some OMAPs, but not others | ||
364 | */ | ||
365 | struct clk dummy_ck = { | ||
366 | .name = "dummy", | ||
367 | .ops = &clkops_null, | ||
368 | }; | ||
369 | |||
360 | #ifdef CONFIG_CPU_FREQ | 370 | #ifdef CONFIG_CPU_FREQ |
361 | void clk_init_cpufreq_table(struct cpufreq_frequency_table **table) | 371 | void clk_init_cpufreq_table(struct cpufreq_frequency_table **table) |
362 | { | 372 | { |
diff --git a/arch/arm/plat-omap/include/plat/clock.h b/arch/arm/plat-omap/include/plat/clock.h index 9b4701f14984..34f7fa9ad4c0 100644 --- a/arch/arm/plat-omap/include/plat/clock.h +++ b/arch/arm/plat-omap/include/plat/clock.h | |||
@@ -186,6 +186,8 @@ extern struct clk *omap_clk_get_by_name(const char *name); | |||
186 | 186 | ||
187 | extern const struct clkops clkops_null; | 187 | extern const struct clkops clkops_null; |
188 | 188 | ||
189 | extern struct clk dummy_ck; | ||
190 | |||
189 | /* Clock flags */ | 191 | /* Clock flags */ |
190 | #define ENABLE_REG_32BIT (1 << 0) /* Use 32-bit access */ | 192 | #define ENABLE_REG_32BIT (1 << 0) /* Use 32-bit access */ |
191 | #define CLOCK_IDLE_CONTROL (1 << 1) | 193 | #define CLOCK_IDLE_CONTROL (1 << 1) |