diff options
Diffstat (limited to 'arch/arm/mach-omap2/clock34xx.h')
-rw-r--r-- | arch/arm/mach-omap2/clock34xx.h | 177 |
1 files changed, 28 insertions, 149 deletions
diff --git a/arch/arm/mach-omap2/clock34xx.h b/arch/arm/mach-omap2/clock34xx.h index 764c7cd9fd84..70ec10deb654 100644 --- a/arch/arm/mach-omap2/clock34xx.h +++ b/arch/arm/mach-omap2/clock34xx.h | |||
@@ -48,6 +48,10 @@ static int omap3_core_dpll_m2_set_rate(struct clk *clk, unsigned long rate); | |||
48 | * DPLL5 supplies other peripheral clocks (USBHOST, USIM). | 48 | * DPLL5 supplies other peripheral clocks (USBHOST, USIM). |
49 | */ | 49 | */ |
50 | 50 | ||
51 | /* Forward declarations for DPLL bypass clocks */ | ||
52 | static struct clk dpll1_fck; | ||
53 | static struct clk dpll2_fck; | ||
54 | |||
51 | /* CM_CLKEN_PLL*.EN* bit values - not all are available for every DPLL */ | 55 | /* CM_CLKEN_PLL*.EN* bit values - not all are available for every DPLL */ |
52 | #define DPLL_LOW_POWER_STOP 0x1 | 56 | #define DPLL_LOW_POWER_STOP 0x1 |
53 | #define DPLL_LOW_POWER_BYPASS 0x5 | 57 | #define DPLL_LOW_POWER_BYPASS 0x5 |
@@ -217,16 +221,6 @@ static struct clk sys_clkout1 = { | |||
217 | 221 | ||
218 | /* CM CLOCKS */ | 222 | /* CM CLOCKS */ |
219 | 223 | ||
220 | static const struct clksel_rate dpll_bypass_rates[] = { | ||
221 | { .div = 1, .val = 0, .flags = RATE_IN_343X | DEFAULT_RATE }, | ||
222 | { .div = 0 } | ||
223 | }; | ||
224 | |||
225 | static const struct clksel_rate dpll_locked_rates[] = { | ||
226 | { .div = 1, .val = 1, .flags = RATE_IN_343X | DEFAULT_RATE }, | ||
227 | { .div = 0 } | ||
228 | }; | ||
229 | |||
230 | static const struct clksel_rate div16_dpll_rates[] = { | 224 | static const struct clksel_rate div16_dpll_rates[] = { |
231 | { .div = 1, .val = 1, .flags = RATE_IN_343X | DEFAULT_RATE }, | 225 | { .div = 1, .val = 1, .flags = RATE_IN_343X | DEFAULT_RATE }, |
232 | { .div = 2, .val = 2, .flags = RATE_IN_343X }, | 226 | { .div = 2, .val = 2, .flags = RATE_IN_343X }, |
@@ -254,6 +248,8 @@ static struct dpll_data dpll1_dd = { | |||
254 | .mult_div1_reg = OMAP_CM_REGADDR(MPU_MOD, OMAP3430_CM_CLKSEL1_PLL), | 248 | .mult_div1_reg = OMAP_CM_REGADDR(MPU_MOD, OMAP3430_CM_CLKSEL1_PLL), |
255 | .mult_mask = OMAP3430_MPU_DPLL_MULT_MASK, | 249 | .mult_mask = OMAP3430_MPU_DPLL_MULT_MASK, |
256 | .div1_mask = OMAP3430_MPU_DPLL_DIV_MASK, | 250 | .div1_mask = OMAP3430_MPU_DPLL_DIV_MASK, |
251 | .clk_bypass = &dpll1_fck, | ||
252 | .clk_ref = &sys_ck, | ||
257 | .freqsel_mask = OMAP3430_MPU_DPLL_FREQSEL_MASK, | 253 | .freqsel_mask = OMAP3430_MPU_DPLL_FREQSEL_MASK, |
258 | .control_reg = OMAP_CM_REGADDR(MPU_MOD, OMAP3430_CM_CLKEN_PLL), | 254 | .control_reg = OMAP_CM_REGADDR(MPU_MOD, OMAP3430_CM_CLKEN_PLL), |
259 | .enable_mask = OMAP3430_EN_MPU_DPLL_MASK, | 255 | .enable_mask = OMAP3430_EN_MPU_DPLL_MASK, |
@@ -324,6 +320,8 @@ static struct dpll_data dpll2_dd = { | |||
324 | .mult_div1_reg = OMAP_CM_REGADDR(OMAP3430_IVA2_MOD, OMAP3430_CM_CLKSEL1_PLL), | 320 | .mult_div1_reg = OMAP_CM_REGADDR(OMAP3430_IVA2_MOD, OMAP3430_CM_CLKSEL1_PLL), |
325 | .mult_mask = OMAP3430_IVA2_DPLL_MULT_MASK, | 321 | .mult_mask = OMAP3430_IVA2_DPLL_MULT_MASK, |
326 | .div1_mask = OMAP3430_IVA2_DPLL_DIV_MASK, | 322 | .div1_mask = OMAP3430_IVA2_DPLL_DIV_MASK, |
323 | .clk_bypass = &dpll2_fck, | ||
324 | .clk_ref = &sys_ck, | ||
327 | .freqsel_mask = OMAP3430_IVA2_DPLL_FREQSEL_MASK, | 325 | .freqsel_mask = OMAP3430_IVA2_DPLL_FREQSEL_MASK, |
328 | .control_reg = OMAP_CM_REGADDR(OMAP3430_IVA2_MOD, OMAP3430_CM_CLKEN_PLL), | 326 | .control_reg = OMAP_CM_REGADDR(OMAP3430_IVA2_MOD, OMAP3430_CM_CLKEN_PLL), |
329 | .enable_mask = OMAP3430_EN_IVA2_DPLL_MASK, | 327 | .enable_mask = OMAP3430_EN_IVA2_DPLL_MASK, |
@@ -384,6 +382,8 @@ static struct dpll_data dpll3_dd = { | |||
384 | .mult_div1_reg = OMAP_CM_REGADDR(PLL_MOD, CM_CLKSEL1), | 382 | .mult_div1_reg = OMAP_CM_REGADDR(PLL_MOD, CM_CLKSEL1), |
385 | .mult_mask = OMAP3430_CORE_DPLL_MULT_MASK, | 383 | .mult_mask = OMAP3430_CORE_DPLL_MULT_MASK, |
386 | .div1_mask = OMAP3430_CORE_DPLL_DIV_MASK, | 384 | .div1_mask = OMAP3430_CORE_DPLL_DIV_MASK, |
385 | .clk_bypass = &sys_ck, | ||
386 | .clk_ref = &sys_ck, | ||
387 | .freqsel_mask = OMAP3430_CORE_DPLL_FREQSEL_MASK, | 387 | .freqsel_mask = OMAP3430_CORE_DPLL_FREQSEL_MASK, |
388 | .control_reg = OMAP_CM_REGADDR(PLL_MOD, CM_CLKEN), | 388 | .control_reg = OMAP_CM_REGADDR(PLL_MOD, CM_CLKEN), |
389 | .enable_mask = OMAP3430_EN_CORE_DPLL_MASK, | 389 | .enable_mask = OMAP3430_EN_CORE_DPLL_MASK, |
@@ -477,37 +477,19 @@ static struct clk dpll3_m2_ck = { | |||
477 | .recalc = &omap2_clksel_recalc, | 477 | .recalc = &omap2_clksel_recalc, |
478 | }; | 478 | }; |
479 | 479 | ||
480 | static const struct clksel core_ck_clksel[] = { | ||
481 | { .parent = &sys_ck, .rates = dpll_bypass_rates }, | ||
482 | { .parent = &dpll3_m2_ck, .rates = dpll_locked_rates }, | ||
483 | { .parent = NULL } | ||
484 | }; | ||
485 | |||
486 | static struct clk core_ck = { | 480 | static struct clk core_ck = { |
487 | .name = "core_ck", | 481 | .name = "core_ck", |
488 | .ops = &clkops_null, | 482 | .ops = &clkops_null, |
489 | .init = &omap2_init_clksel_parent, | 483 | .parent = &dpll3_m2_ck, |
490 | .clksel_reg = OMAP_CM_REGADDR(PLL_MOD, CM_IDLEST), | 484 | .recalc = &followparent_recalc, |
491 | .clksel_mask = OMAP3430_ST_CORE_CLK_MASK, | ||
492 | .clksel = core_ck_clksel, | ||
493 | .recalc = &omap2_clksel_recalc, | ||
494 | }; | ||
495 | |||
496 | static const struct clksel dpll3_m2x2_ck_clksel[] = { | ||
497 | { .parent = &sys_ck, .rates = dpll_bypass_rates }, | ||
498 | { .parent = &dpll3_x2_ck, .rates = dpll_locked_rates }, | ||
499 | { .parent = NULL } | ||
500 | }; | 485 | }; |
501 | 486 | ||
502 | static struct clk dpll3_m2x2_ck = { | 487 | static struct clk dpll3_m2x2_ck = { |
503 | .name = "dpll3_m2x2_ck", | 488 | .name = "dpll3_m2x2_ck", |
504 | .ops = &clkops_null, | 489 | .ops = &clkops_null, |
505 | .init = &omap2_init_clksel_parent, | 490 | .parent = &dpll3_x2_ck, |
506 | .clksel_reg = OMAP_CM_REGADDR(PLL_MOD, CM_IDLEST), | ||
507 | .clksel_mask = OMAP3430_ST_CORE_CLK_MASK, | ||
508 | .clksel = dpll3_m2x2_ck_clksel, | ||
509 | .clkdm_name = "dpll3_clkdm", | 491 | .clkdm_name = "dpll3_clkdm", |
510 | .recalc = &omap2_clksel_recalc, | 492 | .recalc = &followparent_recalc, |
511 | }; | 493 | }; |
512 | 494 | ||
513 | /* The PWRDN bit is apparently only available on 3430ES2 and above */ | 495 | /* The PWRDN bit is apparently only available on 3430ES2 and above */ |
@@ -541,22 +523,12 @@ static struct clk dpll3_m3x2_ck = { | |||
541 | .recalc = &omap3_clkoutx2_recalc, | 523 | .recalc = &omap3_clkoutx2_recalc, |
542 | }; | 524 | }; |
543 | 525 | ||
544 | static const struct clksel emu_core_alwon_ck_clksel[] = { | ||
545 | { .parent = &sys_ck, .rates = dpll_bypass_rates }, | ||
546 | { .parent = &dpll3_m3x2_ck, .rates = dpll_locked_rates }, | ||
547 | { .parent = NULL } | ||
548 | }; | ||
549 | |||
550 | static struct clk emu_core_alwon_ck = { | 526 | static struct clk emu_core_alwon_ck = { |
551 | .name = "emu_core_alwon_ck", | 527 | .name = "emu_core_alwon_ck", |
552 | .ops = &clkops_null, | 528 | .ops = &clkops_null, |
553 | .parent = &dpll3_m3x2_ck, | 529 | .parent = &dpll3_m3x2_ck, |
554 | .init = &omap2_init_clksel_parent, | ||
555 | .clksel_reg = OMAP_CM_REGADDR(PLL_MOD, CM_IDLEST), | ||
556 | .clksel_mask = OMAP3430_ST_CORE_CLK_MASK, | ||
557 | .clksel = emu_core_alwon_ck_clksel, | ||
558 | .clkdm_name = "dpll3_clkdm", | 530 | .clkdm_name = "dpll3_clkdm", |
559 | .recalc = &omap2_clksel_recalc, | 531 | .recalc = &followparent_recalc, |
560 | }; | 532 | }; |
561 | 533 | ||
562 | /* DPLL4 */ | 534 | /* DPLL4 */ |
@@ -566,6 +538,8 @@ static struct dpll_data dpll4_dd = { | |||
566 | .mult_div1_reg = OMAP_CM_REGADDR(PLL_MOD, CM_CLKSEL2), | 538 | .mult_div1_reg = OMAP_CM_REGADDR(PLL_MOD, CM_CLKSEL2), |
567 | .mult_mask = OMAP3430_PERIPH_DPLL_MULT_MASK, | 539 | .mult_mask = OMAP3430_PERIPH_DPLL_MULT_MASK, |
568 | .div1_mask = OMAP3430_PERIPH_DPLL_DIV_MASK, | 540 | .div1_mask = OMAP3430_PERIPH_DPLL_DIV_MASK, |
541 | .clk_bypass = &sys_ck, | ||
542 | .clk_ref = &sys_ck, | ||
569 | .freqsel_mask = OMAP3430_PERIPH_DPLL_FREQSEL_MASK, | 543 | .freqsel_mask = OMAP3430_PERIPH_DPLL_FREQSEL_MASK, |
570 | .control_reg = OMAP_CM_REGADDR(PLL_MOD, CM_CLKEN), | 544 | .control_reg = OMAP_CM_REGADDR(PLL_MOD, CM_CLKEN), |
571 | .enable_mask = OMAP3430_EN_PERIPH_DPLL_MASK, | 545 | .enable_mask = OMAP3430_EN_PERIPH_DPLL_MASK, |
@@ -637,12 +611,6 @@ static struct clk dpll4_m2x2_ck = { | |||
637 | .recalc = &omap3_clkoutx2_recalc, | 611 | .recalc = &omap3_clkoutx2_recalc, |
638 | }; | 612 | }; |
639 | 613 | ||
640 | static const struct clksel omap_96m_alwon_fck_clksel[] = { | ||
641 | { .parent = &sys_ck, .rates = dpll_bypass_rates }, | ||
642 | { .parent = &dpll4_m2x2_ck, .rates = dpll_locked_rates }, | ||
643 | { .parent = NULL } | ||
644 | }; | ||
645 | |||
646 | /* | 614 | /* |
647 | * DPLL4 generates DPLL4_M2X2_CLK which is then routed into the PRM as | 615 | * DPLL4 generates DPLL4_M2X2_CLK which is then routed into the PRM as |
648 | * PRM_96M_ALWON_(F)CLK. Two clocks then emerge from the PRM: | 616 | * PRM_96M_ALWON_(F)CLK. Two clocks then emerge from the PRM: |
@@ -653,11 +621,7 @@ static struct clk omap_96m_alwon_fck = { | |||
653 | .name = "omap_96m_alwon_fck", | 621 | .name = "omap_96m_alwon_fck", |
654 | .ops = &clkops_null, | 622 | .ops = &clkops_null, |
655 | .parent = &dpll4_m2x2_ck, | 623 | .parent = &dpll4_m2x2_ck, |
656 | .init = &omap2_init_clksel_parent, | 624 | .recalc = &followparent_recalc, |
657 | .clksel_reg = OMAP_CM_REGADDR(PLL_MOD, CM_IDLEST), | ||
658 | .clksel_mask = OMAP3430_ST_PERIPH_CLK_MASK, | ||
659 | .clksel = omap_96m_alwon_fck_clksel, | ||
660 | .recalc = &omap2_clksel_recalc, | ||
661 | }; | 625 | }; |
662 | 626 | ||
663 | static struct clk cm_96m_fck = { | 627 | static struct clk cm_96m_fck = { |
@@ -720,23 +684,6 @@ static struct clk dpll4_m3x2_ck = { | |||
720 | .recalc = &omap3_clkoutx2_recalc, | 684 | .recalc = &omap3_clkoutx2_recalc, |
721 | }; | 685 | }; |
722 | 686 | ||
723 | static const struct clksel virt_omap_54m_fck_clksel[] = { | ||
724 | { .parent = &sys_ck, .rates = dpll_bypass_rates }, | ||
725 | { .parent = &dpll4_m3x2_ck, .rates = dpll_locked_rates }, | ||
726 | { .parent = NULL } | ||
727 | }; | ||
728 | |||
729 | static struct clk virt_omap_54m_fck = { | ||
730 | .name = "virt_omap_54m_fck", | ||
731 | .ops = &clkops_null, | ||
732 | .parent = &dpll4_m3x2_ck, | ||
733 | .init = &omap2_init_clksel_parent, | ||
734 | .clksel_reg = OMAP_CM_REGADDR(PLL_MOD, CM_IDLEST), | ||
735 | .clksel_mask = OMAP3430_ST_PERIPH_CLK_MASK, | ||
736 | .clksel = virt_omap_54m_fck_clksel, | ||
737 | .recalc = &omap2_clksel_recalc, | ||
738 | }; | ||
739 | |||
740 | static const struct clksel_rate omap_54m_d4m3x2_rates[] = { | 687 | static const struct clksel_rate omap_54m_d4m3x2_rates[] = { |
741 | { .div = 1, .val = 0, .flags = RATE_IN_343X | DEFAULT_RATE }, | 688 | { .div = 1, .val = 0, .flags = RATE_IN_343X | DEFAULT_RATE }, |
742 | { .div = 0 } | 689 | { .div = 0 } |
@@ -748,7 +695,7 @@ static const struct clksel_rate omap_54m_alt_rates[] = { | |||
748 | }; | 695 | }; |
749 | 696 | ||
750 | static const struct clksel omap_54m_clksel[] = { | 697 | static const struct clksel omap_54m_clksel[] = { |
751 | { .parent = &virt_omap_54m_fck, .rates = omap_54m_d4m3x2_rates }, | 698 | { .parent = &dpll4_m3x2_ck, .rates = omap_54m_d4m3x2_rates }, |
752 | { .parent = &sys_altclk, .rates = omap_54m_alt_rates }, | 699 | { .parent = &sys_altclk, .rates = omap_54m_alt_rates }, |
753 | { .parent = NULL } | 700 | { .parent = NULL } |
754 | }; | 701 | }; |
@@ -891,6 +838,8 @@ static struct dpll_data dpll5_dd = { | |||
891 | .mult_div1_reg = OMAP_CM_REGADDR(PLL_MOD, OMAP3430ES2_CM_CLKSEL4), | 838 | .mult_div1_reg = OMAP_CM_REGADDR(PLL_MOD, OMAP3430ES2_CM_CLKSEL4), |
892 | .mult_mask = OMAP3430ES2_PERIPH2_DPLL_MULT_MASK, | 839 | .mult_mask = OMAP3430ES2_PERIPH2_DPLL_MULT_MASK, |
893 | .div1_mask = OMAP3430ES2_PERIPH2_DPLL_DIV_MASK, | 840 | .div1_mask = OMAP3430ES2_PERIPH2_DPLL_DIV_MASK, |
841 | .clk_bypass = &sys_ck, | ||
842 | .clk_ref = &sys_ck, | ||
894 | .freqsel_mask = OMAP3430ES2_PERIPH2_DPLL_FREQSEL_MASK, | 843 | .freqsel_mask = OMAP3430ES2_PERIPH2_DPLL_FREQSEL_MASK, |
895 | .control_reg = OMAP_CM_REGADDR(PLL_MOD, OMAP3430ES2_CM_CLKEN2), | 844 | .control_reg = OMAP_CM_REGADDR(PLL_MOD, OMAP3430ES2_CM_CLKEN2), |
896 | .enable_mask = OMAP3430ES2_EN_PERIPH2_DPLL_MASK, | 845 | .enable_mask = OMAP3430ES2_EN_PERIPH2_DPLL_MASK, |
@@ -936,23 +885,6 @@ static struct clk dpll5_m2_ck = { | |||
936 | .recalc = &omap2_clksel_recalc, | 885 | .recalc = &omap2_clksel_recalc, |
937 | }; | 886 | }; |
938 | 887 | ||
939 | static const struct clksel omap_120m_fck_clksel[] = { | ||
940 | { .parent = &sys_ck, .rates = dpll_bypass_rates }, | ||
941 | { .parent = &dpll5_m2_ck, .rates = dpll_locked_rates }, | ||
942 | { .parent = NULL } | ||
943 | }; | ||
944 | |||
945 | static struct clk omap_120m_fck = { | ||
946 | .name = "omap_120m_fck", | ||
947 | .ops = &clkops_null, | ||
948 | .parent = &dpll5_m2_ck, | ||
949 | .init = &omap2_init_clksel_parent, | ||
950 | .clksel_reg = OMAP_CM_REGADDR(PLL_MOD, CM_IDLEST2), | ||
951 | .clksel_mask = OMAP3430ES2_ST_PERIPH2_CLK_MASK, | ||
952 | .clksel = omap_120m_fck_clksel, | ||
953 | .recalc = &omap2_clksel_recalc, | ||
954 | }; | ||
955 | |||
956 | /* CM EXTERNAL CLOCK OUTPUTS */ | 888 | /* CM EXTERNAL CLOCK OUTPUTS */ |
957 | 889 | ||
958 | static const struct clksel_rate clkout2_src_core_rates[] = { | 890 | static const struct clksel_rate clkout2_src_core_rates[] = { |
@@ -1058,28 +990,12 @@ static struct clk dpll1_fck = { | |||
1058 | .recalc = &omap2_clksel_recalc, | 990 | .recalc = &omap2_clksel_recalc, |
1059 | }; | 991 | }; |
1060 | 992 | ||
1061 | /* | ||
1062 | * MPU clksel: | ||
1063 | * If DPLL1 is locked, mpu_ck derives from DPLL1; otherwise, mpu_ck | ||
1064 | * derives from the high-frequency bypass clock originating from DPLL3, | ||
1065 | * called 'dpll1_fck' | ||
1066 | */ | ||
1067 | static const struct clksel mpu_clksel[] = { | ||
1068 | { .parent = &dpll1_fck, .rates = dpll_bypass_rates }, | ||
1069 | { .parent = &dpll1_x2m2_ck, .rates = dpll_locked_rates }, | ||
1070 | { .parent = NULL } | ||
1071 | }; | ||
1072 | |||
1073 | static struct clk mpu_ck = { | 993 | static struct clk mpu_ck = { |
1074 | .name = "mpu_ck", | 994 | .name = "mpu_ck", |
1075 | .ops = &clkops_null, | 995 | .ops = &clkops_null, |
1076 | .parent = &dpll1_x2m2_ck, | 996 | .parent = &dpll1_x2m2_ck, |
1077 | .init = &omap2_init_clksel_parent, | ||
1078 | .clksel_reg = OMAP_CM_REGADDR(MPU_MOD, OMAP3430_CM_IDLEST_PLL), | ||
1079 | .clksel_mask = OMAP3430_ST_MPU_CLK_MASK, | ||
1080 | .clksel = mpu_clksel, | ||
1081 | .clkdm_name = "mpu_clkdm", | 997 | .clkdm_name = "mpu_clkdm", |
1082 | .recalc = &omap2_clksel_recalc, | 998 | .recalc = &followparent_recalc, |
1083 | }; | 999 | }; |
1084 | 1000 | ||
1085 | /* arm_fck is divided by two when DPLL1 locked; otherwise, passthrough mpu_ck */ | 1001 | /* arm_fck is divided by two when DPLL1 locked; otherwise, passthrough mpu_ck */ |
@@ -1129,19 +1045,6 @@ static struct clk dpll2_fck = { | |||
1129 | .recalc = &omap2_clksel_recalc, | 1045 | .recalc = &omap2_clksel_recalc, |
1130 | }; | 1046 | }; |
1131 | 1047 | ||
1132 | /* | ||
1133 | * IVA2 clksel: | ||
1134 | * If DPLL2 is locked, iva2_ck derives from DPLL2; otherwise, iva2_ck | ||
1135 | * derives from the high-frequency bypass clock originating from DPLL3, | ||
1136 | * called 'dpll2_fck' | ||
1137 | */ | ||
1138 | |||
1139 | static const struct clksel iva2_clksel[] = { | ||
1140 | { .parent = &dpll2_fck, .rates = dpll_bypass_rates }, | ||
1141 | { .parent = &dpll2_m2_ck, .rates = dpll_locked_rates }, | ||
1142 | { .parent = NULL } | ||
1143 | }; | ||
1144 | |||
1145 | static struct clk iva2_ck = { | 1048 | static struct clk iva2_ck = { |
1146 | .name = "iva2_ck", | 1049 | .name = "iva2_ck", |
1147 | .ops = &clkops_omap2_dflt_wait, | 1050 | .ops = &clkops_omap2_dflt_wait, |
@@ -1149,12 +1052,8 @@ static struct clk iva2_ck = { | |||
1149 | .init = &omap2_init_clksel_parent, | 1052 | .init = &omap2_init_clksel_parent, |
1150 | .enable_reg = OMAP_CM_REGADDR(OMAP3430_IVA2_MOD, CM_FCLKEN), | 1053 | .enable_reg = OMAP_CM_REGADDR(OMAP3430_IVA2_MOD, CM_FCLKEN), |
1151 | .enable_bit = OMAP3430_CM_FCLKEN_IVA2_EN_IVA2_SHIFT, | 1054 | .enable_bit = OMAP3430_CM_FCLKEN_IVA2_EN_IVA2_SHIFT, |
1152 | .clksel_reg = OMAP_CM_REGADDR(OMAP3430_IVA2_MOD, | ||
1153 | OMAP3430_CM_IDLEST_PLL), | ||
1154 | .clksel_mask = OMAP3430_ST_IVA2_CLK_MASK, | ||
1155 | .clksel = iva2_clksel, | ||
1156 | .clkdm_name = "iva2_clkdm", | 1055 | .clkdm_name = "iva2_clkdm", |
1157 | .recalc = &omap2_clksel_recalc, | 1056 | .recalc = &followparent_recalc, |
1158 | }; | 1057 | }; |
1159 | 1058 | ||
1160 | /* Common interface clocks */ | 1059 | /* Common interface clocks */ |
@@ -1384,7 +1283,7 @@ static struct clk ts_fck = { | |||
1384 | static struct clk usbtll_fck = { | 1283 | static struct clk usbtll_fck = { |
1385 | .name = "usbtll_fck", | 1284 | .name = "usbtll_fck", |
1386 | .ops = &clkops_omap2_dflt, | 1285 | .ops = &clkops_omap2_dflt, |
1387 | .parent = &omap_120m_fck, | 1286 | .parent = &dpll5_m2_ck, |
1388 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, OMAP3430ES2_CM_FCLKEN3), | 1287 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, OMAP3430ES2_CM_FCLKEN3), |
1389 | .enable_bit = OMAP3430ES2_EN_USBTLL_SHIFT, | 1288 | .enable_bit = OMAP3430ES2_EN_USBTLL_SHIFT, |
1390 | .recalc = &followparent_recalc, | 1289 | .recalc = &followparent_recalc, |
@@ -2094,24 +1993,14 @@ static struct clk des1_ick = { | |||
2094 | }; | 1993 | }; |
2095 | 1994 | ||
2096 | /* DSS */ | 1995 | /* DSS */ |
2097 | static const struct clksel dss1_alwon_fck_clksel[] = { | ||
2098 | { .parent = &sys_ck, .rates = dpll_bypass_rates }, | ||
2099 | { .parent = &dpll4_m4x2_ck, .rates = dpll_locked_rates }, | ||
2100 | { .parent = NULL } | ||
2101 | }; | ||
2102 | |||
2103 | static struct clk dss1_alwon_fck = { | 1996 | static struct clk dss1_alwon_fck = { |
2104 | .name = "dss1_alwon_fck", | 1997 | .name = "dss1_alwon_fck", |
2105 | .ops = &clkops_omap2_dflt, | 1998 | .ops = &clkops_omap2_dflt, |
2106 | .parent = &dpll4_m4x2_ck, | 1999 | .parent = &dpll4_m4x2_ck, |
2107 | .init = &omap2_init_clksel_parent, | ||
2108 | .enable_reg = OMAP_CM_REGADDR(OMAP3430_DSS_MOD, CM_FCLKEN), | 2000 | .enable_reg = OMAP_CM_REGADDR(OMAP3430_DSS_MOD, CM_FCLKEN), |
2109 | .enable_bit = OMAP3430_EN_DSS1_SHIFT, | 2001 | .enable_bit = OMAP3430_EN_DSS1_SHIFT, |
2110 | .clksel_reg = OMAP_CM_REGADDR(PLL_MOD, CM_IDLEST), | ||
2111 | .clksel_mask = OMAP3430_ST_PERIPH_CLK_MASK, | ||
2112 | .clksel = dss1_alwon_fck_clksel, | ||
2113 | .clkdm_name = "dss_clkdm", | 2002 | .clkdm_name = "dss_clkdm", |
2114 | .recalc = &omap2_clksel_recalc, | 2003 | .recalc = &followparent_recalc, |
2115 | }; | 2004 | }; |
2116 | 2005 | ||
2117 | static struct clk dss_tv_fck = { | 2006 | static struct clk dss_tv_fck = { |
@@ -2161,24 +2050,14 @@ static struct clk dss_ick = { | |||
2161 | 2050 | ||
2162 | /* CAM */ | 2051 | /* CAM */ |
2163 | 2052 | ||
2164 | static const struct clksel cam_mclk_clksel[] = { | ||
2165 | { .parent = &sys_ck, .rates = dpll_bypass_rates }, | ||
2166 | { .parent = &dpll4_m5x2_ck, .rates = dpll_locked_rates }, | ||
2167 | { .parent = NULL } | ||
2168 | }; | ||
2169 | |||
2170 | static struct clk cam_mclk = { | 2053 | static struct clk cam_mclk = { |
2171 | .name = "cam_mclk", | 2054 | .name = "cam_mclk", |
2172 | .ops = &clkops_omap2_dflt_wait, | 2055 | .ops = &clkops_omap2_dflt_wait, |
2173 | .parent = &dpll4_m5x2_ck, | 2056 | .parent = &dpll4_m5x2_ck, |
2174 | .init = &omap2_init_clksel_parent, | ||
2175 | .clksel_reg = OMAP_CM_REGADDR(PLL_MOD, CM_IDLEST), | ||
2176 | .clksel_mask = OMAP3430_ST_PERIPH_CLK_MASK, | ||
2177 | .clksel = cam_mclk_clksel, | ||
2178 | .enable_reg = OMAP_CM_REGADDR(OMAP3430_CAM_MOD, CM_FCLKEN), | 2057 | .enable_reg = OMAP_CM_REGADDR(OMAP3430_CAM_MOD, CM_FCLKEN), |
2179 | .enable_bit = OMAP3430_EN_CAM_SHIFT, | 2058 | .enable_bit = OMAP3430_EN_CAM_SHIFT, |
2180 | .clkdm_name = "cam_clkdm", | 2059 | .clkdm_name = "cam_clkdm", |
2181 | .recalc = &omap2_clksel_recalc, | 2060 | .recalc = &followparent_recalc, |
2182 | }; | 2061 | }; |
2183 | 2062 | ||
2184 | static struct clk cam_ick = { | 2063 | static struct clk cam_ick = { |
@@ -2209,7 +2088,7 @@ static struct clk csi2_96m_fck = { | |||
2209 | static struct clk usbhost_120m_fck = { | 2088 | static struct clk usbhost_120m_fck = { |
2210 | .name = "usbhost_120m_fck", | 2089 | .name = "usbhost_120m_fck", |
2211 | .ops = &clkops_omap2_dflt_wait, | 2090 | .ops = &clkops_omap2_dflt_wait, |
2212 | .parent = &omap_120m_fck, | 2091 | .parent = &dpll5_m2_ck, |
2213 | .init = &omap2_init_clk_clkdm, | 2092 | .init = &omap2_init_clk_clkdm, |
2214 | .enable_reg = OMAP_CM_REGADDR(OMAP3430ES2_USBHOST_MOD, CM_FCLKEN), | 2093 | .enable_reg = OMAP_CM_REGADDR(OMAP3430ES2_USBHOST_MOD, CM_FCLKEN), |
2215 | .enable_bit = OMAP3430ES2_EN_USBHOST2_SHIFT, | 2094 | .enable_bit = OMAP3430ES2_EN_USBHOST2_SHIFT, |
@@ -2260,7 +2139,7 @@ static const struct clksel_rate usim_120m_rates[] = { | |||
2260 | 2139 | ||
2261 | static const struct clksel usim_clksel[] = { | 2140 | static const struct clksel usim_clksel[] = { |
2262 | { .parent = &omap_96m_fck, .rates = usim_96m_rates }, | 2141 | { .parent = &omap_96m_fck, .rates = usim_96m_rates }, |
2263 | { .parent = &omap_120m_fck, .rates = usim_120m_rates }, | 2142 | { .parent = &dpll5_m2_ck, .rates = usim_120m_rates }, |
2264 | { .parent = &sys_ck, .rates = div2_rates }, | 2143 | { .parent = &sys_ck, .rates = div2_rates }, |
2265 | { .parent = NULL }, | 2144 | { .parent = NULL }, |
2266 | }; | 2145 | }; |