diff options
Diffstat (limited to 'arch/arm/mach-omap2/clock2420_data.c')
-rw-r--r-- | arch/arm/mach-omap2/clock2420_data.c | 221 |
1 files changed, 122 insertions, 99 deletions
diff --git a/arch/arm/mach-omap2/clock2420_data.c b/arch/arm/mach-omap2/clock2420_data.c index 0a992bc8d0d8..b6f65d4ac97d 100644 --- a/arch/arm/mach-omap2/clock2420_data.c +++ b/arch/arm/mach-omap2/clock2420_data.c | |||
@@ -1,12 +1,12 @@ | |||
1 | /* | 1 | /* |
2 | * linux/arch/arm/mach-omap2/clock2420_data.c | 2 | * OMAP2420 clock data |
3 | * | 3 | * |
4 | * Copyright (C) 2005-2009 Texas Instruments, Inc. | 4 | * Copyright (C) 2005-2009 Texas Instruments, Inc. |
5 | * Copyright (C) 2004-2010 Nokia Corporation | 5 | * Copyright (C) 2004-2011 Nokia Corporation |
6 | * | 6 | * |
7 | * Contacts: | 7 | * Contacts: |
8 | * Richard Woodruff <r-woodruff2@ti.com> | 8 | * Richard Woodruff <r-woodruff2@ti.com> |
9 | * Paul Walmsley | 9 | * Paul Walmsley |
10 | * | 10 | * |
11 | * This program is free software; you can redistribute it and/or modify | 11 | * This program is free software; you can redistribute it and/or modify |
12 | * it under the terms of the GNU General Public License version 2 as | 12 | * it under the terms of the GNU General Public License version 2 as |
@@ -34,18 +34,15 @@ | |||
34 | /* | 34 | /* |
35 | * 2420 clock tree. | 35 | * 2420 clock tree. |
36 | * | 36 | * |
37 | * NOTE:In many cases here we are assigning a 'default' parent. In many | 37 | * NOTE:In many cases here we are assigning a 'default' parent. In |
38 | * cases the parent is selectable. The get/set parent calls will also | 38 | * many cases the parent is selectable. The set parent calls will |
39 | * switch sources. | 39 | * also switch sources. |
40 | * | ||
41 | * Many some clocks say always_enabled, but they can be auto idled for | ||
42 | * power savings. They will always be available upon clock request. | ||
43 | * | 40 | * |
44 | * Several sources are given initial rates which may be wrong, this will | 41 | * Several sources are given initial rates which may be wrong, this will |
45 | * be fixed up in the init func. | 42 | * be fixed up in the init func. |
46 | * | 43 | * |
47 | * Things are broadly separated below by clock domains. It is | 44 | * Things are broadly separated below by clock domains. It is |
48 | * noteworthy that most periferals have dependencies on multiple clock | 45 | * noteworthy that most peripherals have dependencies on multiple clock |
49 | * domains. Many get their interface clocks from the L4 domain, but get | 46 | * domains. Many get their interface clocks from the L4 domain, but get |
50 | * functional clocks from fixed sources or other core domain derived | 47 | * functional clocks from fixed sources or other core domain derived |
51 | * clocks. | 48 | * clocks. |
@@ -55,7 +52,7 @@ | |||
55 | static struct clk func_32k_ck = { | 52 | static struct clk func_32k_ck = { |
56 | .name = "func_32k_ck", | 53 | .name = "func_32k_ck", |
57 | .ops = &clkops_null, | 54 | .ops = &clkops_null, |
58 | .rate = 32000, | 55 | .rate = 32768, |
59 | .clkdm_name = "wkup_clkdm", | 56 | .clkdm_name = "wkup_clkdm", |
60 | }; | 57 | }; |
61 | 58 | ||
@@ -116,7 +113,6 @@ static struct dpll_data dpll_dd = { | |||
116 | .max_multiplier = 1023, | 113 | .max_multiplier = 1023, |
117 | .min_divider = 1, | 114 | .min_divider = 1, |
118 | .max_divider = 16, | 115 | .max_divider = 16, |
119 | .rate_tolerance = DEFAULT_DPLL_RATE_TOLERANCE | ||
120 | }; | 116 | }; |
121 | 117 | ||
122 | /* | 118 | /* |
@@ -125,7 +121,7 @@ static struct dpll_data dpll_dd = { | |||
125 | */ | 121 | */ |
126 | static struct clk dpll_ck = { | 122 | static struct clk dpll_ck = { |
127 | .name = "dpll_ck", | 123 | .name = "dpll_ck", |
128 | .ops = &clkops_null, | 124 | .ops = &clkops_omap2xxx_dpll_ops, |
129 | .parent = &sys_ck, /* Can be func_32k also */ | 125 | .parent = &sys_ck, /* Can be func_32k also */ |
130 | .dpll_data = &dpll_dd, | 126 | .dpll_data = &dpll_dd, |
131 | .clkdm_name = "wkup_clkdm", | 127 | .clkdm_name = "wkup_clkdm", |
@@ -455,36 +451,22 @@ static struct clk dsp_fck = { | |||
455 | .recalc = &omap2_clksel_recalc, | 451 | .recalc = &omap2_clksel_recalc, |
456 | }; | 452 | }; |
457 | 453 | ||
458 | /* DSP interface clock */ | 454 | static const struct clksel dsp_ick_clksel[] = { |
459 | static const struct clksel_rate dsp_irate_ick_rates[] = { | 455 | { .parent = &dsp_fck, .rates = dsp_ick_rates }, |
460 | { .div = 1, .val = 1, .flags = RATE_IN_24XX }, | ||
461 | { .div = 2, .val = 2, .flags = RATE_IN_24XX }, | ||
462 | { .div = 0 }, | ||
463 | }; | ||
464 | |||
465 | static const struct clksel dsp_irate_ick_clksel[] = { | ||
466 | { .parent = &dsp_fck, .rates = dsp_irate_ick_rates }, | ||
467 | { .parent = NULL } | 456 | { .parent = NULL } |
468 | }; | 457 | }; |
469 | 458 | ||
470 | /* This clock does not exist as such in the TRM. */ | ||
471 | static struct clk dsp_irate_ick = { | ||
472 | .name = "dsp_irate_ick", | ||
473 | .ops = &clkops_null, | ||
474 | .parent = &dsp_fck, | ||
475 | .clksel_reg = OMAP_CM_REGADDR(OMAP24XX_DSP_MOD, CM_CLKSEL), | ||
476 | .clksel_mask = OMAP24XX_CLKSEL_DSP_IF_MASK, | ||
477 | .clksel = dsp_irate_ick_clksel, | ||
478 | .recalc = &omap2_clksel_recalc, | ||
479 | }; | ||
480 | |||
481 | /* 2420 only */ | ||
482 | static struct clk dsp_ick = { | 459 | static struct clk dsp_ick = { |
483 | .name = "dsp_ick", /* apparently ipi and isp */ | 460 | .name = "dsp_ick", /* apparently ipi and isp */ |
484 | .ops = &clkops_omap2_dflt_wait, | 461 | .ops = &clkops_omap2_iclk_dflt_wait, |
485 | .parent = &dsp_irate_ick, | 462 | .parent = &dsp_fck, |
463 | .clkdm_name = "dsp_clkdm", | ||
486 | .enable_reg = OMAP_CM_REGADDR(OMAP24XX_DSP_MOD, CM_ICLKEN), | 464 | .enable_reg = OMAP_CM_REGADDR(OMAP24XX_DSP_MOD, CM_ICLKEN), |
487 | .enable_bit = OMAP2420_EN_DSP_IPI_SHIFT, /* for ipi */ | 465 | .enable_bit = OMAP2420_EN_DSP_IPI_SHIFT, /* for ipi */ |
466 | .clksel_reg = OMAP_CM_REGADDR(OMAP24XX_DSP_MOD, CM_CLKSEL), | ||
467 | .clksel_mask = OMAP24XX_CLKSEL_DSP_IF_MASK, | ||
468 | .clksel = dsp_ick_clksel, | ||
469 | .recalc = &omap2_clksel_recalc, | ||
488 | }; | 470 | }; |
489 | 471 | ||
490 | /* | 472 | /* |
@@ -579,7 +561,7 @@ static const struct clksel usb_l4_ick_clksel[] = { | |||
579 | /* It is unclear from TRM whether usb_l4_ick is really in L3 or L4 clkdm */ | 561 | /* It is unclear from TRM whether usb_l4_ick is really in L3 or L4 clkdm */ |
580 | static struct clk usb_l4_ick = { /* FS-USB interface clock */ | 562 | static struct clk usb_l4_ick = { /* FS-USB interface clock */ |
581 | .name = "usb_l4_ick", | 563 | .name = "usb_l4_ick", |
582 | .ops = &clkops_omap2_dflt_wait, | 564 | .ops = &clkops_omap2_iclk_dflt_wait, |
583 | .parent = &core_l3_ck, | 565 | .parent = &core_l3_ck, |
584 | .clkdm_name = "core_l4_clkdm", | 566 | .clkdm_name = "core_l4_clkdm", |
585 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN2), | 567 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN2), |
@@ -661,7 +643,7 @@ static struct clk ssi_ssr_sst_fck = { | |||
661 | */ | 643 | */ |
662 | static struct clk ssi_l4_ick = { | 644 | static struct clk ssi_l4_ick = { |
663 | .name = "ssi_l4_ick", | 645 | .name = "ssi_l4_ick", |
664 | .ops = &clkops_omap2_dflt_wait, | 646 | .ops = &clkops_omap2_iclk_dflt_wait, |
665 | .parent = &l4_ck, | 647 | .parent = &l4_ck, |
666 | .clkdm_name = "core_l4_clkdm", | 648 | .clkdm_name = "core_l4_clkdm", |
667 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN2), | 649 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN2), |
@@ -716,6 +698,7 @@ static struct clk gfx_2d_fck = { | |||
716 | .recalc = &omap2_clksel_recalc, | 698 | .recalc = &omap2_clksel_recalc, |
717 | }; | 699 | }; |
718 | 700 | ||
701 | /* This interface clock does not have a CM_AUTOIDLE bit */ | ||
719 | static struct clk gfx_ick = { | 702 | static struct clk gfx_ick = { |
720 | .name = "gfx_ick", /* From l3 */ | 703 | .name = "gfx_ick", /* From l3 */ |
721 | .ops = &clkops_omap2_dflt_wait, | 704 | .ops = &clkops_omap2_dflt_wait, |
@@ -763,7 +746,7 @@ static const struct clksel dss1_fck_clksel[] = { | |||
763 | 746 | ||
764 | static struct clk dss_ick = { /* Enables both L3,L4 ICLK's */ | 747 | static struct clk dss_ick = { /* Enables both L3,L4 ICLK's */ |
765 | .name = "dss_ick", | 748 | .name = "dss_ick", |
766 | .ops = &clkops_omap2_dflt, | 749 | .ops = &clkops_omap2_iclk_dflt, |
767 | .parent = &l4_ck, /* really both l3 and l4 */ | 750 | .parent = &l4_ck, /* really both l3 and l4 */ |
768 | .clkdm_name = "dss_clkdm", | 751 | .clkdm_name = "dss_clkdm", |
769 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), | 752 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), |
@@ -825,6 +808,14 @@ static struct clk dss_54m_fck = { /* Alt clk used in power management */ | |||
825 | .recalc = &followparent_recalc, | 808 | .recalc = &followparent_recalc, |
826 | }; | 809 | }; |
827 | 810 | ||
811 | static struct clk wu_l4_ick = { | ||
812 | .name = "wu_l4_ick", | ||
813 | .ops = &clkops_null, | ||
814 | .parent = &sys_ck, | ||
815 | .clkdm_name = "wkup_clkdm", | ||
816 | .recalc = &followparent_recalc, | ||
817 | }; | ||
818 | |||
828 | /* | 819 | /* |
829 | * CORE power domain ICLK & FCLK defines. | 820 | * CORE power domain ICLK & FCLK defines. |
830 | * Many of the these can have more than one possible parent. Entries | 821 | * Many of the these can have more than one possible parent. Entries |
@@ -845,9 +836,9 @@ static const struct clksel omap24xx_gpt_clksel[] = { | |||
845 | 836 | ||
846 | static struct clk gpt1_ick = { | 837 | static struct clk gpt1_ick = { |
847 | .name = "gpt1_ick", | 838 | .name = "gpt1_ick", |
848 | .ops = &clkops_omap2_dflt_wait, | 839 | .ops = &clkops_omap2_iclk_dflt_wait, |
849 | .parent = &l4_ck, | 840 | .parent = &wu_l4_ick, |
850 | .clkdm_name = "core_l4_clkdm", | 841 | .clkdm_name = "wkup_clkdm", |
851 | .enable_reg = OMAP_CM_REGADDR(WKUP_MOD, CM_ICLKEN), | 842 | .enable_reg = OMAP_CM_REGADDR(WKUP_MOD, CM_ICLKEN), |
852 | .enable_bit = OMAP24XX_EN_GPT1_SHIFT, | 843 | .enable_bit = OMAP24XX_EN_GPT1_SHIFT, |
853 | .recalc = &followparent_recalc, | 844 | .recalc = &followparent_recalc, |
@@ -871,7 +862,7 @@ static struct clk gpt1_fck = { | |||
871 | 862 | ||
872 | static struct clk gpt2_ick = { | 863 | static struct clk gpt2_ick = { |
873 | .name = "gpt2_ick", | 864 | .name = "gpt2_ick", |
874 | .ops = &clkops_omap2_dflt_wait, | 865 | .ops = &clkops_omap2_iclk_dflt_wait, |
875 | .parent = &l4_ck, | 866 | .parent = &l4_ck, |
876 | .clkdm_name = "core_l4_clkdm", | 867 | .clkdm_name = "core_l4_clkdm", |
877 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), | 868 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), |
@@ -895,7 +886,7 @@ static struct clk gpt2_fck = { | |||
895 | 886 | ||
896 | static struct clk gpt3_ick = { | 887 | static struct clk gpt3_ick = { |
897 | .name = "gpt3_ick", | 888 | .name = "gpt3_ick", |
898 | .ops = &clkops_omap2_dflt_wait, | 889 | .ops = &clkops_omap2_iclk_dflt_wait, |
899 | .parent = &l4_ck, | 890 | .parent = &l4_ck, |
900 | .clkdm_name = "core_l4_clkdm", | 891 | .clkdm_name = "core_l4_clkdm", |
901 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), | 892 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), |
@@ -919,7 +910,7 @@ static struct clk gpt3_fck = { | |||
919 | 910 | ||
920 | static struct clk gpt4_ick = { | 911 | static struct clk gpt4_ick = { |
921 | .name = "gpt4_ick", | 912 | .name = "gpt4_ick", |
922 | .ops = &clkops_omap2_dflt_wait, | 913 | .ops = &clkops_omap2_iclk_dflt_wait, |
923 | .parent = &l4_ck, | 914 | .parent = &l4_ck, |
924 | .clkdm_name = "core_l4_clkdm", | 915 | .clkdm_name = "core_l4_clkdm", |
925 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), | 916 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), |
@@ -943,7 +934,7 @@ static struct clk gpt4_fck = { | |||
943 | 934 | ||
944 | static struct clk gpt5_ick = { | 935 | static struct clk gpt5_ick = { |
945 | .name = "gpt5_ick", | 936 | .name = "gpt5_ick", |
946 | .ops = &clkops_omap2_dflt_wait, | 937 | .ops = &clkops_omap2_iclk_dflt_wait, |
947 | .parent = &l4_ck, | 938 | .parent = &l4_ck, |
948 | .clkdm_name = "core_l4_clkdm", | 939 | .clkdm_name = "core_l4_clkdm", |
949 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), | 940 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), |
@@ -967,7 +958,7 @@ static struct clk gpt5_fck = { | |||
967 | 958 | ||
968 | static struct clk gpt6_ick = { | 959 | static struct clk gpt6_ick = { |
969 | .name = "gpt6_ick", | 960 | .name = "gpt6_ick", |
970 | .ops = &clkops_omap2_dflt_wait, | 961 | .ops = &clkops_omap2_iclk_dflt_wait, |
971 | .parent = &l4_ck, | 962 | .parent = &l4_ck, |
972 | .clkdm_name = "core_l4_clkdm", | 963 | .clkdm_name = "core_l4_clkdm", |
973 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), | 964 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), |
@@ -991,8 +982,9 @@ static struct clk gpt6_fck = { | |||
991 | 982 | ||
992 | static struct clk gpt7_ick = { | 983 | static struct clk gpt7_ick = { |
993 | .name = "gpt7_ick", | 984 | .name = "gpt7_ick", |
994 | .ops = &clkops_omap2_dflt_wait, | 985 | .ops = &clkops_omap2_iclk_dflt_wait, |
995 | .parent = &l4_ck, | 986 | .parent = &l4_ck, |
987 | .clkdm_name = "core_l4_clkdm", | ||
996 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), | 988 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), |
997 | .enable_bit = OMAP24XX_EN_GPT7_SHIFT, | 989 | .enable_bit = OMAP24XX_EN_GPT7_SHIFT, |
998 | .recalc = &followparent_recalc, | 990 | .recalc = &followparent_recalc, |
@@ -1014,7 +1006,7 @@ static struct clk gpt7_fck = { | |||
1014 | 1006 | ||
1015 | static struct clk gpt8_ick = { | 1007 | static struct clk gpt8_ick = { |
1016 | .name = "gpt8_ick", | 1008 | .name = "gpt8_ick", |
1017 | .ops = &clkops_omap2_dflt_wait, | 1009 | .ops = &clkops_omap2_iclk_dflt_wait, |
1018 | .parent = &l4_ck, | 1010 | .parent = &l4_ck, |
1019 | .clkdm_name = "core_l4_clkdm", | 1011 | .clkdm_name = "core_l4_clkdm", |
1020 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), | 1012 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), |
@@ -1038,7 +1030,7 @@ static struct clk gpt8_fck = { | |||
1038 | 1030 | ||
1039 | static struct clk gpt9_ick = { | 1031 | static struct clk gpt9_ick = { |
1040 | .name = "gpt9_ick", | 1032 | .name = "gpt9_ick", |
1041 | .ops = &clkops_omap2_dflt_wait, | 1033 | .ops = &clkops_omap2_iclk_dflt_wait, |
1042 | .parent = &l4_ck, | 1034 | .parent = &l4_ck, |
1043 | .clkdm_name = "core_l4_clkdm", | 1035 | .clkdm_name = "core_l4_clkdm", |
1044 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), | 1036 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), |
@@ -1062,7 +1054,7 @@ static struct clk gpt9_fck = { | |||
1062 | 1054 | ||
1063 | static struct clk gpt10_ick = { | 1055 | static struct clk gpt10_ick = { |
1064 | .name = "gpt10_ick", | 1056 | .name = "gpt10_ick", |
1065 | .ops = &clkops_omap2_dflt_wait, | 1057 | .ops = &clkops_omap2_iclk_dflt_wait, |
1066 | .parent = &l4_ck, | 1058 | .parent = &l4_ck, |
1067 | .clkdm_name = "core_l4_clkdm", | 1059 | .clkdm_name = "core_l4_clkdm", |
1068 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), | 1060 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), |
@@ -1086,7 +1078,7 @@ static struct clk gpt10_fck = { | |||
1086 | 1078 | ||
1087 | static struct clk gpt11_ick = { | 1079 | static struct clk gpt11_ick = { |
1088 | .name = "gpt11_ick", | 1080 | .name = "gpt11_ick", |
1089 | .ops = &clkops_omap2_dflt_wait, | 1081 | .ops = &clkops_omap2_iclk_dflt_wait, |
1090 | .parent = &l4_ck, | 1082 | .parent = &l4_ck, |
1091 | .clkdm_name = "core_l4_clkdm", | 1083 | .clkdm_name = "core_l4_clkdm", |
1092 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), | 1084 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), |
@@ -1110,7 +1102,7 @@ static struct clk gpt11_fck = { | |||
1110 | 1102 | ||
1111 | static struct clk gpt12_ick = { | 1103 | static struct clk gpt12_ick = { |
1112 | .name = "gpt12_ick", | 1104 | .name = "gpt12_ick", |
1113 | .ops = &clkops_omap2_dflt_wait, | 1105 | .ops = &clkops_omap2_iclk_dflt_wait, |
1114 | .parent = &l4_ck, | 1106 | .parent = &l4_ck, |
1115 | .clkdm_name = "core_l4_clkdm", | 1107 | .clkdm_name = "core_l4_clkdm", |
1116 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), | 1108 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), |
@@ -1134,7 +1126,7 @@ static struct clk gpt12_fck = { | |||
1134 | 1126 | ||
1135 | static struct clk mcbsp1_ick = { | 1127 | static struct clk mcbsp1_ick = { |
1136 | .name = "mcbsp1_ick", | 1128 | .name = "mcbsp1_ick", |
1137 | .ops = &clkops_omap2_dflt_wait, | 1129 | .ops = &clkops_omap2_iclk_dflt_wait, |
1138 | .parent = &l4_ck, | 1130 | .parent = &l4_ck, |
1139 | .clkdm_name = "core_l4_clkdm", | 1131 | .clkdm_name = "core_l4_clkdm", |
1140 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), | 1132 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), |
@@ -1174,7 +1166,7 @@ static struct clk mcbsp1_fck = { | |||
1174 | 1166 | ||
1175 | static struct clk mcbsp2_ick = { | 1167 | static struct clk mcbsp2_ick = { |
1176 | .name = "mcbsp2_ick", | 1168 | .name = "mcbsp2_ick", |
1177 | .ops = &clkops_omap2_dflt_wait, | 1169 | .ops = &clkops_omap2_iclk_dflt_wait, |
1178 | .parent = &l4_ck, | 1170 | .parent = &l4_ck, |
1179 | .clkdm_name = "core_l4_clkdm", | 1171 | .clkdm_name = "core_l4_clkdm", |
1180 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), | 1172 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), |
@@ -1198,7 +1190,7 @@ static struct clk mcbsp2_fck = { | |||
1198 | 1190 | ||
1199 | static struct clk mcspi1_ick = { | 1191 | static struct clk mcspi1_ick = { |
1200 | .name = "mcspi1_ick", | 1192 | .name = "mcspi1_ick", |
1201 | .ops = &clkops_omap2_dflt_wait, | 1193 | .ops = &clkops_omap2_iclk_dflt_wait, |
1202 | .parent = &l4_ck, | 1194 | .parent = &l4_ck, |
1203 | .clkdm_name = "core_l4_clkdm", | 1195 | .clkdm_name = "core_l4_clkdm", |
1204 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), | 1196 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), |
@@ -1218,7 +1210,7 @@ static struct clk mcspi1_fck = { | |||
1218 | 1210 | ||
1219 | static struct clk mcspi2_ick = { | 1211 | static struct clk mcspi2_ick = { |
1220 | .name = "mcspi2_ick", | 1212 | .name = "mcspi2_ick", |
1221 | .ops = &clkops_omap2_dflt_wait, | 1213 | .ops = &clkops_omap2_iclk_dflt_wait, |
1222 | .parent = &l4_ck, | 1214 | .parent = &l4_ck, |
1223 | .clkdm_name = "core_l4_clkdm", | 1215 | .clkdm_name = "core_l4_clkdm", |
1224 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), | 1216 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), |
@@ -1238,7 +1230,7 @@ static struct clk mcspi2_fck = { | |||
1238 | 1230 | ||
1239 | static struct clk uart1_ick = { | 1231 | static struct clk uart1_ick = { |
1240 | .name = "uart1_ick", | 1232 | .name = "uart1_ick", |
1241 | .ops = &clkops_omap2_dflt_wait, | 1233 | .ops = &clkops_omap2_iclk_dflt_wait, |
1242 | .parent = &l4_ck, | 1234 | .parent = &l4_ck, |
1243 | .clkdm_name = "core_l4_clkdm", | 1235 | .clkdm_name = "core_l4_clkdm", |
1244 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), | 1236 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), |
@@ -1258,7 +1250,7 @@ static struct clk uart1_fck = { | |||
1258 | 1250 | ||
1259 | static struct clk uart2_ick = { | 1251 | static struct clk uart2_ick = { |
1260 | .name = "uart2_ick", | 1252 | .name = "uart2_ick", |
1261 | .ops = &clkops_omap2_dflt_wait, | 1253 | .ops = &clkops_omap2_iclk_dflt_wait, |
1262 | .parent = &l4_ck, | 1254 | .parent = &l4_ck, |
1263 | .clkdm_name = "core_l4_clkdm", | 1255 | .clkdm_name = "core_l4_clkdm", |
1264 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), | 1256 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), |
@@ -1278,7 +1270,7 @@ static struct clk uart2_fck = { | |||
1278 | 1270 | ||
1279 | static struct clk uart3_ick = { | 1271 | static struct clk uart3_ick = { |
1280 | .name = "uart3_ick", | 1272 | .name = "uart3_ick", |
1281 | .ops = &clkops_omap2_dflt_wait, | 1273 | .ops = &clkops_omap2_iclk_dflt_wait, |
1282 | .parent = &l4_ck, | 1274 | .parent = &l4_ck, |
1283 | .clkdm_name = "core_l4_clkdm", | 1275 | .clkdm_name = "core_l4_clkdm", |
1284 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN2), | 1276 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN2), |
@@ -1298,9 +1290,9 @@ static struct clk uart3_fck = { | |||
1298 | 1290 | ||
1299 | static struct clk gpios_ick = { | 1291 | static struct clk gpios_ick = { |
1300 | .name = "gpios_ick", | 1292 | .name = "gpios_ick", |
1301 | .ops = &clkops_omap2_dflt_wait, | 1293 | .ops = &clkops_omap2_iclk_dflt_wait, |
1302 | .parent = &l4_ck, | 1294 | .parent = &wu_l4_ick, |
1303 | .clkdm_name = "core_l4_clkdm", | 1295 | .clkdm_name = "wkup_clkdm", |
1304 | .enable_reg = OMAP_CM_REGADDR(WKUP_MOD, CM_ICLKEN), | 1296 | .enable_reg = OMAP_CM_REGADDR(WKUP_MOD, CM_ICLKEN), |
1305 | .enable_bit = OMAP24XX_EN_GPIOS_SHIFT, | 1297 | .enable_bit = OMAP24XX_EN_GPIOS_SHIFT, |
1306 | .recalc = &followparent_recalc, | 1298 | .recalc = &followparent_recalc, |
@@ -1318,9 +1310,9 @@ static struct clk gpios_fck = { | |||
1318 | 1310 | ||
1319 | static struct clk mpu_wdt_ick = { | 1311 | static struct clk mpu_wdt_ick = { |
1320 | .name = "mpu_wdt_ick", | 1312 | .name = "mpu_wdt_ick", |
1321 | .ops = &clkops_omap2_dflt_wait, | 1313 | .ops = &clkops_omap2_iclk_dflt_wait, |
1322 | .parent = &l4_ck, | 1314 | .parent = &wu_l4_ick, |
1323 | .clkdm_name = "core_l4_clkdm", | 1315 | .clkdm_name = "wkup_clkdm", |
1324 | .enable_reg = OMAP_CM_REGADDR(WKUP_MOD, CM_ICLKEN), | 1316 | .enable_reg = OMAP_CM_REGADDR(WKUP_MOD, CM_ICLKEN), |
1325 | .enable_bit = OMAP24XX_EN_MPU_WDT_SHIFT, | 1317 | .enable_bit = OMAP24XX_EN_MPU_WDT_SHIFT, |
1326 | .recalc = &followparent_recalc, | 1318 | .recalc = &followparent_recalc, |
@@ -1338,10 +1330,10 @@ static struct clk mpu_wdt_fck = { | |||
1338 | 1330 | ||
1339 | static struct clk sync_32k_ick = { | 1331 | static struct clk sync_32k_ick = { |
1340 | .name = "sync_32k_ick", | 1332 | .name = "sync_32k_ick", |
1341 | .ops = &clkops_omap2_dflt_wait, | 1333 | .ops = &clkops_omap2_iclk_dflt_wait, |
1342 | .parent = &l4_ck, | 1334 | .parent = &wu_l4_ick, |
1335 | .clkdm_name = "wkup_clkdm", | ||
1343 | .flags = ENABLE_ON_INIT, | 1336 | .flags = ENABLE_ON_INIT, |
1344 | .clkdm_name = "core_l4_clkdm", | ||
1345 | .enable_reg = OMAP_CM_REGADDR(WKUP_MOD, CM_ICLKEN), | 1337 | .enable_reg = OMAP_CM_REGADDR(WKUP_MOD, CM_ICLKEN), |
1346 | .enable_bit = OMAP24XX_EN_32KSYNC_SHIFT, | 1338 | .enable_bit = OMAP24XX_EN_32KSYNC_SHIFT, |
1347 | .recalc = &followparent_recalc, | 1339 | .recalc = &followparent_recalc, |
@@ -1349,9 +1341,9 @@ static struct clk sync_32k_ick = { | |||
1349 | 1341 | ||
1350 | static struct clk wdt1_ick = { | 1342 | static struct clk wdt1_ick = { |
1351 | .name = "wdt1_ick", | 1343 | .name = "wdt1_ick", |
1352 | .ops = &clkops_omap2_dflt_wait, | 1344 | .ops = &clkops_omap2_iclk_dflt_wait, |
1353 | .parent = &l4_ck, | 1345 | .parent = &wu_l4_ick, |
1354 | .clkdm_name = "core_l4_clkdm", | 1346 | .clkdm_name = "wkup_clkdm", |
1355 | .enable_reg = OMAP_CM_REGADDR(WKUP_MOD, CM_ICLKEN), | 1347 | .enable_reg = OMAP_CM_REGADDR(WKUP_MOD, CM_ICLKEN), |
1356 | .enable_bit = OMAP24XX_EN_WDT1_SHIFT, | 1348 | .enable_bit = OMAP24XX_EN_WDT1_SHIFT, |
1357 | .recalc = &followparent_recalc, | 1349 | .recalc = &followparent_recalc, |
@@ -1359,10 +1351,10 @@ static struct clk wdt1_ick = { | |||
1359 | 1351 | ||
1360 | static struct clk omapctrl_ick = { | 1352 | static struct clk omapctrl_ick = { |
1361 | .name = "omapctrl_ick", | 1353 | .name = "omapctrl_ick", |
1362 | .ops = &clkops_omap2_dflt_wait, | 1354 | .ops = &clkops_omap2_iclk_dflt_wait, |
1363 | .parent = &l4_ck, | 1355 | .parent = &wu_l4_ick, |
1356 | .clkdm_name = "wkup_clkdm", | ||
1364 | .flags = ENABLE_ON_INIT, | 1357 | .flags = ENABLE_ON_INIT, |
1365 | .clkdm_name = "core_l4_clkdm", | ||
1366 | .enable_reg = OMAP_CM_REGADDR(WKUP_MOD, CM_ICLKEN), | 1358 | .enable_reg = OMAP_CM_REGADDR(WKUP_MOD, CM_ICLKEN), |
1367 | .enable_bit = OMAP24XX_EN_OMAPCTRL_SHIFT, | 1359 | .enable_bit = OMAP24XX_EN_OMAPCTRL_SHIFT, |
1368 | .recalc = &followparent_recalc, | 1360 | .recalc = &followparent_recalc, |
@@ -1370,7 +1362,7 @@ static struct clk omapctrl_ick = { | |||
1370 | 1362 | ||
1371 | static struct clk cam_ick = { | 1363 | static struct clk cam_ick = { |
1372 | .name = "cam_ick", | 1364 | .name = "cam_ick", |
1373 | .ops = &clkops_omap2_dflt, | 1365 | .ops = &clkops_omap2_iclk_dflt, |
1374 | .parent = &l4_ck, | 1366 | .parent = &l4_ck, |
1375 | .clkdm_name = "core_l4_clkdm", | 1367 | .clkdm_name = "core_l4_clkdm", |
1376 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), | 1368 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), |
@@ -1395,7 +1387,7 @@ static struct clk cam_fck = { | |||
1395 | 1387 | ||
1396 | static struct clk mailboxes_ick = { | 1388 | static struct clk mailboxes_ick = { |
1397 | .name = "mailboxes_ick", | 1389 | .name = "mailboxes_ick", |
1398 | .ops = &clkops_omap2_dflt_wait, | 1390 | .ops = &clkops_omap2_iclk_dflt_wait, |
1399 | .parent = &l4_ck, | 1391 | .parent = &l4_ck, |
1400 | .clkdm_name = "core_l4_clkdm", | 1392 | .clkdm_name = "core_l4_clkdm", |
1401 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), | 1393 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), |
@@ -1405,7 +1397,7 @@ static struct clk mailboxes_ick = { | |||
1405 | 1397 | ||
1406 | static struct clk wdt4_ick = { | 1398 | static struct clk wdt4_ick = { |
1407 | .name = "wdt4_ick", | 1399 | .name = "wdt4_ick", |
1408 | .ops = &clkops_omap2_dflt_wait, | 1400 | .ops = &clkops_omap2_iclk_dflt_wait, |
1409 | .parent = &l4_ck, | 1401 | .parent = &l4_ck, |
1410 | .clkdm_name = "core_l4_clkdm", | 1402 | .clkdm_name = "core_l4_clkdm", |
1411 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), | 1403 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), |
@@ -1425,7 +1417,7 @@ static struct clk wdt4_fck = { | |||
1425 | 1417 | ||
1426 | static struct clk wdt3_ick = { | 1418 | static struct clk wdt3_ick = { |
1427 | .name = "wdt3_ick", | 1419 | .name = "wdt3_ick", |
1428 | .ops = &clkops_omap2_dflt_wait, | 1420 | .ops = &clkops_omap2_iclk_dflt_wait, |
1429 | .parent = &l4_ck, | 1421 | .parent = &l4_ck, |
1430 | .clkdm_name = "core_l4_clkdm", | 1422 | .clkdm_name = "core_l4_clkdm", |
1431 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), | 1423 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), |
@@ -1445,7 +1437,7 @@ static struct clk wdt3_fck = { | |||
1445 | 1437 | ||
1446 | static struct clk mspro_ick = { | 1438 | static struct clk mspro_ick = { |
1447 | .name = "mspro_ick", | 1439 | .name = "mspro_ick", |
1448 | .ops = &clkops_omap2_dflt_wait, | 1440 | .ops = &clkops_omap2_iclk_dflt_wait, |
1449 | .parent = &l4_ck, | 1441 | .parent = &l4_ck, |
1450 | .clkdm_name = "core_l4_clkdm", | 1442 | .clkdm_name = "core_l4_clkdm", |
1451 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), | 1443 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), |
@@ -1465,7 +1457,7 @@ static struct clk mspro_fck = { | |||
1465 | 1457 | ||
1466 | static struct clk mmc_ick = { | 1458 | static struct clk mmc_ick = { |
1467 | .name = "mmc_ick", | 1459 | .name = "mmc_ick", |
1468 | .ops = &clkops_omap2_dflt_wait, | 1460 | .ops = &clkops_omap2_iclk_dflt_wait, |
1469 | .parent = &l4_ck, | 1461 | .parent = &l4_ck, |
1470 | .clkdm_name = "core_l4_clkdm", | 1462 | .clkdm_name = "core_l4_clkdm", |
1471 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), | 1463 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), |
@@ -1485,7 +1477,7 @@ static struct clk mmc_fck = { | |||
1485 | 1477 | ||
1486 | static struct clk fac_ick = { | 1478 | static struct clk fac_ick = { |
1487 | .name = "fac_ick", | 1479 | .name = "fac_ick", |
1488 | .ops = &clkops_omap2_dflt_wait, | 1480 | .ops = &clkops_omap2_iclk_dflt_wait, |
1489 | .parent = &l4_ck, | 1481 | .parent = &l4_ck, |
1490 | .clkdm_name = "core_l4_clkdm", | 1482 | .clkdm_name = "core_l4_clkdm", |
1491 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), | 1483 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), |
@@ -1505,7 +1497,7 @@ static struct clk fac_fck = { | |||
1505 | 1497 | ||
1506 | static struct clk eac_ick = { | 1498 | static struct clk eac_ick = { |
1507 | .name = "eac_ick", | 1499 | .name = "eac_ick", |
1508 | .ops = &clkops_omap2_dflt_wait, | 1500 | .ops = &clkops_omap2_iclk_dflt_wait, |
1509 | .parent = &l4_ck, | 1501 | .parent = &l4_ck, |
1510 | .clkdm_name = "core_l4_clkdm", | 1502 | .clkdm_name = "core_l4_clkdm", |
1511 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), | 1503 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), |
@@ -1525,7 +1517,7 @@ static struct clk eac_fck = { | |||
1525 | 1517 | ||
1526 | static struct clk hdq_ick = { | 1518 | static struct clk hdq_ick = { |
1527 | .name = "hdq_ick", | 1519 | .name = "hdq_ick", |
1528 | .ops = &clkops_omap2_dflt_wait, | 1520 | .ops = &clkops_omap2_iclk_dflt_wait, |
1529 | .parent = &l4_ck, | 1521 | .parent = &l4_ck, |
1530 | .clkdm_name = "core_l4_clkdm", | 1522 | .clkdm_name = "core_l4_clkdm", |
1531 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), | 1523 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), |
@@ -1545,7 +1537,7 @@ static struct clk hdq_fck = { | |||
1545 | 1537 | ||
1546 | static struct clk i2c2_ick = { | 1538 | static struct clk i2c2_ick = { |
1547 | .name = "i2c2_ick", | 1539 | .name = "i2c2_ick", |
1548 | .ops = &clkops_omap2_dflt_wait, | 1540 | .ops = &clkops_omap2_iclk_dflt_wait, |
1549 | .parent = &l4_ck, | 1541 | .parent = &l4_ck, |
1550 | .clkdm_name = "core_l4_clkdm", | 1542 | .clkdm_name = "core_l4_clkdm", |
1551 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), | 1543 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), |
@@ -1565,7 +1557,7 @@ static struct clk i2c2_fck = { | |||
1565 | 1557 | ||
1566 | static struct clk i2c1_ick = { | 1558 | static struct clk i2c1_ick = { |
1567 | .name = "i2c1_ick", | 1559 | .name = "i2c1_ick", |
1568 | .ops = &clkops_omap2_dflt_wait, | 1560 | .ops = &clkops_omap2_iclk_dflt_wait, |
1569 | .parent = &l4_ck, | 1561 | .parent = &l4_ck, |
1570 | .clkdm_name = "core_l4_clkdm", | 1562 | .clkdm_name = "core_l4_clkdm", |
1571 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), | 1563 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), |
@@ -1583,12 +1575,18 @@ static struct clk i2c1_fck = { | |||
1583 | .recalc = &followparent_recalc, | 1575 | .recalc = &followparent_recalc, |
1584 | }; | 1576 | }; |
1585 | 1577 | ||
1578 | /* | ||
1579 | * The enable_reg/enable_bit in this clock is only used for CM_AUTOIDLE | ||
1580 | * accesses derived from this data. | ||
1581 | */ | ||
1586 | static struct clk gpmc_fck = { | 1582 | static struct clk gpmc_fck = { |
1587 | .name = "gpmc_fck", | 1583 | .name = "gpmc_fck", |
1588 | .ops = &clkops_null, /* RMK: missing? */ | 1584 | .ops = &clkops_omap2_iclk_idle_only, |
1589 | .parent = &core_l3_ck, | 1585 | .parent = &core_l3_ck, |
1590 | .flags = ENABLE_ON_INIT, | 1586 | .flags = ENABLE_ON_INIT, |
1591 | .clkdm_name = "core_l3_clkdm", | 1587 | .clkdm_name = "core_l3_clkdm", |
1588 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN3), | ||
1589 | .enable_bit = OMAP24XX_AUTO_GPMC_SHIFT, | ||
1592 | .recalc = &followparent_recalc, | 1590 | .recalc = &followparent_recalc, |
1593 | }; | 1591 | }; |
1594 | 1592 | ||
@@ -1600,17 +1598,38 @@ static struct clk sdma_fck = { | |||
1600 | .recalc = &followparent_recalc, | 1598 | .recalc = &followparent_recalc, |
1601 | }; | 1599 | }; |
1602 | 1600 | ||
1601 | /* | ||
1602 | * The enable_reg/enable_bit in this clock is only used for CM_AUTOIDLE | ||
1603 | * accesses derived from this data. | ||
1604 | */ | ||
1603 | static struct clk sdma_ick = { | 1605 | static struct clk sdma_ick = { |
1604 | .name = "sdma_ick", | 1606 | .name = "sdma_ick", |
1605 | .ops = &clkops_null, /* RMK: missing? */ | 1607 | .ops = &clkops_omap2_iclk_idle_only, |
1606 | .parent = &l4_ck, | 1608 | .parent = &core_l3_ck, |
1609 | .clkdm_name = "core_l3_clkdm", | ||
1610 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN3), | ||
1611 | .enable_bit = OMAP24XX_AUTO_SDMA_SHIFT, | ||
1612 | .recalc = &followparent_recalc, | ||
1613 | }; | ||
1614 | |||
1615 | /* | ||
1616 | * The enable_reg/enable_bit in this clock is only used for CM_AUTOIDLE | ||
1617 | * accesses derived from this data. | ||
1618 | */ | ||
1619 | static struct clk sdrc_ick = { | ||
1620 | .name = "sdrc_ick", | ||
1621 | .ops = &clkops_omap2_iclk_idle_only, | ||
1622 | .parent = &core_l3_ck, | ||
1623 | .flags = ENABLE_ON_INIT, | ||
1607 | .clkdm_name = "core_l3_clkdm", | 1624 | .clkdm_name = "core_l3_clkdm", |
1625 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN3), | ||
1626 | .enable_bit = OMAP24XX_AUTO_SDRC_SHIFT, | ||
1608 | .recalc = &followparent_recalc, | 1627 | .recalc = &followparent_recalc, |
1609 | }; | 1628 | }; |
1610 | 1629 | ||
1611 | static struct clk vlynq_ick = { | 1630 | static struct clk vlynq_ick = { |
1612 | .name = "vlynq_ick", | 1631 | .name = "vlynq_ick", |
1613 | .ops = &clkops_omap2_dflt_wait, | 1632 | .ops = &clkops_omap2_iclk_dflt_wait, |
1614 | .parent = &core_l3_ck, | 1633 | .parent = &core_l3_ck, |
1615 | .clkdm_name = "core_l3_clkdm", | 1634 | .clkdm_name = "core_l3_clkdm", |
1616 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), | 1635 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), |
@@ -1659,7 +1678,7 @@ static struct clk vlynq_fck = { | |||
1659 | 1678 | ||
1660 | static struct clk des_ick = { | 1679 | static struct clk des_ick = { |
1661 | .name = "des_ick", | 1680 | .name = "des_ick", |
1662 | .ops = &clkops_omap2_dflt_wait, | 1681 | .ops = &clkops_omap2_iclk_dflt_wait, |
1663 | .parent = &l4_ck, | 1682 | .parent = &l4_ck, |
1664 | .clkdm_name = "core_l4_clkdm", | 1683 | .clkdm_name = "core_l4_clkdm", |
1665 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, OMAP24XX_CM_ICLKEN4), | 1684 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, OMAP24XX_CM_ICLKEN4), |
@@ -1669,7 +1688,7 @@ static struct clk des_ick = { | |||
1669 | 1688 | ||
1670 | static struct clk sha_ick = { | 1689 | static struct clk sha_ick = { |
1671 | .name = "sha_ick", | 1690 | .name = "sha_ick", |
1672 | .ops = &clkops_omap2_dflt_wait, | 1691 | .ops = &clkops_omap2_iclk_dflt_wait, |
1673 | .parent = &l4_ck, | 1692 | .parent = &l4_ck, |
1674 | .clkdm_name = "core_l4_clkdm", | 1693 | .clkdm_name = "core_l4_clkdm", |
1675 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, OMAP24XX_CM_ICLKEN4), | 1694 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, OMAP24XX_CM_ICLKEN4), |
@@ -1679,7 +1698,7 @@ static struct clk sha_ick = { | |||
1679 | 1698 | ||
1680 | static struct clk rng_ick = { | 1699 | static struct clk rng_ick = { |
1681 | .name = "rng_ick", | 1700 | .name = "rng_ick", |
1682 | .ops = &clkops_omap2_dflt_wait, | 1701 | .ops = &clkops_omap2_iclk_dflt_wait, |
1683 | .parent = &l4_ck, | 1702 | .parent = &l4_ck, |
1684 | .clkdm_name = "core_l4_clkdm", | 1703 | .clkdm_name = "core_l4_clkdm", |
1685 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, OMAP24XX_CM_ICLKEN4), | 1704 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, OMAP24XX_CM_ICLKEN4), |
@@ -1689,7 +1708,7 @@ static struct clk rng_ick = { | |||
1689 | 1708 | ||
1690 | static struct clk aes_ick = { | 1709 | static struct clk aes_ick = { |
1691 | .name = "aes_ick", | 1710 | .name = "aes_ick", |
1692 | .ops = &clkops_omap2_dflt_wait, | 1711 | .ops = &clkops_omap2_iclk_dflt_wait, |
1693 | .parent = &l4_ck, | 1712 | .parent = &l4_ck, |
1694 | .clkdm_name = "core_l4_clkdm", | 1713 | .clkdm_name = "core_l4_clkdm", |
1695 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, OMAP24XX_CM_ICLKEN4), | 1714 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, OMAP24XX_CM_ICLKEN4), |
@@ -1699,7 +1718,7 @@ static struct clk aes_ick = { | |||
1699 | 1718 | ||
1700 | static struct clk pka_ick = { | 1719 | static struct clk pka_ick = { |
1701 | .name = "pka_ick", | 1720 | .name = "pka_ick", |
1702 | .ops = &clkops_omap2_dflt_wait, | 1721 | .ops = &clkops_omap2_iclk_dflt_wait, |
1703 | .parent = &l4_ck, | 1722 | .parent = &l4_ck, |
1704 | .clkdm_name = "core_l4_clkdm", | 1723 | .clkdm_name = "core_l4_clkdm", |
1705 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, OMAP24XX_CM_ICLKEN4), | 1724 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, OMAP24XX_CM_ICLKEN4), |
@@ -1777,7 +1796,6 @@ static struct omap_clk omap2420_clks[] = { | |||
1777 | CLK(NULL, "mpu_ck", &mpu_ck, CK_242X), | 1796 | CLK(NULL, "mpu_ck", &mpu_ck, CK_242X), |
1778 | /* dsp domain clocks */ | 1797 | /* dsp domain clocks */ |
1779 | CLK(NULL, "dsp_fck", &dsp_fck, CK_242X), | 1798 | CLK(NULL, "dsp_fck", &dsp_fck, CK_242X), |
1780 | CLK(NULL, "dsp_irate_ick", &dsp_irate_ick, CK_242X), | ||
1781 | CLK(NULL, "dsp_ick", &dsp_ick, CK_242X), | 1799 | CLK(NULL, "dsp_ick", &dsp_ick, CK_242X), |
1782 | CLK(NULL, "iva1_ifck", &iva1_ifck, CK_242X), | 1800 | CLK(NULL, "iva1_ifck", &iva1_ifck, CK_242X), |
1783 | CLK(NULL, "iva1_mpu_int_ifck", &iva1_mpu_int_ifck, CK_242X), | 1801 | CLK(NULL, "iva1_mpu_int_ifck", &iva1_mpu_int_ifck, CK_242X), |
@@ -1797,6 +1815,7 @@ static struct omap_clk omap2420_clks[] = { | |||
1797 | /* L4 domain clocks */ | 1815 | /* L4 domain clocks */ |
1798 | CLK(NULL, "l4_ck", &l4_ck, CK_242X), | 1816 | CLK(NULL, "l4_ck", &l4_ck, CK_242X), |
1799 | CLK(NULL, "ssi_l4_ick", &ssi_l4_ick, CK_242X), | 1817 | CLK(NULL, "ssi_l4_ick", &ssi_l4_ick, CK_242X), |
1818 | CLK(NULL, "wu_l4_ick", &wu_l4_ick, CK_242X), | ||
1800 | /* virtual meta-group clock */ | 1819 | /* virtual meta-group clock */ |
1801 | CLK(NULL, "virt_prcm_set", &virt_prcm_set, CK_242X), | 1820 | CLK(NULL, "virt_prcm_set", &virt_prcm_set, CK_242X), |
1802 | /* general l4 interface ck, multi-parent functional clk */ | 1821 | /* general l4 interface ck, multi-parent functional clk */ |
@@ -1869,6 +1888,7 @@ static struct omap_clk omap2420_clks[] = { | |||
1869 | CLK(NULL, "gpmc_fck", &gpmc_fck, CK_242X), | 1888 | CLK(NULL, "gpmc_fck", &gpmc_fck, CK_242X), |
1870 | CLK(NULL, "sdma_fck", &sdma_fck, CK_242X), | 1889 | CLK(NULL, "sdma_fck", &sdma_fck, CK_242X), |
1871 | CLK(NULL, "sdma_ick", &sdma_ick, CK_242X), | 1890 | CLK(NULL, "sdma_ick", &sdma_ick, CK_242X), |
1891 | CLK(NULL, "sdrc_ick", &sdrc_ick, CK_242X), | ||
1872 | CLK(NULL, "vlynq_ick", &vlynq_ick, CK_242X), | 1892 | CLK(NULL, "vlynq_ick", &vlynq_ick, CK_242X), |
1873 | CLK(NULL, "vlynq_fck", &vlynq_fck, CK_242X), | 1893 | CLK(NULL, "vlynq_fck", &vlynq_fck, CK_242X), |
1874 | CLK(NULL, "des_ick", &des_ick, CK_242X), | 1894 | CLK(NULL, "des_ick", &des_ick, CK_242X), |
@@ -1913,6 +1933,9 @@ int __init omap2420_clk_init(void) | |||
1913 | omap2_init_clk_clkdm(c->lk.clk); | 1933 | omap2_init_clk_clkdm(c->lk.clk); |
1914 | } | 1934 | } |
1915 | 1935 | ||
1936 | /* Disable autoidle on all clocks; let the PM code enable it later */ | ||
1937 | omap_clk_disable_autoidle_all(); | ||
1938 | |||
1916 | /* Check the MPU rate set by bootloader */ | 1939 | /* Check the MPU rate set by bootloader */ |
1917 | clkrate = omap2xxx_clk_get_core_rate(&dpll_ck); | 1940 | clkrate = omap2xxx_clk_get_core_rate(&dpll_ck); |
1918 | for (prcm = rate_table; prcm->mpu_speed; prcm++) { | 1941 | for (prcm = rate_table; prcm->mpu_speed; prcm++) { |