diff options
author | Rajendra Nayak <rnayak@ti.com> | 2010-09-27 16:02:54 -0400 |
---|---|---|
committer | Paul Walmsley <paul@pwsan.com> | 2010-09-27 16:02:54 -0400 |
commit | 76cf52951ac57a31a453610e0ab5cae50b10502d (patch) | |
tree | a58f821a58ac0849826618e6d49cf9bb74e553a0 | |
parent | b30a3f6257ed2105259b404d419b4964e363928c (diff) |
OMAP4: clocks: Update clock tree for ES2
This patch updates the clock tree with all the
changes in OMAP4430 ES2.
clock nodes added
-1- tie_low_clock_ck
-2- abe_dpll_bypass_clk_mux_ck
clock nodes deleted
-1- dpll_sys_ref_clk
-2- per_sgx_fclk
-3- usbphyocp2scp_ick
Signed-off-by: Rajendra Nayak <rnayak@ti.com>
Signed-off-by: BenoƮt Cousson <b-cousson@ti.com>
[paul@pwsan.com: added comment re ES1 clocks to top of file]
Signed-off-by: Paul Walmsley <paul@pwsan.com>
Cc: Kevin Hilman <khilman@deeprootsystems.com>
-rw-r--r-- | arch/arm/mach-omap2/clock44xx_data.c | 172 |
1 files changed, 74 insertions, 98 deletions
diff --git a/arch/arm/mach-omap2/clock44xx_data.c b/arch/arm/mach-omap2/clock44xx_data.c index e10db7a90cb2..f39552bd74b8 100644 --- a/arch/arm/mach-omap2/clock44xx_data.c +++ b/arch/arm/mach-omap2/clock44xx_data.c | |||
@@ -17,6 +17,10 @@ | |||
17 | * This program is free software; you can redistribute it and/or modify | 17 | * This program is free software; you can redistribute it and/or modify |
18 | * it under the terms of the GNU General Public License version 2 as | 18 | * it under the terms of the GNU General Public License version 2 as |
19 | * published by the Free Software Foundation. | 19 | * published by the Free Software Foundation. |
20 | * | ||
21 | * XXX Some of the ES1 clocks have been removed/changed; once support | ||
22 | * is added for discriminating clocks by ES level, these should be added back | ||
23 | * in. | ||
20 | */ | 24 | */ |
21 | 25 | ||
22 | #include <linux/kernel.h> | 26 | #include <linux/kernel.h> |
@@ -175,21 +179,27 @@ static struct clk sys_clkin_ck = { | |||
175 | .recalc = &omap2_clksel_recalc, | 179 | .recalc = &omap2_clksel_recalc, |
176 | }; | 180 | }; |
177 | 181 | ||
182 | static struct clk tie_low_clock_ck = { | ||
183 | .name = "tie_low_clock_ck", | ||
184 | .rate = 0, | ||
185 | .ops = &clkops_null, | ||
186 | }; | ||
187 | |||
178 | static struct clk utmi_phy_clkout_ck = { | 188 | static struct clk utmi_phy_clkout_ck = { |
179 | .name = "utmi_phy_clkout_ck", | 189 | .name = "utmi_phy_clkout_ck", |
180 | .rate = 12000000, | 190 | .rate = 60000000, |
181 | .ops = &clkops_null, | 191 | .ops = &clkops_null, |
182 | }; | 192 | }; |
183 | 193 | ||
184 | static struct clk xclk60mhsp1_ck = { | 194 | static struct clk xclk60mhsp1_ck = { |
185 | .name = "xclk60mhsp1_ck", | 195 | .name = "xclk60mhsp1_ck", |
186 | .rate = 12000000, | 196 | .rate = 60000000, |
187 | .ops = &clkops_null, | 197 | .ops = &clkops_null, |
188 | }; | 198 | }; |
189 | 199 | ||
190 | static struct clk xclk60mhsp2_ck = { | 200 | static struct clk xclk60mhsp2_ck = { |
191 | .name = "xclk60mhsp2_ck", | 201 | .name = "xclk60mhsp2_ck", |
192 | .rate = 12000000, | 202 | .rate = 60000000, |
193 | .ops = &clkops_null, | 203 | .ops = &clkops_null, |
194 | }; | 204 | }; |
195 | 205 | ||
@@ -201,39 +211,23 @@ static struct clk xclk60motg_ck = { | |||
201 | 211 | ||
202 | /* Module clocks and DPLL outputs */ | 212 | /* Module clocks and DPLL outputs */ |
203 | 213 | ||
204 | static const struct clksel_rate div2_1to2_rates[] = { | 214 | static const struct clksel abe_dpll_bypass_clk_mux_sel[] = { |
205 | { .div = 1, .val = 0, .flags = RATE_IN_4430 }, | 215 | { .parent = &sys_clkin_ck, .rates = div_1_0_rates }, |
206 | { .div = 2, .val = 1, .flags = RATE_IN_4430 }, | 216 | { .parent = &sys_32k_ck, .rates = div_1_1_rates }, |
207 | { .div = 0 }, | ||
208 | }; | ||
209 | |||
210 | static const struct clksel dpll_sys_ref_clk_div[] = { | ||
211 | { .parent = &sys_clkin_ck, .rates = div2_1to2_rates }, | ||
212 | { .parent = NULL }, | 217 | { .parent = NULL }, |
213 | }; | 218 | }; |
214 | 219 | ||
215 | static struct clk dpll_sys_ref_clk = { | 220 | static struct clk abe_dpll_bypass_clk_mux_ck = { |
216 | .name = "dpll_sys_ref_clk", | 221 | .name = "abe_dpll_bypass_clk_mux_ck", |
217 | .parent = &sys_clkin_ck, | 222 | .parent = &sys_clkin_ck, |
218 | .clksel = dpll_sys_ref_clk_div, | ||
219 | .clksel_reg = OMAP4430_CM_DPLL_SYS_REF_CLKSEL, | ||
220 | .clksel_mask = OMAP4430_CLKSEL_0_0_MASK, | ||
221 | .ops = &clkops_null, | 223 | .ops = &clkops_null, |
222 | .recalc = &omap2_clksel_recalc, | 224 | .recalc = &followparent_recalc, |
223 | .round_rate = &omap2_clksel_round_rate, | ||
224 | .set_rate = &omap2_clksel_set_rate, | ||
225 | }; | ||
226 | |||
227 | static const struct clksel abe_dpll_refclk_mux_sel[] = { | ||
228 | { .parent = &dpll_sys_ref_clk, .rates = div_1_0_rates }, | ||
229 | { .parent = &sys_32k_ck, .rates = div_1_1_rates }, | ||
230 | { .parent = NULL }, | ||
231 | }; | 225 | }; |
232 | 226 | ||
233 | static struct clk abe_dpll_refclk_mux_ck = { | 227 | static struct clk abe_dpll_refclk_mux_ck = { |
234 | .name = "abe_dpll_refclk_mux_ck", | 228 | .name = "abe_dpll_refclk_mux_ck", |
235 | .parent = &dpll_sys_ref_clk, | 229 | .parent = &sys_clkin_ck, |
236 | .clksel = abe_dpll_refclk_mux_sel, | 230 | .clksel = abe_dpll_bypass_clk_mux_sel, |
237 | .init = &omap2_init_clksel_parent, | 231 | .init = &omap2_init_clksel_parent, |
238 | .clksel_reg = OMAP4430_CM_ABE_PLL_REF_CLKSEL, | 232 | .clksel_reg = OMAP4430_CM_ABE_PLL_REF_CLKSEL, |
239 | .clksel_mask = OMAP4430_CLKSEL_0_0_MASK, | 233 | .clksel_mask = OMAP4430_CLKSEL_0_0_MASK, |
@@ -244,7 +238,7 @@ static struct clk abe_dpll_refclk_mux_ck = { | |||
244 | /* DPLL_ABE */ | 238 | /* DPLL_ABE */ |
245 | static struct dpll_data dpll_abe_dd = { | 239 | static struct dpll_data dpll_abe_dd = { |
246 | .mult_div1_reg = OMAP4430_CM_CLKSEL_DPLL_ABE, | 240 | .mult_div1_reg = OMAP4430_CM_CLKSEL_DPLL_ABE, |
247 | .clk_bypass = &sys_clkin_ck, | 241 | .clk_bypass = &abe_dpll_bypass_clk_mux_ck, |
248 | .clk_ref = &abe_dpll_refclk_mux_ck, | 242 | .clk_ref = &abe_dpll_refclk_mux_ck, |
249 | .control_reg = OMAP4430_CM_CLKMODE_DPLL_ABE, | 243 | .control_reg = OMAP4430_CM_CLKMODE_DPLL_ABE, |
250 | .modes = (1 << DPLL_LOW_POWER_BYPASS) | (1 << DPLL_LOCKED), | 244 | .modes = (1 << DPLL_LOW_POWER_BYPASS) | (1 << DPLL_LOCKED), |
@@ -310,6 +304,12 @@ static struct clk abe_clk = { | |||
310 | .set_rate = &omap2_clksel_set_rate, | 304 | .set_rate = &omap2_clksel_set_rate, |
311 | }; | 305 | }; |
312 | 306 | ||
307 | static const struct clksel_rate div2_1to2_rates[] = { | ||
308 | { .div = 1, .val = 0, .flags = RATE_IN_4430 }, | ||
309 | { .div = 2, .val = 1, .flags = RATE_IN_4430 }, | ||
310 | { .div = 0 }, | ||
311 | }; | ||
312 | |||
313 | static const struct clksel aess_fclk_div[] = { | 313 | static const struct clksel aess_fclk_div[] = { |
314 | { .parent = &abe_clk, .rates = div2_1to2_rates }, | 314 | { .parent = &abe_clk, .rates = div2_1to2_rates }, |
315 | { .parent = NULL }, | 315 | { .parent = NULL }, |
@@ -380,14 +380,14 @@ static struct clk dpll_abe_m3_ck = { | |||
380 | }; | 380 | }; |
381 | 381 | ||
382 | static const struct clksel core_hsd_byp_clk_mux_sel[] = { | 382 | static const struct clksel core_hsd_byp_clk_mux_sel[] = { |
383 | { .parent = &dpll_sys_ref_clk, .rates = div_1_0_rates }, | 383 | { .parent = &sys_clkin_ck, .rates = div_1_0_rates }, |
384 | { .parent = &dpll_abe_m3_ck, .rates = div_1_1_rates }, | 384 | { .parent = &dpll_abe_m3_ck, .rates = div_1_1_rates }, |
385 | { .parent = NULL }, | 385 | { .parent = NULL }, |
386 | }; | 386 | }; |
387 | 387 | ||
388 | static struct clk core_hsd_byp_clk_mux_ck = { | 388 | static struct clk core_hsd_byp_clk_mux_ck = { |
389 | .name = "core_hsd_byp_clk_mux_ck", | 389 | .name = "core_hsd_byp_clk_mux_ck", |
390 | .parent = &dpll_sys_ref_clk, | 390 | .parent = &sys_clkin_ck, |
391 | .clksel = core_hsd_byp_clk_mux_sel, | 391 | .clksel = core_hsd_byp_clk_mux_sel, |
392 | .init = &omap2_init_clksel_parent, | 392 | .init = &omap2_init_clksel_parent, |
393 | .clksel_reg = OMAP4430_CM_CLKSEL_DPLL_CORE, | 393 | .clksel_reg = OMAP4430_CM_CLKSEL_DPLL_CORE, |
@@ -400,7 +400,7 @@ static struct clk core_hsd_byp_clk_mux_ck = { | |||
400 | static struct dpll_data dpll_core_dd = { | 400 | static struct dpll_data dpll_core_dd = { |
401 | .mult_div1_reg = OMAP4430_CM_CLKSEL_DPLL_CORE, | 401 | .mult_div1_reg = OMAP4430_CM_CLKSEL_DPLL_CORE, |
402 | .clk_bypass = &core_hsd_byp_clk_mux_ck, | 402 | .clk_bypass = &core_hsd_byp_clk_mux_ck, |
403 | .clk_ref = &dpll_sys_ref_clk, | 403 | .clk_ref = &sys_clkin_ck, |
404 | .control_reg = OMAP4430_CM_CLKMODE_DPLL_CORE, | 404 | .control_reg = OMAP4430_CM_CLKMODE_DPLL_CORE, |
405 | .modes = (1 << DPLL_LOW_POWER_BYPASS) | (1 << DPLL_LOCKED), | 405 | .modes = (1 << DPLL_LOW_POWER_BYPASS) | (1 << DPLL_LOCKED), |
406 | .autoidle_reg = OMAP4430_CM_AUTOIDLE_DPLL_CORE, | 406 | .autoidle_reg = OMAP4430_CM_AUTOIDLE_DPLL_CORE, |
@@ -418,7 +418,7 @@ static struct dpll_data dpll_core_dd = { | |||
418 | 418 | ||
419 | static struct clk dpll_core_ck = { | 419 | static struct clk dpll_core_ck = { |
420 | .name = "dpll_core_ck", | 420 | .name = "dpll_core_ck", |
421 | .parent = &dpll_sys_ref_clk, | 421 | .parent = &sys_clkin_ck, |
422 | .dpll_data = &dpll_core_dd, | 422 | .dpll_data = &dpll_core_dd, |
423 | .init = &omap2_init_dpll_parent, | 423 | .init = &omap2_init_dpll_parent, |
424 | .ops = &clkops_null, | 424 | .ops = &clkops_null, |
@@ -596,14 +596,14 @@ static struct clk dpll_core_m7_ck = { | |||
596 | }; | 596 | }; |
597 | 597 | ||
598 | static const struct clksel iva_hsd_byp_clk_mux_sel[] = { | 598 | static const struct clksel iva_hsd_byp_clk_mux_sel[] = { |
599 | { .parent = &dpll_sys_ref_clk, .rates = div_1_0_rates }, | 599 | { .parent = &sys_clkin_ck, .rates = div_1_0_rates }, |
600 | { .parent = &div_iva_hs_clk, .rates = div_1_1_rates }, | 600 | { .parent = &div_iva_hs_clk, .rates = div_1_1_rates }, |
601 | { .parent = NULL }, | 601 | { .parent = NULL }, |
602 | }; | 602 | }; |
603 | 603 | ||
604 | static struct clk iva_hsd_byp_clk_mux_ck = { | 604 | static struct clk iva_hsd_byp_clk_mux_ck = { |
605 | .name = "iva_hsd_byp_clk_mux_ck", | 605 | .name = "iva_hsd_byp_clk_mux_ck", |
606 | .parent = &dpll_sys_ref_clk, | 606 | .parent = &sys_clkin_ck, |
607 | .ops = &clkops_null, | 607 | .ops = &clkops_null, |
608 | .recalc = &followparent_recalc, | 608 | .recalc = &followparent_recalc, |
609 | }; | 609 | }; |
@@ -612,7 +612,7 @@ static struct clk iva_hsd_byp_clk_mux_ck = { | |||
612 | static struct dpll_data dpll_iva_dd = { | 612 | static struct dpll_data dpll_iva_dd = { |
613 | .mult_div1_reg = OMAP4430_CM_CLKSEL_DPLL_IVA, | 613 | .mult_div1_reg = OMAP4430_CM_CLKSEL_DPLL_IVA, |
614 | .clk_bypass = &iva_hsd_byp_clk_mux_ck, | 614 | .clk_bypass = &iva_hsd_byp_clk_mux_ck, |
615 | .clk_ref = &dpll_sys_ref_clk, | 615 | .clk_ref = &sys_clkin_ck, |
616 | .control_reg = OMAP4430_CM_CLKMODE_DPLL_IVA, | 616 | .control_reg = OMAP4430_CM_CLKMODE_DPLL_IVA, |
617 | .modes = (1 << DPLL_LOW_POWER_BYPASS) | (1 << DPLL_LOCKED), | 617 | .modes = (1 << DPLL_LOW_POWER_BYPASS) | (1 << DPLL_LOCKED), |
618 | .autoidle_reg = OMAP4430_CM_AUTOIDLE_DPLL_IVA, | 618 | .autoidle_reg = OMAP4430_CM_AUTOIDLE_DPLL_IVA, |
@@ -630,7 +630,7 @@ static struct dpll_data dpll_iva_dd = { | |||
630 | 630 | ||
631 | static struct clk dpll_iva_ck = { | 631 | static struct clk dpll_iva_ck = { |
632 | .name = "dpll_iva_ck", | 632 | .name = "dpll_iva_ck", |
633 | .parent = &dpll_sys_ref_clk, | 633 | .parent = &sys_clkin_ck, |
634 | .dpll_data = &dpll_iva_dd, | 634 | .dpll_data = &dpll_iva_dd, |
635 | .init = &omap2_init_dpll_parent, | 635 | .init = &omap2_init_dpll_parent, |
636 | .ops = &clkops_omap3_noncore_dpll_ops, | 636 | .ops = &clkops_omap3_noncore_dpll_ops, |
@@ -672,7 +672,7 @@ static struct clk dpll_iva_m5_ck = { | |||
672 | static struct dpll_data dpll_mpu_dd = { | 672 | static struct dpll_data dpll_mpu_dd = { |
673 | .mult_div1_reg = OMAP4430_CM_CLKSEL_DPLL_MPU, | 673 | .mult_div1_reg = OMAP4430_CM_CLKSEL_DPLL_MPU, |
674 | .clk_bypass = &div_mpu_hs_clk, | 674 | .clk_bypass = &div_mpu_hs_clk, |
675 | .clk_ref = &dpll_sys_ref_clk, | 675 | .clk_ref = &sys_clkin_ck, |
676 | .control_reg = OMAP4430_CM_CLKMODE_DPLL_MPU, | 676 | .control_reg = OMAP4430_CM_CLKMODE_DPLL_MPU, |
677 | .modes = (1 << DPLL_LOW_POWER_BYPASS) | (1 << DPLL_LOCKED), | 677 | .modes = (1 << DPLL_LOW_POWER_BYPASS) | (1 << DPLL_LOCKED), |
678 | .autoidle_reg = OMAP4430_CM_AUTOIDLE_DPLL_MPU, | 678 | .autoidle_reg = OMAP4430_CM_AUTOIDLE_DPLL_MPU, |
@@ -690,7 +690,7 @@ static struct dpll_data dpll_mpu_dd = { | |||
690 | 690 | ||
691 | static struct clk dpll_mpu_ck = { | 691 | static struct clk dpll_mpu_ck = { |
692 | .name = "dpll_mpu_ck", | 692 | .name = "dpll_mpu_ck", |
693 | .parent = &dpll_sys_ref_clk, | 693 | .parent = &sys_clkin_ck, |
694 | .dpll_data = &dpll_mpu_dd, | 694 | .dpll_data = &dpll_mpu_dd, |
695 | .init = &omap2_init_dpll_parent, | 695 | .init = &omap2_init_dpll_parent, |
696 | .ops = &clkops_omap3_noncore_dpll_ops, | 696 | .ops = &clkops_omap3_noncore_dpll_ops, |
@@ -724,14 +724,14 @@ static struct clk per_hs_clk_div_ck = { | |||
724 | }; | 724 | }; |
725 | 725 | ||
726 | static const struct clksel per_hsd_byp_clk_mux_sel[] = { | 726 | static const struct clksel per_hsd_byp_clk_mux_sel[] = { |
727 | { .parent = &dpll_sys_ref_clk, .rates = div_1_0_rates }, | 727 | { .parent = &sys_clkin_ck, .rates = div_1_0_rates }, |
728 | { .parent = &per_hs_clk_div_ck, .rates = div_1_1_rates }, | 728 | { .parent = &per_hs_clk_div_ck, .rates = div_1_1_rates }, |
729 | { .parent = NULL }, | 729 | { .parent = NULL }, |
730 | }; | 730 | }; |
731 | 731 | ||
732 | static struct clk per_hsd_byp_clk_mux_ck = { | 732 | static struct clk per_hsd_byp_clk_mux_ck = { |
733 | .name = "per_hsd_byp_clk_mux_ck", | 733 | .name = "per_hsd_byp_clk_mux_ck", |
734 | .parent = &dpll_sys_ref_clk, | 734 | .parent = &sys_clkin_ck, |
735 | .clksel = per_hsd_byp_clk_mux_sel, | 735 | .clksel = per_hsd_byp_clk_mux_sel, |
736 | .init = &omap2_init_clksel_parent, | 736 | .init = &omap2_init_clksel_parent, |
737 | .clksel_reg = OMAP4430_CM_CLKSEL_DPLL_PER, | 737 | .clksel_reg = OMAP4430_CM_CLKSEL_DPLL_PER, |
@@ -744,7 +744,7 @@ static struct clk per_hsd_byp_clk_mux_ck = { | |||
744 | static struct dpll_data dpll_per_dd = { | 744 | static struct dpll_data dpll_per_dd = { |
745 | .mult_div1_reg = OMAP4430_CM_CLKSEL_DPLL_PER, | 745 | .mult_div1_reg = OMAP4430_CM_CLKSEL_DPLL_PER, |
746 | .clk_bypass = &per_hsd_byp_clk_mux_ck, | 746 | .clk_bypass = &per_hsd_byp_clk_mux_ck, |
747 | .clk_ref = &dpll_sys_ref_clk, | 747 | .clk_ref = &sys_clkin_ck, |
748 | .control_reg = OMAP4430_CM_CLKMODE_DPLL_PER, | 748 | .control_reg = OMAP4430_CM_CLKMODE_DPLL_PER, |
749 | .modes = (1 << DPLL_LOW_POWER_BYPASS) | (1 << DPLL_LOCKED), | 749 | .modes = (1 << DPLL_LOW_POWER_BYPASS) | (1 << DPLL_LOCKED), |
750 | .autoidle_reg = OMAP4430_CM_AUTOIDLE_DPLL_PER, | 750 | .autoidle_reg = OMAP4430_CM_AUTOIDLE_DPLL_PER, |
@@ -762,7 +762,7 @@ static struct dpll_data dpll_per_dd = { | |||
762 | 762 | ||
763 | static struct clk dpll_per_ck = { | 763 | static struct clk dpll_per_ck = { |
764 | .name = "dpll_per_ck", | 764 | .name = "dpll_per_ck", |
765 | .parent = &dpll_sys_ref_clk, | 765 | .parent = &sys_clkin_ck, |
766 | .dpll_data = &dpll_per_dd, | 766 | .dpll_data = &dpll_per_dd, |
767 | .init = &omap2_init_dpll_parent, | 767 | .init = &omap2_init_dpll_parent, |
768 | .ops = &clkops_omap3_noncore_dpll_ops, | 768 | .ops = &clkops_omap3_noncore_dpll_ops, |
@@ -858,8 +858,8 @@ static struct clk dpll_per_m7_ck = { | |||
858 | /* DPLL_UNIPRO */ | 858 | /* DPLL_UNIPRO */ |
859 | static struct dpll_data dpll_unipro_dd = { | 859 | static struct dpll_data dpll_unipro_dd = { |
860 | .mult_div1_reg = OMAP4430_CM_CLKSEL_DPLL_UNIPRO, | 860 | .mult_div1_reg = OMAP4430_CM_CLKSEL_DPLL_UNIPRO, |
861 | .clk_bypass = &dpll_sys_ref_clk, | 861 | .clk_bypass = &sys_clkin_ck, |
862 | .clk_ref = &dpll_sys_ref_clk, | 862 | .clk_ref = &sys_clkin_ck, |
863 | .control_reg = OMAP4430_CM_CLKMODE_DPLL_UNIPRO, | 863 | .control_reg = OMAP4430_CM_CLKMODE_DPLL_UNIPRO, |
864 | .modes = (1 << DPLL_LOW_POWER_BYPASS) | (1 << DPLL_LOCKED), | 864 | .modes = (1 << DPLL_LOW_POWER_BYPASS) | (1 << DPLL_LOCKED), |
865 | .autoidle_reg = OMAP4430_CM_AUTOIDLE_DPLL_UNIPRO, | 865 | .autoidle_reg = OMAP4430_CM_AUTOIDLE_DPLL_UNIPRO, |
@@ -877,7 +877,7 @@ static struct dpll_data dpll_unipro_dd = { | |||
877 | 877 | ||
878 | static struct clk dpll_unipro_ck = { | 878 | static struct clk dpll_unipro_ck = { |
879 | .name = "dpll_unipro_ck", | 879 | .name = "dpll_unipro_ck", |
880 | .parent = &dpll_sys_ref_clk, | 880 | .parent = &sys_clkin_ck, |
881 | .dpll_data = &dpll_unipro_dd, | 881 | .dpll_data = &dpll_unipro_dd, |
882 | .init = &omap2_init_dpll_parent, | 882 | .init = &omap2_init_dpll_parent, |
883 | .ops = &clkops_omap3_noncore_dpll_ops, | 883 | .ops = &clkops_omap3_noncore_dpll_ops, |
@@ -914,7 +914,7 @@ static struct clk usb_hs_clk_div_ck = { | |||
914 | static struct dpll_data dpll_usb_dd = { | 914 | static struct dpll_data dpll_usb_dd = { |
915 | .mult_div1_reg = OMAP4430_CM_CLKSEL_DPLL_USB, | 915 | .mult_div1_reg = OMAP4430_CM_CLKSEL_DPLL_USB, |
916 | .clk_bypass = &usb_hs_clk_div_ck, | 916 | .clk_bypass = &usb_hs_clk_div_ck, |
917 | .clk_ref = &dpll_sys_ref_clk, | 917 | .clk_ref = &sys_clkin_ck, |
918 | .control_reg = OMAP4430_CM_CLKMODE_DPLL_USB, | 918 | .control_reg = OMAP4430_CM_CLKMODE_DPLL_USB, |
919 | .modes = (1 << DPLL_LOW_POWER_BYPASS) | (1 << DPLL_LOCKED), | 919 | .modes = (1 << DPLL_LOW_POWER_BYPASS) | (1 << DPLL_LOCKED), |
920 | .autoidle_reg = OMAP4430_CM_AUTOIDLE_DPLL_USB, | 920 | .autoidle_reg = OMAP4430_CM_AUTOIDLE_DPLL_USB, |
@@ -933,7 +933,7 @@ static struct dpll_data dpll_usb_dd = { | |||
933 | 933 | ||
934 | static struct clk dpll_usb_ck = { | 934 | static struct clk dpll_usb_ck = { |
935 | .name = "dpll_usb_ck", | 935 | .name = "dpll_usb_ck", |
936 | .parent = &dpll_sys_ref_clk, | 936 | .parent = &sys_clkin_ck, |
937 | .dpll_data = &dpll_usb_dd, | 937 | .dpll_data = &dpll_usb_dd, |
938 | .init = &omap2_init_dpll_parent, | 938 | .init = &omap2_init_dpll_parent, |
939 | .ops = &clkops_omap3_noncore_dpll_ops, | 939 | .ops = &clkops_omap3_noncore_dpll_ops, |
@@ -1222,7 +1222,7 @@ static struct clk per_abe_24m_fclk = { | |||
1222 | static const struct clksel pmd_stm_clock_mux_sel[] = { | 1222 | static const struct clksel pmd_stm_clock_mux_sel[] = { |
1223 | { .parent = &sys_clkin_ck, .rates = div_1_0_rates }, | 1223 | { .parent = &sys_clkin_ck, .rates = div_1_0_rates }, |
1224 | { .parent = &dpll_core_m6_ck, .rates = div_1_1_rates }, | 1224 | { .parent = &dpll_core_m6_ck, .rates = div_1_1_rates }, |
1225 | { .parent = &dpll_per_m7_ck, .rates = div_1_2_rates }, | 1225 | { .parent = &tie_low_clock_ck, .rates = div_1_2_rates }, |
1226 | { .parent = NULL }, | 1226 | { .parent = NULL }, |
1227 | }; | 1227 | }; |
1228 | 1228 | ||
@@ -1240,10 +1240,15 @@ static struct clk pmd_trace_clk_mux_ck = { | |||
1240 | .recalc = &followparent_recalc, | 1240 | .recalc = &followparent_recalc, |
1241 | }; | 1241 | }; |
1242 | 1242 | ||
1243 | static const struct clksel syc_clk_div_div[] = { | ||
1244 | { .parent = &sys_clkin_ck, .rates = div2_1to2_rates }, | ||
1245 | { .parent = NULL }, | ||
1246 | }; | ||
1247 | |||
1243 | static struct clk syc_clk_div_ck = { | 1248 | static struct clk syc_clk_div_ck = { |
1244 | .name = "syc_clk_div_ck", | 1249 | .name = "syc_clk_div_ck", |
1245 | .parent = &sys_clkin_ck, | 1250 | .parent = &sys_clkin_ck, |
1246 | .clksel = dpll_sys_ref_clk_div, | 1251 | .clksel = syc_clk_div_div, |
1247 | .clksel_reg = OMAP4430_CM_ABE_DSS_SYS_CLKSEL, | 1252 | .clksel_reg = OMAP4430_CM_ABE_DSS_SYS_CLKSEL, |
1248 | .clksel_mask = OMAP4430_CLKSEL_0_0_MASK, | 1253 | .clksel_mask = OMAP4430_CLKSEL_0_0_MASK, |
1249 | .ops = &clkops_null, | 1254 | .ops = &clkops_null, |
@@ -1407,26 +1412,9 @@ static struct clk fdif_fck = { | |||
1407 | .clkdm_name = "iss_clkdm", | 1412 | .clkdm_name = "iss_clkdm", |
1408 | }; | 1413 | }; |
1409 | 1414 | ||
1410 | static const struct clksel per_sgx_fclk_div[] = { | ||
1411 | { .parent = &dpll_per_m2x2_ck, .rates = div3_1to4_rates }, | ||
1412 | { .parent = NULL }, | ||
1413 | }; | ||
1414 | |||
1415 | static struct clk per_sgx_fclk = { | ||
1416 | .name = "per_sgx_fclk", | ||
1417 | .parent = &dpll_per_m2x2_ck, | ||
1418 | .clksel = per_sgx_fclk_div, | ||
1419 | .clksel_reg = OMAP4430_CM_GFX_GFX_CLKCTRL, | ||
1420 | .clksel_mask = OMAP4430_CLKSEL_PER_192M_MASK, | ||
1421 | .ops = &clkops_null, | ||
1422 | .recalc = &omap2_clksel_recalc, | ||
1423 | .round_rate = &omap2_clksel_round_rate, | ||
1424 | .set_rate = &omap2_clksel_set_rate, | ||
1425 | }; | ||
1426 | |||
1427 | static const struct clksel sgx_clk_mux_sel[] = { | 1415 | static const struct clksel sgx_clk_mux_sel[] = { |
1428 | { .parent = &dpll_core_m7_ck, .rates = div_1_0_rates }, | 1416 | { .parent = &dpll_core_m7_ck, .rates = div_1_0_rates }, |
1429 | { .parent = &per_sgx_fclk, .rates = div_1_1_rates }, | 1417 | { .parent = &dpll_per_m7_ck, .rates = div_1_1_rates }, |
1430 | { .parent = NULL }, | 1418 | { .parent = NULL }, |
1431 | }; | 1419 | }; |
1432 | 1420 | ||
@@ -1515,12 +1503,6 @@ static struct clk gpmc_ick = { | |||
1515 | .recalc = &followparent_recalc, | 1503 | .recalc = &followparent_recalc, |
1516 | }; | 1504 | }; |
1517 | 1505 | ||
1518 | static const struct clksel dmt1_clk_mux_sel[] = { | ||
1519 | { .parent = &sys_clkin_ck, .rates = div_1_0_rates }, | ||
1520 | { .parent = &sys_32k_ck, .rates = div_1_1_rates }, | ||
1521 | { .parent = NULL }, | ||
1522 | }; | ||
1523 | |||
1524 | /* | 1506 | /* |
1525 | * Merged dmt1_clk_mux into gptimer1 | 1507 | * Merged dmt1_clk_mux into gptimer1 |
1526 | * gptimer1 renamed temporarily into gpt1 to match OMAP3 convention | 1508 | * gptimer1 renamed temporarily into gpt1 to match OMAP3 convention |
@@ -1528,7 +1510,7 @@ static const struct clksel dmt1_clk_mux_sel[] = { | |||
1528 | static struct clk gpt1_fck = { | 1510 | static struct clk gpt1_fck = { |
1529 | .name = "gpt1_fck", | 1511 | .name = "gpt1_fck", |
1530 | .parent = &sys_clkin_ck, | 1512 | .parent = &sys_clkin_ck, |
1531 | .clksel = dmt1_clk_mux_sel, | 1513 | .clksel = abe_dpll_bypass_clk_mux_sel, |
1532 | .init = &omap2_init_clksel_parent, | 1514 | .init = &omap2_init_clksel_parent, |
1533 | .clksel_reg = OMAP4430_CM_WKUP_TIMER1_CLKCTRL, | 1515 | .clksel_reg = OMAP4430_CM_WKUP_TIMER1_CLKCTRL, |
1534 | .clksel_mask = OMAP4430_CLKSEL_MASK, | 1516 | .clksel_mask = OMAP4430_CLKSEL_MASK, |
@@ -1546,7 +1528,7 @@ static struct clk gpt1_fck = { | |||
1546 | static struct clk gpt10_fck = { | 1528 | static struct clk gpt10_fck = { |
1547 | .name = "gpt10_fck", | 1529 | .name = "gpt10_fck", |
1548 | .parent = &sys_clkin_ck, | 1530 | .parent = &sys_clkin_ck, |
1549 | .clksel = dmt1_clk_mux_sel, | 1531 | .clksel = abe_dpll_bypass_clk_mux_sel, |
1550 | .init = &omap2_init_clksel_parent, | 1532 | .init = &omap2_init_clksel_parent, |
1551 | .clksel_reg = OMAP4430_CM_L4PER_DMTIMER10_CLKCTRL, | 1533 | .clksel_reg = OMAP4430_CM_L4PER_DMTIMER10_CLKCTRL, |
1552 | .clksel_mask = OMAP4430_CLKSEL_MASK, | 1534 | .clksel_mask = OMAP4430_CLKSEL_MASK, |
@@ -1564,7 +1546,7 @@ static struct clk gpt10_fck = { | |||
1564 | static struct clk gpt11_fck = { | 1546 | static struct clk gpt11_fck = { |
1565 | .name = "gpt11_fck", | 1547 | .name = "gpt11_fck", |
1566 | .parent = &sys_clkin_ck, | 1548 | .parent = &sys_clkin_ck, |
1567 | .clksel = dmt1_clk_mux_sel, | 1549 | .clksel = abe_dpll_bypass_clk_mux_sel, |
1568 | .init = &omap2_init_clksel_parent, | 1550 | .init = &omap2_init_clksel_parent, |
1569 | .clksel_reg = OMAP4430_CM_L4PER_DMTIMER11_CLKCTRL, | 1551 | .clksel_reg = OMAP4430_CM_L4PER_DMTIMER11_CLKCTRL, |
1570 | .clksel_mask = OMAP4430_CLKSEL_MASK, | 1552 | .clksel_mask = OMAP4430_CLKSEL_MASK, |
@@ -1582,7 +1564,7 @@ static struct clk gpt11_fck = { | |||
1582 | static struct clk gpt2_fck = { | 1564 | static struct clk gpt2_fck = { |
1583 | .name = "gpt2_fck", | 1565 | .name = "gpt2_fck", |
1584 | .parent = &sys_clkin_ck, | 1566 | .parent = &sys_clkin_ck, |
1585 | .clksel = dmt1_clk_mux_sel, | 1567 | .clksel = abe_dpll_bypass_clk_mux_sel, |
1586 | .init = &omap2_init_clksel_parent, | 1568 | .init = &omap2_init_clksel_parent, |
1587 | .clksel_reg = OMAP4430_CM_L4PER_DMTIMER2_CLKCTRL, | 1569 | .clksel_reg = OMAP4430_CM_L4PER_DMTIMER2_CLKCTRL, |
1588 | .clksel_mask = OMAP4430_CLKSEL_MASK, | 1570 | .clksel_mask = OMAP4430_CLKSEL_MASK, |
@@ -1600,7 +1582,7 @@ static struct clk gpt2_fck = { | |||
1600 | static struct clk gpt3_fck = { | 1582 | static struct clk gpt3_fck = { |
1601 | .name = "gpt3_fck", | 1583 | .name = "gpt3_fck", |
1602 | .parent = &sys_clkin_ck, | 1584 | .parent = &sys_clkin_ck, |
1603 | .clksel = dmt1_clk_mux_sel, | 1585 | .clksel = abe_dpll_bypass_clk_mux_sel, |
1604 | .init = &omap2_init_clksel_parent, | 1586 | .init = &omap2_init_clksel_parent, |
1605 | .clksel_reg = OMAP4430_CM_L4PER_DMTIMER3_CLKCTRL, | 1587 | .clksel_reg = OMAP4430_CM_L4PER_DMTIMER3_CLKCTRL, |
1606 | .clksel_mask = OMAP4430_CLKSEL_MASK, | 1588 | .clksel_mask = OMAP4430_CLKSEL_MASK, |
@@ -1618,7 +1600,7 @@ static struct clk gpt3_fck = { | |||
1618 | static struct clk gpt4_fck = { | 1600 | static struct clk gpt4_fck = { |
1619 | .name = "gpt4_fck", | 1601 | .name = "gpt4_fck", |
1620 | .parent = &sys_clkin_ck, | 1602 | .parent = &sys_clkin_ck, |
1621 | .clksel = dmt1_clk_mux_sel, | 1603 | .clksel = abe_dpll_bypass_clk_mux_sel, |
1622 | .init = &omap2_init_clksel_parent, | 1604 | .init = &omap2_init_clksel_parent, |
1623 | .clksel_reg = OMAP4430_CM_L4PER_DMTIMER4_CLKCTRL, | 1605 | .clksel_reg = OMAP4430_CM_L4PER_DMTIMER4_CLKCTRL, |
1624 | .clksel_mask = OMAP4430_CLKSEL_MASK, | 1606 | .clksel_mask = OMAP4430_CLKSEL_MASK, |
@@ -1714,7 +1696,7 @@ static struct clk gpt8_fck = { | |||
1714 | static struct clk gpt9_fck = { | 1696 | static struct clk gpt9_fck = { |
1715 | .name = "gpt9_fck", | 1697 | .name = "gpt9_fck", |
1716 | .parent = &sys_clkin_ck, | 1698 | .parent = &sys_clkin_ck, |
1717 | .clksel = dmt1_clk_mux_sel, | 1699 | .clksel = abe_dpll_bypass_clk_mux_sel, |
1718 | .init = &omap2_init_clksel_parent, | 1700 | .init = &omap2_init_clksel_parent, |
1719 | .clksel_reg = OMAP4430_CM_L4PER_DMTIMER9_CLKCTRL, | 1701 | .clksel_reg = OMAP4430_CM_L4PER_DMTIMER9_CLKCTRL, |
1720 | .clksel_mask = OMAP4430_CLKSEL_MASK, | 1702 | .clksel_mask = OMAP4430_CLKSEL_MASK, |
@@ -1735,11 +1717,16 @@ static struct clk hdq1w_fck = { | |||
1735 | .recalc = &followparent_recalc, | 1717 | .recalc = &followparent_recalc, |
1736 | }; | 1718 | }; |
1737 | 1719 | ||
1720 | static const struct clksel hsi_fclk_div[] = { | ||
1721 | { .parent = &dpll_per_m2x2_ck, .rates = div3_1to4_rates }, | ||
1722 | { .parent = NULL }, | ||
1723 | }; | ||
1724 | |||
1738 | /* Merged hsi_fclk into hsi */ | 1725 | /* Merged hsi_fclk into hsi */ |
1739 | static struct clk hsi_ick = { | 1726 | static struct clk hsi_ick = { |
1740 | .name = "hsi_ick", | 1727 | .name = "hsi_ick", |
1741 | .parent = &dpll_per_m2x2_ck, | 1728 | .parent = &dpll_per_m2x2_ck, |
1742 | .clksel = per_sgx_fclk_div, | 1729 | .clksel = hsi_fclk_div, |
1743 | .clksel_reg = OMAP4430_CM_L3INIT_HSI_CLKCTRL, | 1730 | .clksel_reg = OMAP4430_CM_L3INIT_HSI_CLKCTRL, |
1744 | .clksel_mask = OMAP4430_CLKSEL_24_25_MASK, | 1731 | .clksel_mask = OMAP4430_CLKSEL_24_25_MASK, |
1745 | .ops = &clkops_omap2_dflt, | 1732 | .ops = &clkops_omap2_dflt, |
@@ -2315,21 +2302,11 @@ static struct clk usb_tll_ick = { | |||
2315 | .recalc = &followparent_recalc, | 2302 | .recalc = &followparent_recalc, |
2316 | }; | 2303 | }; |
2317 | 2304 | ||
2318 | static struct clk usbphyocp2scp_ick = { | 2305 | static struct clk usim_ick = { |
2319 | .name = "usbphyocp2scp_ick", | 2306 | .name = "usim_ick", |
2320 | .ops = &clkops_omap2_dflt, | ||
2321 | .enable_reg = OMAP4430_CM_L3INIT_USBPHYOCP2SCP_CLKCTRL, | ||
2322 | .enable_bit = OMAP4430_MODULEMODE_HWCTRL, | ||
2323 | .clkdm_name = "l3_init_clkdm", | ||
2324 | .parent = &l4_div_ck, | ||
2325 | .recalc = &followparent_recalc, | ||
2326 | }; | ||
2327 | |||
2328 | static struct clk usim_fck = { | ||
2329 | .name = "usim_fck", | ||
2330 | .ops = &clkops_omap2_dflt, | 2307 | .ops = &clkops_omap2_dflt, |
2331 | .enable_reg = OMAP4430_CM_WKUP_USIM_CLKCTRL, | 2308 | .enable_reg = OMAP4430_CM_WKUP_USIM_CLKCTRL, |
2332 | .enable_bit = OMAP4430_MODULEMODE_SWCTRL, | 2309 | .enable_bit = OMAP4430_MODULEMODE_HWCTRL, |
2333 | .clkdm_name = "l4_wkup_clkdm", | 2310 | .clkdm_name = "l4_wkup_clkdm", |
2334 | .parent = &sys_32k_ck, | 2311 | .parent = &sys_32k_ck, |
2335 | .recalc = &followparent_recalc, | 2312 | .recalc = &followparent_recalc, |
@@ -2483,11 +2460,12 @@ static struct omap_clk omap44xx_clks[] = { | |||
2483 | CLK(NULL, "virt_27000000_ck", &virt_27000000_ck, CK_443X), | 2460 | CLK(NULL, "virt_27000000_ck", &virt_27000000_ck, CK_443X), |
2484 | CLK(NULL, "virt_38400000_ck", &virt_38400000_ck, CK_443X), | 2461 | CLK(NULL, "virt_38400000_ck", &virt_38400000_ck, CK_443X), |
2485 | CLK(NULL, "sys_clkin_ck", &sys_clkin_ck, CK_443X), | 2462 | CLK(NULL, "sys_clkin_ck", &sys_clkin_ck, CK_443X), |
2463 | CLK(NULL, "tie_low_clock_ck", &tie_low_clock_ck, CK_443X), | ||
2486 | CLK(NULL, "utmi_phy_clkout_ck", &utmi_phy_clkout_ck, CK_443X), | 2464 | CLK(NULL, "utmi_phy_clkout_ck", &utmi_phy_clkout_ck, CK_443X), |
2487 | CLK(NULL, "xclk60mhsp1_ck", &xclk60mhsp1_ck, CK_443X), | 2465 | CLK(NULL, "xclk60mhsp1_ck", &xclk60mhsp1_ck, CK_443X), |
2488 | CLK(NULL, "xclk60mhsp2_ck", &xclk60mhsp2_ck, CK_443X), | 2466 | CLK(NULL, "xclk60mhsp2_ck", &xclk60mhsp2_ck, CK_443X), |
2489 | CLK(NULL, "xclk60motg_ck", &xclk60motg_ck, CK_443X), | 2467 | CLK(NULL, "xclk60motg_ck", &xclk60motg_ck, CK_443X), |
2490 | CLK(NULL, "dpll_sys_ref_clk", &dpll_sys_ref_clk, CK_443X), | 2468 | CLK(NULL, "abe_dpll_bypass_clk_mux_ck", &abe_dpll_bypass_clk_mux_ck, CK_443X), |
2491 | CLK(NULL, "abe_dpll_refclk_mux_ck", &abe_dpll_refclk_mux_ck, CK_443X), | 2469 | CLK(NULL, "abe_dpll_refclk_mux_ck", &abe_dpll_refclk_mux_ck, CK_443X), |
2492 | CLK(NULL, "dpll_abe_ck", &dpll_abe_ck, CK_443X), | 2470 | CLK(NULL, "dpll_abe_ck", &dpll_abe_ck, CK_443X), |
2493 | CLK(NULL, "dpll_abe_m2x2_ck", &dpll_abe_m2x2_ck, CK_443X), | 2471 | CLK(NULL, "dpll_abe_m2x2_ck", &dpll_abe_m2x2_ck, CK_443X), |
@@ -2566,7 +2544,6 @@ static struct omap_clk omap44xx_clks[] = { | |||
2566 | CLK(NULL, "emif1_ick", &emif1_ick, CK_443X), | 2544 | CLK(NULL, "emif1_ick", &emif1_ick, CK_443X), |
2567 | CLK(NULL, "emif2_ick", &emif2_ick, CK_443X), | 2545 | CLK(NULL, "emif2_ick", &emif2_ick, CK_443X), |
2568 | CLK(NULL, "fdif_fck", &fdif_fck, CK_443X), | 2546 | CLK(NULL, "fdif_fck", &fdif_fck, CK_443X), |
2569 | CLK(NULL, "per_sgx_fclk", &per_sgx_fclk, CK_443X), | ||
2570 | CLK(NULL, "gfx_fck", &gfx_fck, CK_443X), | 2547 | CLK(NULL, "gfx_fck", &gfx_fck, CK_443X), |
2571 | CLK(NULL, "gpio1_ick", &gpio1_ick, CK_443X), | 2548 | CLK(NULL, "gpio1_ick", &gpio1_ick, CK_443X), |
2572 | CLK(NULL, "gpio2_ick", &gpio2_ick, CK_443X), | 2549 | CLK(NULL, "gpio2_ick", &gpio2_ick, CK_443X), |
@@ -2637,8 +2614,7 @@ static struct omap_clk omap44xx_clks[] = { | |||
2637 | CLK(NULL, "usb_host_fs_fck", &usb_host_fs_fck, CK_443X), | 2614 | CLK(NULL, "usb_host_fs_fck", &usb_host_fs_fck, CK_443X), |
2638 | CLK("musb_hdrc", "ick", &usb_otg_ick, CK_443X), | 2615 | CLK("musb_hdrc", "ick", &usb_otg_ick, CK_443X), |
2639 | CLK(NULL, "usb_tll_ick", &usb_tll_ick, CK_443X), | 2616 | CLK(NULL, "usb_tll_ick", &usb_tll_ick, CK_443X), |
2640 | CLK(NULL, "usbphyocp2scp_ick", &usbphyocp2scp_ick, CK_443X), | 2617 | CLK(NULL, "usim_ick", &usim_ick, CK_443X), |
2641 | CLK(NULL, "usim_fck", &usim_fck, CK_443X), | ||
2642 | CLK("omap_wdt", "fck", &wdt2_fck, CK_443X), | 2618 | CLK("omap_wdt", "fck", &wdt2_fck, CK_443X), |
2643 | CLK(NULL, "wdt3_fck", &wdt3_fck, CK_443X), | 2619 | CLK(NULL, "wdt3_fck", &wdt3_fck, CK_443X), |
2644 | CLK(NULL, "otg_60m_gfclk_ck", &otg_60m_gfclk_ck, CK_443X), | 2620 | CLK(NULL, "otg_60m_gfclk_ck", &otg_60m_gfclk_ck, CK_443X), |