diff options
author | Glenn Elliott <gelliott@cs.unc.edu> | 2012-03-04 19:47:13 -0500 |
---|---|---|
committer | Glenn Elliott <gelliott@cs.unc.edu> | 2012-03-04 19:47:13 -0500 |
commit | c71c03bda1e86c9d5198c5d83f712e695c4f2a1e (patch) | |
tree | ecb166cb3e2b7e2adb3b5e292245fefd23381ac8 /arch/arm/mach-omap2/clock2430_data.c | |
parent | ea53c912f8a86a8567697115b6a0d8152beee5c8 (diff) | |
parent | 6a00f206debf8a5c8899055726ad127dbeeed098 (diff) |
Merge branch 'mpi-master' into wip-k-fmlpwip-k-fmlp
Conflicts:
litmus/sched_cedf.c
Diffstat (limited to 'arch/arm/mach-omap2/clock2430_data.c')
-rw-r--r-- | arch/arm/mach-omap2/clock2430_data.c | 334 |
1 files changed, 198 insertions, 136 deletions
diff --git a/arch/arm/mach-omap2/clock2430_data.c b/arch/arm/mach-omap2/clock2430_data.c index b33118fb6a87..0c79d39e3021 100644 --- a/arch/arm/mach-omap2/clock2430_data.c +++ b/arch/arm/mach-omap2/clock2430_data.c | |||
@@ -1,12 +1,12 @@ | |||
1 | /* | 1 | /* |
2 | * linux/arch/arm/mach-omap2/clock2430_data.c | 2 | * OMAP2430 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 |
@@ -22,29 +22,27 @@ | |||
22 | #include "clock.h" | 22 | #include "clock.h" |
23 | #include "clock2xxx.h" | 23 | #include "clock2xxx.h" |
24 | #include "opp2xxx.h" | 24 | #include "opp2xxx.h" |
25 | #include "prm.h" | 25 | #include "cm2xxx_3xxx.h" |
26 | #include "cm.h" | 26 | #include "prm2xxx_3xxx.h" |
27 | #include "prm-regbits-24xx.h" | 27 | #include "prm-regbits-24xx.h" |
28 | #include "cm-regbits-24xx.h" | 28 | #include "cm-regbits-24xx.h" |
29 | #include "sdrc.h" | 29 | #include "sdrc.h" |
30 | #include "control.h" | ||
30 | 31 | ||
31 | #define OMAP_CM_REGADDR OMAP2430_CM_REGADDR | 32 | #define OMAP_CM_REGADDR OMAP2430_CM_REGADDR |
32 | 33 | ||
33 | /* | 34 | /* |
34 | * 2430 clock tree. | 35 | * 2430 clock tree. |
35 | * | 36 | * |
36 | * 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 |
37 | * cases the parent is selectable. The get/set parent calls will also | 38 | * many cases the parent is selectable. The set parent calls will |
38 | * switch sources. | 39 | * also switch sources. |
39 | * | ||
40 | * Many some clocks say always_enabled, but they can be auto idled for | ||
41 | * power savings. They will always be available upon clock request. | ||
42 | * | 40 | * |
43 | * 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 |
44 | * be fixed up in the init func. | 42 | * be fixed up in the init func. |
45 | * | 43 | * |
46 | * Things are broadly separated below by clock domains. It is | 44 | * Things are broadly separated below by clock domains. It is |
47 | * noteworthy that most periferals have dependencies on multiple clock | 45 | * noteworthy that most peripherals have dependencies on multiple clock |
48 | * 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 |
49 | * functional clocks from fixed sources or other core domain derived | 47 | * functional clocks from fixed sources or other core domain derived |
50 | * clocks. | 48 | * clocks. |
@@ -54,7 +52,7 @@ | |||
54 | static struct clk func_32k_ck = { | 52 | static struct clk func_32k_ck = { |
55 | .name = "func_32k_ck", | 53 | .name = "func_32k_ck", |
56 | .ops = &clkops_null, | 54 | .ops = &clkops_null, |
57 | .rate = 32000, | 55 | .rate = 32768, |
58 | .clkdm_name = "wkup_clkdm", | 56 | .clkdm_name = "wkup_clkdm", |
59 | }; | 57 | }; |
60 | 58 | ||
@@ -89,6 +87,12 @@ static struct clk alt_ck = { /* Typical 54M or 48M, may not exist */ | |||
89 | .clkdm_name = "wkup_clkdm", | 87 | .clkdm_name = "wkup_clkdm", |
90 | }; | 88 | }; |
91 | 89 | ||
90 | /* Optional external clock input for McBSP CLKS */ | ||
91 | static struct clk mcbsp_clks = { | ||
92 | .name = "mcbsp_clks", | ||
93 | .ops = &clkops_null, | ||
94 | }; | ||
95 | |||
92 | /* | 96 | /* |
93 | * Analog domain root source clocks | 97 | * Analog domain root source clocks |
94 | */ | 98 | */ |
@@ -109,7 +113,6 @@ static struct dpll_data dpll_dd = { | |||
109 | .max_multiplier = 1023, | 113 | .max_multiplier = 1023, |
110 | .min_divider = 1, | 114 | .min_divider = 1, |
111 | .max_divider = 16, | 115 | .max_divider = 16, |
112 | .rate_tolerance = DEFAULT_DPLL_RATE_TOLERANCE | ||
113 | }; | 116 | }; |
114 | 117 | ||
115 | /* | 118 | /* |
@@ -118,7 +121,7 @@ static struct dpll_data dpll_dd = { | |||
118 | */ | 121 | */ |
119 | static struct clk dpll_ck = { | 122 | static struct clk dpll_ck = { |
120 | .name = "dpll_ck", | 123 | .name = "dpll_ck", |
121 | .ops = &clkops_null, | 124 | .ops = &clkops_omap2xxx_dpll_ops, |
122 | .parent = &sys_ck, /* Can be func_32k also */ | 125 | .parent = &sys_ck, /* Can be func_32k also */ |
123 | .dpll_data = &dpll_dd, | 126 | .dpll_data = &dpll_dd, |
124 | .clkdm_name = "wkup_clkdm", | 127 | .clkdm_name = "wkup_clkdm", |
@@ -427,37 +430,23 @@ static struct clk dsp_fck = { | |||
427 | .recalc = &omap2_clksel_recalc, | 430 | .recalc = &omap2_clksel_recalc, |
428 | }; | 431 | }; |
429 | 432 | ||
430 | /* DSP interface clock */ | 433 | static const struct clksel dsp_ick_clksel[] = { |
431 | static const struct clksel_rate dsp_irate_ick_rates[] = { | 434 | { .parent = &dsp_fck, .rates = dsp_ick_rates }, |
432 | { .div = 1, .val = 1, .flags = RATE_IN_24XX }, | ||
433 | { .div = 2, .val = 2, .flags = RATE_IN_24XX }, | ||
434 | { .div = 3, .val = 3, .flags = RATE_IN_243X }, | ||
435 | { .div = 0 }, | ||
436 | }; | ||
437 | |||
438 | static const struct clksel dsp_irate_ick_clksel[] = { | ||
439 | { .parent = &dsp_fck, .rates = dsp_irate_ick_rates }, | ||
440 | { .parent = NULL } | 435 | { .parent = NULL } |
441 | }; | 436 | }; |
442 | 437 | ||
443 | /* This clock does not exist as such in the TRM. */ | ||
444 | static struct clk dsp_irate_ick = { | ||
445 | .name = "dsp_irate_ick", | ||
446 | .ops = &clkops_null, | ||
447 | .parent = &dsp_fck, | ||
448 | .clksel_reg = OMAP_CM_REGADDR(OMAP24XX_DSP_MOD, CM_CLKSEL), | ||
449 | .clksel_mask = OMAP24XX_CLKSEL_DSP_IF_MASK, | ||
450 | .clksel = dsp_irate_ick_clksel, | ||
451 | .recalc = &omap2_clksel_recalc, | ||
452 | }; | ||
453 | |||
454 | /* 2430 only - EN_DSP controls both dsp fclk and iclk on 2430 */ | 438 | /* 2430 only - EN_DSP controls both dsp fclk and iclk on 2430 */ |
455 | static struct clk iva2_1_ick = { | 439 | static struct clk iva2_1_ick = { |
456 | .name = "iva2_1_ick", | 440 | .name = "iva2_1_ick", |
457 | .ops = &clkops_omap2_dflt_wait, | 441 | .ops = &clkops_omap2_dflt_wait, |
458 | .parent = &dsp_irate_ick, | 442 | .parent = &dsp_fck, |
443 | .clkdm_name = "dsp_clkdm", | ||
459 | .enable_reg = OMAP_CM_REGADDR(OMAP24XX_DSP_MOD, CM_FCLKEN), | 444 | .enable_reg = OMAP_CM_REGADDR(OMAP24XX_DSP_MOD, CM_FCLKEN), |
460 | .enable_bit = OMAP24XX_CM_FCLKEN_DSP_EN_DSP_SHIFT, | 445 | .enable_bit = OMAP24XX_CM_FCLKEN_DSP_EN_DSP_SHIFT, |
446 | .clksel_reg = OMAP_CM_REGADDR(OMAP24XX_DSP_MOD, CM_CLKSEL), | ||
447 | .clksel_mask = OMAP24XX_CLKSEL_DSP_IF_MASK, | ||
448 | .clksel = dsp_ick_clksel, | ||
449 | .recalc = &omap2_clksel_recalc, | ||
461 | }; | 450 | }; |
462 | 451 | ||
463 | /* | 452 | /* |
@@ -518,7 +507,7 @@ static const struct clksel usb_l4_ick_clksel[] = { | |||
518 | /* It is unclear from TRM whether usb_l4_ick is really in L3 or L4 clkdm */ | 507 | /* It is unclear from TRM whether usb_l4_ick is really in L3 or L4 clkdm */ |
519 | static struct clk usb_l4_ick = { /* FS-USB interface clock */ | 508 | static struct clk usb_l4_ick = { /* FS-USB interface clock */ |
520 | .name = "usb_l4_ick", | 509 | .name = "usb_l4_ick", |
521 | .ops = &clkops_omap2_dflt_wait, | 510 | .ops = &clkops_omap2_iclk_dflt_wait, |
522 | .parent = &core_l3_ck, | 511 | .parent = &core_l3_ck, |
523 | .clkdm_name = "core_l4_clkdm", | 512 | .clkdm_name = "core_l4_clkdm", |
524 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN2), | 513 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN2), |
@@ -599,7 +588,7 @@ static struct clk ssi_ssr_sst_fck = { | |||
599 | */ | 588 | */ |
600 | static struct clk ssi_l4_ick = { | 589 | static struct clk ssi_l4_ick = { |
601 | .name = "ssi_l4_ick", | 590 | .name = "ssi_l4_ick", |
602 | .ops = &clkops_omap2_dflt_wait, | 591 | .ops = &clkops_omap2_iclk_dflt_wait, |
603 | .parent = &l4_ck, | 592 | .parent = &l4_ck, |
604 | .clkdm_name = "core_l4_clkdm", | 593 | .clkdm_name = "core_l4_clkdm", |
605 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN2), | 594 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN2), |
@@ -654,6 +643,7 @@ static struct clk gfx_2d_fck = { | |||
654 | .recalc = &omap2_clksel_recalc, | 643 | .recalc = &omap2_clksel_recalc, |
655 | }; | 644 | }; |
656 | 645 | ||
646 | /* This interface clock does not have a CM_AUTOIDLE bit */ | ||
657 | static struct clk gfx_ick = { | 647 | static struct clk gfx_ick = { |
658 | .name = "gfx_ick", /* From l3 */ | 648 | .name = "gfx_ick", /* From l3 */ |
659 | .ops = &clkops_omap2_dflt_wait, | 649 | .ops = &clkops_omap2_dflt_wait, |
@@ -686,7 +676,7 @@ static const struct clksel mdm_ick_clksel[] = { | |||
686 | 676 | ||
687 | static struct clk mdm_ick = { /* used both as a ick and fck */ | 677 | static struct clk mdm_ick = { /* used both as a ick and fck */ |
688 | .name = "mdm_ick", | 678 | .name = "mdm_ick", |
689 | .ops = &clkops_omap2_dflt_wait, | 679 | .ops = &clkops_omap2_iclk_dflt_wait, |
690 | .parent = &core_ck, | 680 | .parent = &core_ck, |
691 | .clkdm_name = "mdm_clkdm", | 681 | .clkdm_name = "mdm_clkdm", |
692 | .enable_reg = OMAP_CM_REGADDR(OMAP2430_MDM_MOD, CM_ICLKEN), | 682 | .enable_reg = OMAP_CM_REGADDR(OMAP2430_MDM_MOD, CM_ICLKEN), |
@@ -699,7 +689,7 @@ static struct clk mdm_ick = { /* used both as a ick and fck */ | |||
699 | 689 | ||
700 | static struct clk mdm_osc_ck = { | 690 | static struct clk mdm_osc_ck = { |
701 | .name = "mdm_osc_ck", | 691 | .name = "mdm_osc_ck", |
702 | .ops = &clkops_omap2_dflt_wait, | 692 | .ops = &clkops_omap2_mdmclk_dflt_wait, |
703 | .parent = &osc_ck, | 693 | .parent = &osc_ck, |
704 | .clkdm_name = "mdm_clkdm", | 694 | .clkdm_name = "mdm_clkdm", |
705 | .enable_reg = OMAP_CM_REGADDR(OMAP2430_MDM_MOD, CM_FCLKEN), | 695 | .enable_reg = OMAP_CM_REGADDR(OMAP2430_MDM_MOD, CM_FCLKEN), |
@@ -744,7 +734,7 @@ static const struct clksel dss1_fck_clksel[] = { | |||
744 | 734 | ||
745 | static struct clk dss_ick = { /* Enables both L3,L4 ICLK's */ | 735 | static struct clk dss_ick = { /* Enables both L3,L4 ICLK's */ |
746 | .name = "dss_ick", | 736 | .name = "dss_ick", |
747 | .ops = &clkops_omap2_dflt, | 737 | .ops = &clkops_omap2_iclk_dflt, |
748 | .parent = &l4_ck, /* really both l3 and l4 */ | 738 | .parent = &l4_ck, /* really both l3 and l4 */ |
749 | .clkdm_name = "dss_clkdm", | 739 | .clkdm_name = "dss_clkdm", |
750 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), | 740 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), |
@@ -793,7 +783,7 @@ static struct clk dss2_fck = { /* Alt clk used in power management */ | |||
793 | .clksel_reg = OMAP_CM_REGADDR(CORE_MOD, CM_CLKSEL1), | 783 | .clksel_reg = OMAP_CM_REGADDR(CORE_MOD, CM_CLKSEL1), |
794 | .clksel_mask = OMAP24XX_CLKSEL_DSS2_MASK, | 784 | .clksel_mask = OMAP24XX_CLKSEL_DSS2_MASK, |
795 | .clksel = dss2_fck_clksel, | 785 | .clksel = dss2_fck_clksel, |
796 | .recalc = &followparent_recalc, | 786 | .recalc = &omap2_clksel_recalc, |
797 | }; | 787 | }; |
798 | 788 | ||
799 | static struct clk dss_54m_fck = { /* Alt clk used in power management */ | 789 | static struct clk dss_54m_fck = { /* Alt clk used in power management */ |
@@ -806,6 +796,14 @@ static struct clk dss_54m_fck = { /* Alt clk used in power management */ | |||
806 | .recalc = &followparent_recalc, | 796 | .recalc = &followparent_recalc, |
807 | }; | 797 | }; |
808 | 798 | ||
799 | static struct clk wu_l4_ick = { | ||
800 | .name = "wu_l4_ick", | ||
801 | .ops = &clkops_null, | ||
802 | .parent = &sys_ck, | ||
803 | .clkdm_name = "wkup_clkdm", | ||
804 | .recalc = &followparent_recalc, | ||
805 | }; | ||
806 | |||
809 | /* | 807 | /* |
810 | * CORE power domain ICLK & FCLK defines. | 808 | * CORE power domain ICLK & FCLK defines. |
811 | * Many of the these can have more than one possible parent. Entries | 809 | * Many of the these can have more than one possible parent. Entries |
@@ -826,9 +824,9 @@ static const struct clksel omap24xx_gpt_clksel[] = { | |||
826 | 824 | ||
827 | static struct clk gpt1_ick = { | 825 | static struct clk gpt1_ick = { |
828 | .name = "gpt1_ick", | 826 | .name = "gpt1_ick", |
829 | .ops = &clkops_omap2_dflt_wait, | 827 | .ops = &clkops_omap2_iclk_dflt_wait, |
830 | .parent = &l4_ck, | 828 | .parent = &wu_l4_ick, |
831 | .clkdm_name = "core_l4_clkdm", | 829 | .clkdm_name = "wkup_clkdm", |
832 | .enable_reg = OMAP_CM_REGADDR(WKUP_MOD, CM_ICLKEN), | 830 | .enable_reg = OMAP_CM_REGADDR(WKUP_MOD, CM_ICLKEN), |
833 | .enable_bit = OMAP24XX_EN_GPT1_SHIFT, | 831 | .enable_bit = OMAP24XX_EN_GPT1_SHIFT, |
834 | .recalc = &followparent_recalc, | 832 | .recalc = &followparent_recalc, |
@@ -852,7 +850,7 @@ static struct clk gpt1_fck = { | |||
852 | 850 | ||
853 | static struct clk gpt2_ick = { | 851 | static struct clk gpt2_ick = { |
854 | .name = "gpt2_ick", | 852 | .name = "gpt2_ick", |
855 | .ops = &clkops_omap2_dflt_wait, | 853 | .ops = &clkops_omap2_iclk_dflt_wait, |
856 | .parent = &l4_ck, | 854 | .parent = &l4_ck, |
857 | .clkdm_name = "core_l4_clkdm", | 855 | .clkdm_name = "core_l4_clkdm", |
858 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), | 856 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), |
@@ -876,7 +874,7 @@ static struct clk gpt2_fck = { | |||
876 | 874 | ||
877 | static struct clk gpt3_ick = { | 875 | static struct clk gpt3_ick = { |
878 | .name = "gpt3_ick", | 876 | .name = "gpt3_ick", |
879 | .ops = &clkops_omap2_dflt_wait, | 877 | .ops = &clkops_omap2_iclk_dflt_wait, |
880 | .parent = &l4_ck, | 878 | .parent = &l4_ck, |
881 | .clkdm_name = "core_l4_clkdm", | 879 | .clkdm_name = "core_l4_clkdm", |
882 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), | 880 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), |
@@ -900,7 +898,7 @@ static struct clk gpt3_fck = { | |||
900 | 898 | ||
901 | static struct clk gpt4_ick = { | 899 | static struct clk gpt4_ick = { |
902 | .name = "gpt4_ick", | 900 | .name = "gpt4_ick", |
903 | .ops = &clkops_omap2_dflt_wait, | 901 | .ops = &clkops_omap2_iclk_dflt_wait, |
904 | .parent = &l4_ck, | 902 | .parent = &l4_ck, |
905 | .clkdm_name = "core_l4_clkdm", | 903 | .clkdm_name = "core_l4_clkdm", |
906 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), | 904 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), |
@@ -924,7 +922,7 @@ static struct clk gpt4_fck = { | |||
924 | 922 | ||
925 | static struct clk gpt5_ick = { | 923 | static struct clk gpt5_ick = { |
926 | .name = "gpt5_ick", | 924 | .name = "gpt5_ick", |
927 | .ops = &clkops_omap2_dflt_wait, | 925 | .ops = &clkops_omap2_iclk_dflt_wait, |
928 | .parent = &l4_ck, | 926 | .parent = &l4_ck, |
929 | .clkdm_name = "core_l4_clkdm", | 927 | .clkdm_name = "core_l4_clkdm", |
930 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), | 928 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), |
@@ -948,7 +946,7 @@ static struct clk gpt5_fck = { | |||
948 | 946 | ||
949 | static struct clk gpt6_ick = { | 947 | static struct clk gpt6_ick = { |
950 | .name = "gpt6_ick", | 948 | .name = "gpt6_ick", |
951 | .ops = &clkops_omap2_dflt_wait, | 949 | .ops = &clkops_omap2_iclk_dflt_wait, |
952 | .parent = &l4_ck, | 950 | .parent = &l4_ck, |
953 | .clkdm_name = "core_l4_clkdm", | 951 | .clkdm_name = "core_l4_clkdm", |
954 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), | 952 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), |
@@ -972,8 +970,9 @@ static struct clk gpt6_fck = { | |||
972 | 970 | ||
973 | static struct clk gpt7_ick = { | 971 | static struct clk gpt7_ick = { |
974 | .name = "gpt7_ick", | 972 | .name = "gpt7_ick", |
975 | .ops = &clkops_omap2_dflt_wait, | 973 | .ops = &clkops_omap2_iclk_dflt_wait, |
976 | .parent = &l4_ck, | 974 | .parent = &l4_ck, |
975 | .clkdm_name = "core_l4_clkdm", | ||
977 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), | 976 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), |
978 | .enable_bit = OMAP24XX_EN_GPT7_SHIFT, | 977 | .enable_bit = OMAP24XX_EN_GPT7_SHIFT, |
979 | .recalc = &followparent_recalc, | 978 | .recalc = &followparent_recalc, |
@@ -995,7 +994,7 @@ static struct clk gpt7_fck = { | |||
995 | 994 | ||
996 | static struct clk gpt8_ick = { | 995 | static struct clk gpt8_ick = { |
997 | .name = "gpt8_ick", | 996 | .name = "gpt8_ick", |
998 | .ops = &clkops_omap2_dflt_wait, | 997 | .ops = &clkops_omap2_iclk_dflt_wait, |
999 | .parent = &l4_ck, | 998 | .parent = &l4_ck, |
1000 | .clkdm_name = "core_l4_clkdm", | 999 | .clkdm_name = "core_l4_clkdm", |
1001 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), | 1000 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), |
@@ -1019,7 +1018,7 @@ static struct clk gpt8_fck = { | |||
1019 | 1018 | ||
1020 | static struct clk gpt9_ick = { | 1019 | static struct clk gpt9_ick = { |
1021 | .name = "gpt9_ick", | 1020 | .name = "gpt9_ick", |
1022 | .ops = &clkops_omap2_dflt_wait, | 1021 | .ops = &clkops_omap2_iclk_dflt_wait, |
1023 | .parent = &l4_ck, | 1022 | .parent = &l4_ck, |
1024 | .clkdm_name = "core_l4_clkdm", | 1023 | .clkdm_name = "core_l4_clkdm", |
1025 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), | 1024 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), |
@@ -1043,7 +1042,7 @@ static struct clk gpt9_fck = { | |||
1043 | 1042 | ||
1044 | static struct clk gpt10_ick = { | 1043 | static struct clk gpt10_ick = { |
1045 | .name = "gpt10_ick", | 1044 | .name = "gpt10_ick", |
1046 | .ops = &clkops_omap2_dflt_wait, | 1045 | .ops = &clkops_omap2_iclk_dflt_wait, |
1047 | .parent = &l4_ck, | 1046 | .parent = &l4_ck, |
1048 | .clkdm_name = "core_l4_clkdm", | 1047 | .clkdm_name = "core_l4_clkdm", |
1049 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), | 1048 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), |
@@ -1067,7 +1066,7 @@ static struct clk gpt10_fck = { | |||
1067 | 1066 | ||
1068 | static struct clk gpt11_ick = { | 1067 | static struct clk gpt11_ick = { |
1069 | .name = "gpt11_ick", | 1068 | .name = "gpt11_ick", |
1070 | .ops = &clkops_omap2_dflt_wait, | 1069 | .ops = &clkops_omap2_iclk_dflt_wait, |
1071 | .parent = &l4_ck, | 1070 | .parent = &l4_ck, |
1072 | .clkdm_name = "core_l4_clkdm", | 1071 | .clkdm_name = "core_l4_clkdm", |
1073 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), | 1072 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), |
@@ -1091,7 +1090,7 @@ static struct clk gpt11_fck = { | |||
1091 | 1090 | ||
1092 | static struct clk gpt12_ick = { | 1091 | static struct clk gpt12_ick = { |
1093 | .name = "gpt12_ick", | 1092 | .name = "gpt12_ick", |
1094 | .ops = &clkops_omap2_dflt_wait, | 1093 | .ops = &clkops_omap2_iclk_dflt_wait, |
1095 | .parent = &l4_ck, | 1094 | .parent = &l4_ck, |
1096 | .clkdm_name = "core_l4_clkdm", | 1095 | .clkdm_name = "core_l4_clkdm", |
1097 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), | 1096 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), |
@@ -1115,7 +1114,7 @@ static struct clk gpt12_fck = { | |||
1115 | 1114 | ||
1116 | static struct clk mcbsp1_ick = { | 1115 | static struct clk mcbsp1_ick = { |
1117 | .name = "mcbsp1_ick", | 1116 | .name = "mcbsp1_ick", |
1118 | .ops = &clkops_omap2_dflt_wait, | 1117 | .ops = &clkops_omap2_iclk_dflt_wait, |
1119 | .parent = &l4_ck, | 1118 | .parent = &l4_ck, |
1120 | .clkdm_name = "core_l4_clkdm", | 1119 | .clkdm_name = "core_l4_clkdm", |
1121 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), | 1120 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), |
@@ -1123,19 +1122,39 @@ static struct clk mcbsp1_ick = { | |||
1123 | .recalc = &followparent_recalc, | 1122 | .recalc = &followparent_recalc, |
1124 | }; | 1123 | }; |
1125 | 1124 | ||
1125 | static const struct clksel_rate common_mcbsp_96m_rates[] = { | ||
1126 | { .div = 1, .val = 0, .flags = RATE_IN_24XX }, | ||
1127 | { .div = 0 } | ||
1128 | }; | ||
1129 | |||
1130 | static const struct clksel_rate common_mcbsp_mcbsp_rates[] = { | ||
1131 | { .div = 1, .val = 1, .flags = RATE_IN_24XX }, | ||
1132 | { .div = 0 } | ||
1133 | }; | ||
1134 | |||
1135 | static const struct clksel mcbsp_fck_clksel[] = { | ||
1136 | { .parent = &func_96m_ck, .rates = common_mcbsp_96m_rates }, | ||
1137 | { .parent = &mcbsp_clks, .rates = common_mcbsp_mcbsp_rates }, | ||
1138 | { .parent = NULL } | ||
1139 | }; | ||
1140 | |||
1126 | static struct clk mcbsp1_fck = { | 1141 | static struct clk mcbsp1_fck = { |
1127 | .name = "mcbsp1_fck", | 1142 | .name = "mcbsp1_fck", |
1128 | .ops = &clkops_omap2_dflt_wait, | 1143 | .ops = &clkops_omap2_dflt_wait, |
1129 | .parent = &func_96m_ck, | 1144 | .parent = &func_96m_ck, |
1145 | .init = &omap2_init_clksel_parent, | ||
1130 | .clkdm_name = "core_l4_clkdm", | 1146 | .clkdm_name = "core_l4_clkdm", |
1131 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_FCLKEN1), | 1147 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_FCLKEN1), |
1132 | .enable_bit = OMAP24XX_EN_MCBSP1_SHIFT, | 1148 | .enable_bit = OMAP24XX_EN_MCBSP1_SHIFT, |
1133 | .recalc = &followparent_recalc, | 1149 | .clksel_reg = OMAP243X_CTRL_REGADDR(OMAP2_CONTROL_DEVCONF0), |
1150 | .clksel_mask = OMAP2_MCBSP1_CLKS_MASK, | ||
1151 | .clksel = mcbsp_fck_clksel, | ||
1152 | .recalc = &omap2_clksel_recalc, | ||
1134 | }; | 1153 | }; |
1135 | 1154 | ||
1136 | static struct clk mcbsp2_ick = { | 1155 | static struct clk mcbsp2_ick = { |
1137 | .name = "mcbsp2_ick", | 1156 | .name = "mcbsp2_ick", |
1138 | .ops = &clkops_omap2_dflt_wait, | 1157 | .ops = &clkops_omap2_iclk_dflt_wait, |
1139 | .parent = &l4_ck, | 1158 | .parent = &l4_ck, |
1140 | .clkdm_name = "core_l4_clkdm", | 1159 | .clkdm_name = "core_l4_clkdm", |
1141 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), | 1160 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), |
@@ -1147,15 +1166,19 @@ static struct clk mcbsp2_fck = { | |||
1147 | .name = "mcbsp2_fck", | 1166 | .name = "mcbsp2_fck", |
1148 | .ops = &clkops_omap2_dflt_wait, | 1167 | .ops = &clkops_omap2_dflt_wait, |
1149 | .parent = &func_96m_ck, | 1168 | .parent = &func_96m_ck, |
1169 | .init = &omap2_init_clksel_parent, | ||
1150 | .clkdm_name = "core_l4_clkdm", | 1170 | .clkdm_name = "core_l4_clkdm", |
1151 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_FCLKEN1), | 1171 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_FCLKEN1), |
1152 | .enable_bit = OMAP24XX_EN_MCBSP2_SHIFT, | 1172 | .enable_bit = OMAP24XX_EN_MCBSP2_SHIFT, |
1153 | .recalc = &followparent_recalc, | 1173 | .clksel_reg = OMAP243X_CTRL_REGADDR(OMAP2_CONTROL_DEVCONF0), |
1174 | .clksel_mask = OMAP2_MCBSP2_CLKS_MASK, | ||
1175 | .clksel = mcbsp_fck_clksel, | ||
1176 | .recalc = &omap2_clksel_recalc, | ||
1154 | }; | 1177 | }; |
1155 | 1178 | ||
1156 | static struct clk mcbsp3_ick = { | 1179 | static struct clk mcbsp3_ick = { |
1157 | .name = "mcbsp3_ick", | 1180 | .name = "mcbsp3_ick", |
1158 | .ops = &clkops_omap2_dflt_wait, | 1181 | .ops = &clkops_omap2_iclk_dflt_wait, |
1159 | .parent = &l4_ck, | 1182 | .parent = &l4_ck, |
1160 | .clkdm_name = "core_l4_clkdm", | 1183 | .clkdm_name = "core_l4_clkdm", |
1161 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN2), | 1184 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN2), |
@@ -1167,15 +1190,19 @@ static struct clk mcbsp3_fck = { | |||
1167 | .name = "mcbsp3_fck", | 1190 | .name = "mcbsp3_fck", |
1168 | .ops = &clkops_omap2_dflt_wait, | 1191 | .ops = &clkops_omap2_dflt_wait, |
1169 | .parent = &func_96m_ck, | 1192 | .parent = &func_96m_ck, |
1193 | .init = &omap2_init_clksel_parent, | ||
1170 | .clkdm_name = "core_l4_clkdm", | 1194 | .clkdm_name = "core_l4_clkdm", |
1171 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, OMAP24XX_CM_FCLKEN2), | 1195 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, OMAP24XX_CM_FCLKEN2), |
1172 | .enable_bit = OMAP2430_EN_MCBSP3_SHIFT, | 1196 | .enable_bit = OMAP2430_EN_MCBSP3_SHIFT, |
1173 | .recalc = &followparent_recalc, | 1197 | .clksel_reg = OMAP243X_CTRL_REGADDR(OMAP243X_CONTROL_DEVCONF1), |
1198 | .clksel_mask = OMAP2_MCBSP3_CLKS_MASK, | ||
1199 | .clksel = mcbsp_fck_clksel, | ||
1200 | .recalc = &omap2_clksel_recalc, | ||
1174 | }; | 1201 | }; |
1175 | 1202 | ||
1176 | static struct clk mcbsp4_ick = { | 1203 | static struct clk mcbsp4_ick = { |
1177 | .name = "mcbsp4_ick", | 1204 | .name = "mcbsp4_ick", |
1178 | .ops = &clkops_omap2_dflt_wait, | 1205 | .ops = &clkops_omap2_iclk_dflt_wait, |
1179 | .parent = &l4_ck, | 1206 | .parent = &l4_ck, |
1180 | .clkdm_name = "core_l4_clkdm", | 1207 | .clkdm_name = "core_l4_clkdm", |
1181 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN2), | 1208 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN2), |
@@ -1187,15 +1214,19 @@ static struct clk mcbsp4_fck = { | |||
1187 | .name = "mcbsp4_fck", | 1214 | .name = "mcbsp4_fck", |
1188 | .ops = &clkops_omap2_dflt_wait, | 1215 | .ops = &clkops_omap2_dflt_wait, |
1189 | .parent = &func_96m_ck, | 1216 | .parent = &func_96m_ck, |
1217 | .init = &omap2_init_clksel_parent, | ||
1190 | .clkdm_name = "core_l4_clkdm", | 1218 | .clkdm_name = "core_l4_clkdm", |
1191 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, OMAP24XX_CM_FCLKEN2), | 1219 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, OMAP24XX_CM_FCLKEN2), |
1192 | .enable_bit = OMAP2430_EN_MCBSP4_SHIFT, | 1220 | .enable_bit = OMAP2430_EN_MCBSP4_SHIFT, |
1193 | .recalc = &followparent_recalc, | 1221 | .clksel_reg = OMAP243X_CTRL_REGADDR(OMAP243X_CONTROL_DEVCONF1), |
1222 | .clksel_mask = OMAP2_MCBSP4_CLKS_MASK, | ||
1223 | .clksel = mcbsp_fck_clksel, | ||
1224 | .recalc = &omap2_clksel_recalc, | ||
1194 | }; | 1225 | }; |
1195 | 1226 | ||
1196 | static struct clk mcbsp5_ick = { | 1227 | static struct clk mcbsp5_ick = { |
1197 | .name = "mcbsp5_ick", | 1228 | .name = "mcbsp5_ick", |
1198 | .ops = &clkops_omap2_dflt_wait, | 1229 | .ops = &clkops_omap2_iclk_dflt_wait, |
1199 | .parent = &l4_ck, | 1230 | .parent = &l4_ck, |
1200 | .clkdm_name = "core_l4_clkdm", | 1231 | .clkdm_name = "core_l4_clkdm", |
1201 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN2), | 1232 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN2), |
@@ -1207,15 +1238,19 @@ static struct clk mcbsp5_fck = { | |||
1207 | .name = "mcbsp5_fck", | 1238 | .name = "mcbsp5_fck", |
1208 | .ops = &clkops_omap2_dflt_wait, | 1239 | .ops = &clkops_omap2_dflt_wait, |
1209 | .parent = &func_96m_ck, | 1240 | .parent = &func_96m_ck, |
1241 | .init = &omap2_init_clksel_parent, | ||
1210 | .clkdm_name = "core_l4_clkdm", | 1242 | .clkdm_name = "core_l4_clkdm", |
1211 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, OMAP24XX_CM_FCLKEN2), | 1243 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, OMAP24XX_CM_FCLKEN2), |
1212 | .enable_bit = OMAP2430_EN_MCBSP5_SHIFT, | 1244 | .enable_bit = OMAP2430_EN_MCBSP5_SHIFT, |
1213 | .recalc = &followparent_recalc, | 1245 | .clksel_reg = OMAP243X_CTRL_REGADDR(OMAP243X_CONTROL_DEVCONF1), |
1246 | .clksel_mask = OMAP2_MCBSP5_CLKS_MASK, | ||
1247 | .clksel = mcbsp_fck_clksel, | ||
1248 | .recalc = &omap2_clksel_recalc, | ||
1214 | }; | 1249 | }; |
1215 | 1250 | ||
1216 | static struct clk mcspi1_ick = { | 1251 | static struct clk mcspi1_ick = { |
1217 | .name = "mcspi1_ick", | 1252 | .name = "mcspi1_ick", |
1218 | .ops = &clkops_omap2_dflt_wait, | 1253 | .ops = &clkops_omap2_iclk_dflt_wait, |
1219 | .parent = &l4_ck, | 1254 | .parent = &l4_ck, |
1220 | .clkdm_name = "core_l4_clkdm", | 1255 | .clkdm_name = "core_l4_clkdm", |
1221 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), | 1256 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), |
@@ -1235,7 +1270,7 @@ static struct clk mcspi1_fck = { | |||
1235 | 1270 | ||
1236 | static struct clk mcspi2_ick = { | 1271 | static struct clk mcspi2_ick = { |
1237 | .name = "mcspi2_ick", | 1272 | .name = "mcspi2_ick", |
1238 | .ops = &clkops_omap2_dflt_wait, | 1273 | .ops = &clkops_omap2_iclk_dflt_wait, |
1239 | .parent = &l4_ck, | 1274 | .parent = &l4_ck, |
1240 | .clkdm_name = "core_l4_clkdm", | 1275 | .clkdm_name = "core_l4_clkdm", |
1241 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), | 1276 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), |
@@ -1255,7 +1290,7 @@ static struct clk mcspi2_fck = { | |||
1255 | 1290 | ||
1256 | static struct clk mcspi3_ick = { | 1291 | static struct clk mcspi3_ick = { |
1257 | .name = "mcspi3_ick", | 1292 | .name = "mcspi3_ick", |
1258 | .ops = &clkops_omap2_dflt_wait, | 1293 | .ops = &clkops_omap2_iclk_dflt_wait, |
1259 | .parent = &l4_ck, | 1294 | .parent = &l4_ck, |
1260 | .clkdm_name = "core_l4_clkdm", | 1295 | .clkdm_name = "core_l4_clkdm", |
1261 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN2), | 1296 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN2), |
@@ -1275,7 +1310,7 @@ static struct clk mcspi3_fck = { | |||
1275 | 1310 | ||
1276 | static struct clk uart1_ick = { | 1311 | static struct clk uart1_ick = { |
1277 | .name = "uart1_ick", | 1312 | .name = "uart1_ick", |
1278 | .ops = &clkops_omap2_dflt_wait, | 1313 | .ops = &clkops_omap2_iclk_dflt_wait, |
1279 | .parent = &l4_ck, | 1314 | .parent = &l4_ck, |
1280 | .clkdm_name = "core_l4_clkdm", | 1315 | .clkdm_name = "core_l4_clkdm", |
1281 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), | 1316 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), |
@@ -1295,7 +1330,7 @@ static struct clk uart1_fck = { | |||
1295 | 1330 | ||
1296 | static struct clk uart2_ick = { | 1331 | static struct clk uart2_ick = { |
1297 | .name = "uart2_ick", | 1332 | .name = "uart2_ick", |
1298 | .ops = &clkops_omap2_dflt_wait, | 1333 | .ops = &clkops_omap2_iclk_dflt_wait, |
1299 | .parent = &l4_ck, | 1334 | .parent = &l4_ck, |
1300 | .clkdm_name = "core_l4_clkdm", | 1335 | .clkdm_name = "core_l4_clkdm", |
1301 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), | 1336 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), |
@@ -1315,7 +1350,7 @@ static struct clk uart2_fck = { | |||
1315 | 1350 | ||
1316 | static struct clk uart3_ick = { | 1351 | static struct clk uart3_ick = { |
1317 | .name = "uart3_ick", | 1352 | .name = "uart3_ick", |
1318 | .ops = &clkops_omap2_dflt_wait, | 1353 | .ops = &clkops_omap2_iclk_dflt_wait, |
1319 | .parent = &l4_ck, | 1354 | .parent = &l4_ck, |
1320 | .clkdm_name = "core_l4_clkdm", | 1355 | .clkdm_name = "core_l4_clkdm", |
1321 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN2), | 1356 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN2), |
@@ -1335,9 +1370,9 @@ static struct clk uart3_fck = { | |||
1335 | 1370 | ||
1336 | static struct clk gpios_ick = { | 1371 | static struct clk gpios_ick = { |
1337 | .name = "gpios_ick", | 1372 | .name = "gpios_ick", |
1338 | .ops = &clkops_omap2_dflt_wait, | 1373 | .ops = &clkops_omap2_iclk_dflt_wait, |
1339 | .parent = &l4_ck, | 1374 | .parent = &wu_l4_ick, |
1340 | .clkdm_name = "core_l4_clkdm", | 1375 | .clkdm_name = "wkup_clkdm", |
1341 | .enable_reg = OMAP_CM_REGADDR(WKUP_MOD, CM_ICLKEN), | 1376 | .enable_reg = OMAP_CM_REGADDR(WKUP_MOD, CM_ICLKEN), |
1342 | .enable_bit = OMAP24XX_EN_GPIOS_SHIFT, | 1377 | .enable_bit = OMAP24XX_EN_GPIOS_SHIFT, |
1343 | .recalc = &followparent_recalc, | 1378 | .recalc = &followparent_recalc, |
@@ -1355,9 +1390,9 @@ static struct clk gpios_fck = { | |||
1355 | 1390 | ||
1356 | static struct clk mpu_wdt_ick = { | 1391 | static struct clk mpu_wdt_ick = { |
1357 | .name = "mpu_wdt_ick", | 1392 | .name = "mpu_wdt_ick", |
1358 | .ops = &clkops_omap2_dflt_wait, | 1393 | .ops = &clkops_omap2_iclk_dflt_wait, |
1359 | .parent = &l4_ck, | 1394 | .parent = &wu_l4_ick, |
1360 | .clkdm_name = "core_l4_clkdm", | 1395 | .clkdm_name = "wkup_clkdm", |
1361 | .enable_reg = OMAP_CM_REGADDR(WKUP_MOD, CM_ICLKEN), | 1396 | .enable_reg = OMAP_CM_REGADDR(WKUP_MOD, CM_ICLKEN), |
1362 | .enable_bit = OMAP24XX_EN_MPU_WDT_SHIFT, | 1397 | .enable_bit = OMAP24XX_EN_MPU_WDT_SHIFT, |
1363 | .recalc = &followparent_recalc, | 1398 | .recalc = &followparent_recalc, |
@@ -1375,10 +1410,10 @@ static struct clk mpu_wdt_fck = { | |||
1375 | 1410 | ||
1376 | static struct clk sync_32k_ick = { | 1411 | static struct clk sync_32k_ick = { |
1377 | .name = "sync_32k_ick", | 1412 | .name = "sync_32k_ick", |
1378 | .ops = &clkops_omap2_dflt_wait, | 1413 | .ops = &clkops_omap2_iclk_dflt_wait, |
1379 | .parent = &l4_ck, | ||
1380 | .flags = ENABLE_ON_INIT, | 1414 | .flags = ENABLE_ON_INIT, |
1381 | .clkdm_name = "core_l4_clkdm", | 1415 | .parent = &wu_l4_ick, |
1416 | .clkdm_name = "wkup_clkdm", | ||
1382 | .enable_reg = OMAP_CM_REGADDR(WKUP_MOD, CM_ICLKEN), | 1417 | .enable_reg = OMAP_CM_REGADDR(WKUP_MOD, CM_ICLKEN), |
1383 | .enable_bit = OMAP24XX_EN_32KSYNC_SHIFT, | 1418 | .enable_bit = OMAP24XX_EN_32KSYNC_SHIFT, |
1384 | .recalc = &followparent_recalc, | 1419 | .recalc = &followparent_recalc, |
@@ -1386,9 +1421,9 @@ static struct clk sync_32k_ick = { | |||
1386 | 1421 | ||
1387 | static struct clk wdt1_ick = { | 1422 | static struct clk wdt1_ick = { |
1388 | .name = "wdt1_ick", | 1423 | .name = "wdt1_ick", |
1389 | .ops = &clkops_omap2_dflt_wait, | 1424 | .ops = &clkops_omap2_iclk_dflt_wait, |
1390 | .parent = &l4_ck, | 1425 | .parent = &wu_l4_ick, |
1391 | .clkdm_name = "core_l4_clkdm", | 1426 | .clkdm_name = "wkup_clkdm", |
1392 | .enable_reg = OMAP_CM_REGADDR(WKUP_MOD, CM_ICLKEN), | 1427 | .enable_reg = OMAP_CM_REGADDR(WKUP_MOD, CM_ICLKEN), |
1393 | .enable_bit = OMAP24XX_EN_WDT1_SHIFT, | 1428 | .enable_bit = OMAP24XX_EN_WDT1_SHIFT, |
1394 | .recalc = &followparent_recalc, | 1429 | .recalc = &followparent_recalc, |
@@ -1396,10 +1431,10 @@ static struct clk wdt1_ick = { | |||
1396 | 1431 | ||
1397 | static struct clk omapctrl_ick = { | 1432 | static struct clk omapctrl_ick = { |
1398 | .name = "omapctrl_ick", | 1433 | .name = "omapctrl_ick", |
1399 | .ops = &clkops_omap2_dflt_wait, | 1434 | .ops = &clkops_omap2_iclk_dflt_wait, |
1400 | .parent = &l4_ck, | ||
1401 | .flags = ENABLE_ON_INIT, | 1435 | .flags = ENABLE_ON_INIT, |
1402 | .clkdm_name = "core_l4_clkdm", | 1436 | .parent = &wu_l4_ick, |
1437 | .clkdm_name = "wkup_clkdm", | ||
1403 | .enable_reg = OMAP_CM_REGADDR(WKUP_MOD, CM_ICLKEN), | 1438 | .enable_reg = OMAP_CM_REGADDR(WKUP_MOD, CM_ICLKEN), |
1404 | .enable_bit = OMAP24XX_EN_OMAPCTRL_SHIFT, | 1439 | .enable_bit = OMAP24XX_EN_OMAPCTRL_SHIFT, |
1405 | .recalc = &followparent_recalc, | 1440 | .recalc = &followparent_recalc, |
@@ -1407,9 +1442,9 @@ static struct clk omapctrl_ick = { | |||
1407 | 1442 | ||
1408 | static struct clk icr_ick = { | 1443 | static struct clk icr_ick = { |
1409 | .name = "icr_ick", | 1444 | .name = "icr_ick", |
1410 | .ops = &clkops_omap2_dflt_wait, | 1445 | .ops = &clkops_omap2_iclk_dflt_wait, |
1411 | .parent = &l4_ck, | 1446 | .parent = &wu_l4_ick, |
1412 | .clkdm_name = "core_l4_clkdm", | 1447 | .clkdm_name = "wkup_clkdm", |
1413 | .enable_reg = OMAP_CM_REGADDR(WKUP_MOD, CM_ICLKEN), | 1448 | .enable_reg = OMAP_CM_REGADDR(WKUP_MOD, CM_ICLKEN), |
1414 | .enable_bit = OMAP2430_EN_ICR_SHIFT, | 1449 | .enable_bit = OMAP2430_EN_ICR_SHIFT, |
1415 | .recalc = &followparent_recalc, | 1450 | .recalc = &followparent_recalc, |
@@ -1417,7 +1452,7 @@ static struct clk icr_ick = { | |||
1417 | 1452 | ||
1418 | static struct clk cam_ick = { | 1453 | static struct clk cam_ick = { |
1419 | .name = "cam_ick", | 1454 | .name = "cam_ick", |
1420 | .ops = &clkops_omap2_dflt, | 1455 | .ops = &clkops_omap2_iclk_dflt, |
1421 | .parent = &l4_ck, | 1456 | .parent = &l4_ck, |
1422 | .clkdm_name = "core_l4_clkdm", | 1457 | .clkdm_name = "core_l4_clkdm", |
1423 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), | 1458 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), |
@@ -1442,7 +1477,7 @@ static struct clk cam_fck = { | |||
1442 | 1477 | ||
1443 | static struct clk mailboxes_ick = { | 1478 | static struct clk mailboxes_ick = { |
1444 | .name = "mailboxes_ick", | 1479 | .name = "mailboxes_ick", |
1445 | .ops = &clkops_omap2_dflt_wait, | 1480 | .ops = &clkops_omap2_iclk_dflt_wait, |
1446 | .parent = &l4_ck, | 1481 | .parent = &l4_ck, |
1447 | .clkdm_name = "core_l4_clkdm", | 1482 | .clkdm_name = "core_l4_clkdm", |
1448 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), | 1483 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), |
@@ -1452,7 +1487,7 @@ static struct clk mailboxes_ick = { | |||
1452 | 1487 | ||
1453 | static struct clk wdt4_ick = { | 1488 | static struct clk wdt4_ick = { |
1454 | .name = "wdt4_ick", | 1489 | .name = "wdt4_ick", |
1455 | .ops = &clkops_omap2_dflt_wait, | 1490 | .ops = &clkops_omap2_iclk_dflt_wait, |
1456 | .parent = &l4_ck, | 1491 | .parent = &l4_ck, |
1457 | .clkdm_name = "core_l4_clkdm", | 1492 | .clkdm_name = "core_l4_clkdm", |
1458 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), | 1493 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), |
@@ -1472,7 +1507,7 @@ static struct clk wdt4_fck = { | |||
1472 | 1507 | ||
1473 | static struct clk mspro_ick = { | 1508 | static struct clk mspro_ick = { |
1474 | .name = "mspro_ick", | 1509 | .name = "mspro_ick", |
1475 | .ops = &clkops_omap2_dflt_wait, | 1510 | .ops = &clkops_omap2_iclk_dflt_wait, |
1476 | .parent = &l4_ck, | 1511 | .parent = &l4_ck, |
1477 | .clkdm_name = "core_l4_clkdm", | 1512 | .clkdm_name = "core_l4_clkdm", |
1478 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), | 1513 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), |
@@ -1492,7 +1527,7 @@ static struct clk mspro_fck = { | |||
1492 | 1527 | ||
1493 | static struct clk fac_ick = { | 1528 | static struct clk fac_ick = { |
1494 | .name = "fac_ick", | 1529 | .name = "fac_ick", |
1495 | .ops = &clkops_omap2_dflt_wait, | 1530 | .ops = &clkops_omap2_iclk_dflt_wait, |
1496 | .parent = &l4_ck, | 1531 | .parent = &l4_ck, |
1497 | .clkdm_name = "core_l4_clkdm", | 1532 | .clkdm_name = "core_l4_clkdm", |
1498 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), | 1533 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), |
@@ -1512,7 +1547,7 @@ static struct clk fac_fck = { | |||
1512 | 1547 | ||
1513 | static struct clk hdq_ick = { | 1548 | static struct clk hdq_ick = { |
1514 | .name = "hdq_ick", | 1549 | .name = "hdq_ick", |
1515 | .ops = &clkops_omap2_dflt_wait, | 1550 | .ops = &clkops_omap2_iclk_dflt_wait, |
1516 | .parent = &l4_ck, | 1551 | .parent = &l4_ck, |
1517 | .clkdm_name = "core_l4_clkdm", | 1552 | .clkdm_name = "core_l4_clkdm", |
1518 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), | 1553 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), |
@@ -1536,7 +1571,7 @@ static struct clk hdq_fck = { | |||
1536 | */ | 1571 | */ |
1537 | static struct clk i2c2_ick = { | 1572 | static struct clk i2c2_ick = { |
1538 | .name = "i2c2_ick", | 1573 | .name = "i2c2_ick", |
1539 | .ops = &clkops_omap2_dflt_wait, | 1574 | .ops = &clkops_omap2_iclk_dflt_wait, |
1540 | .parent = &l4_ck, | 1575 | .parent = &l4_ck, |
1541 | .clkdm_name = "core_l4_clkdm", | 1576 | .clkdm_name = "core_l4_clkdm", |
1542 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), | 1577 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), |
@@ -1560,7 +1595,7 @@ static struct clk i2chs2_fck = { | |||
1560 | */ | 1595 | */ |
1561 | static struct clk i2c1_ick = { | 1596 | static struct clk i2c1_ick = { |
1562 | .name = "i2c1_ick", | 1597 | .name = "i2c1_ick", |
1563 | .ops = &clkops_omap2_dflt_wait, | 1598 | .ops = &clkops_omap2_iclk_dflt_wait, |
1564 | .parent = &l4_ck, | 1599 | .parent = &l4_ck, |
1565 | .clkdm_name = "core_l4_clkdm", | 1600 | .clkdm_name = "core_l4_clkdm", |
1566 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), | 1601 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1), |
@@ -1578,12 +1613,18 @@ static struct clk i2chs1_fck = { | |||
1578 | .recalc = &followparent_recalc, | 1613 | .recalc = &followparent_recalc, |
1579 | }; | 1614 | }; |
1580 | 1615 | ||
1616 | /* | ||
1617 | * The enable_reg/enable_bit in this clock is only used for CM_AUTOIDLE | ||
1618 | * accesses derived from this data. | ||
1619 | */ | ||
1581 | static struct clk gpmc_fck = { | 1620 | static struct clk gpmc_fck = { |
1582 | .name = "gpmc_fck", | 1621 | .name = "gpmc_fck", |
1583 | .ops = &clkops_null, /* RMK: missing? */ | 1622 | .ops = &clkops_omap2_iclk_idle_only, |
1584 | .parent = &core_l3_ck, | 1623 | .parent = &core_l3_ck, |
1585 | .flags = ENABLE_ON_INIT, | 1624 | .flags = ENABLE_ON_INIT, |
1586 | .clkdm_name = "core_l3_clkdm", | 1625 | .clkdm_name = "core_l3_clkdm", |
1626 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN3), | ||
1627 | .enable_bit = OMAP24XX_AUTO_GPMC_SHIFT, | ||
1587 | .recalc = &followparent_recalc, | 1628 | .recalc = &followparent_recalc, |
1588 | }; | 1629 | }; |
1589 | 1630 | ||
@@ -1595,20 +1636,26 @@ static struct clk sdma_fck = { | |||
1595 | .recalc = &followparent_recalc, | 1636 | .recalc = &followparent_recalc, |
1596 | }; | 1637 | }; |
1597 | 1638 | ||
1639 | /* | ||
1640 | * The enable_reg/enable_bit in this clock is only used for CM_AUTOIDLE | ||
1641 | * accesses derived from this data. | ||
1642 | */ | ||
1598 | static struct clk sdma_ick = { | 1643 | static struct clk sdma_ick = { |
1599 | .name = "sdma_ick", | 1644 | .name = "sdma_ick", |
1600 | .ops = &clkops_null, /* RMK: missing? */ | 1645 | .ops = &clkops_omap2_iclk_idle_only, |
1601 | .parent = &l4_ck, | 1646 | .parent = &core_l3_ck, |
1602 | .clkdm_name = "core_l3_clkdm", | 1647 | .clkdm_name = "core_l3_clkdm", |
1648 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN3), | ||
1649 | .enable_bit = OMAP24XX_AUTO_SDMA_SHIFT, | ||
1603 | .recalc = &followparent_recalc, | 1650 | .recalc = &followparent_recalc, |
1604 | }; | 1651 | }; |
1605 | 1652 | ||
1606 | static struct clk sdrc_ick = { | 1653 | static struct clk sdrc_ick = { |
1607 | .name = "sdrc_ick", | 1654 | .name = "sdrc_ick", |
1608 | .ops = &clkops_omap2_dflt_wait, | 1655 | .ops = &clkops_omap2_iclk_idle_only, |
1609 | .parent = &l4_ck, | 1656 | .parent = &core_l3_ck, |
1610 | .flags = ENABLE_ON_INIT, | 1657 | .flags = ENABLE_ON_INIT, |
1611 | .clkdm_name = "core_l4_clkdm", | 1658 | .clkdm_name = "core_l3_clkdm", |
1612 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN3), | 1659 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN3), |
1613 | .enable_bit = OMAP2430_EN_SDRC_SHIFT, | 1660 | .enable_bit = OMAP2430_EN_SDRC_SHIFT, |
1614 | .recalc = &followparent_recalc, | 1661 | .recalc = &followparent_recalc, |
@@ -1616,7 +1663,7 @@ static struct clk sdrc_ick = { | |||
1616 | 1663 | ||
1617 | static struct clk des_ick = { | 1664 | static struct clk des_ick = { |
1618 | .name = "des_ick", | 1665 | .name = "des_ick", |
1619 | .ops = &clkops_omap2_dflt_wait, | 1666 | .ops = &clkops_omap2_iclk_dflt_wait, |
1620 | .parent = &l4_ck, | 1667 | .parent = &l4_ck, |
1621 | .clkdm_name = "core_l4_clkdm", | 1668 | .clkdm_name = "core_l4_clkdm", |
1622 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, OMAP24XX_CM_ICLKEN4), | 1669 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, OMAP24XX_CM_ICLKEN4), |
@@ -1626,7 +1673,7 @@ static struct clk des_ick = { | |||
1626 | 1673 | ||
1627 | static struct clk sha_ick = { | 1674 | static struct clk sha_ick = { |
1628 | .name = "sha_ick", | 1675 | .name = "sha_ick", |
1629 | .ops = &clkops_omap2_dflt_wait, | 1676 | .ops = &clkops_omap2_iclk_dflt_wait, |
1630 | .parent = &l4_ck, | 1677 | .parent = &l4_ck, |
1631 | .clkdm_name = "core_l4_clkdm", | 1678 | .clkdm_name = "core_l4_clkdm", |
1632 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, OMAP24XX_CM_ICLKEN4), | 1679 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, OMAP24XX_CM_ICLKEN4), |
@@ -1636,7 +1683,7 @@ static struct clk sha_ick = { | |||
1636 | 1683 | ||
1637 | static struct clk rng_ick = { | 1684 | static struct clk rng_ick = { |
1638 | .name = "rng_ick", | 1685 | .name = "rng_ick", |
1639 | .ops = &clkops_omap2_dflt_wait, | 1686 | .ops = &clkops_omap2_iclk_dflt_wait, |
1640 | .parent = &l4_ck, | 1687 | .parent = &l4_ck, |
1641 | .clkdm_name = "core_l4_clkdm", | 1688 | .clkdm_name = "core_l4_clkdm", |
1642 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, OMAP24XX_CM_ICLKEN4), | 1689 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, OMAP24XX_CM_ICLKEN4), |
@@ -1646,7 +1693,7 @@ static struct clk rng_ick = { | |||
1646 | 1693 | ||
1647 | static struct clk aes_ick = { | 1694 | static struct clk aes_ick = { |
1648 | .name = "aes_ick", | 1695 | .name = "aes_ick", |
1649 | .ops = &clkops_omap2_dflt_wait, | 1696 | .ops = &clkops_omap2_iclk_dflt_wait, |
1650 | .parent = &l4_ck, | 1697 | .parent = &l4_ck, |
1651 | .clkdm_name = "core_l4_clkdm", | 1698 | .clkdm_name = "core_l4_clkdm", |
1652 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, OMAP24XX_CM_ICLKEN4), | 1699 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, OMAP24XX_CM_ICLKEN4), |
@@ -1656,7 +1703,7 @@ static struct clk aes_ick = { | |||
1656 | 1703 | ||
1657 | static struct clk pka_ick = { | 1704 | static struct clk pka_ick = { |
1658 | .name = "pka_ick", | 1705 | .name = "pka_ick", |
1659 | .ops = &clkops_omap2_dflt_wait, | 1706 | .ops = &clkops_omap2_iclk_dflt_wait, |
1660 | .parent = &l4_ck, | 1707 | .parent = &l4_ck, |
1661 | .clkdm_name = "core_l4_clkdm", | 1708 | .clkdm_name = "core_l4_clkdm", |
1662 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, OMAP24XX_CM_ICLKEN4), | 1709 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, OMAP24XX_CM_ICLKEN4), |
@@ -1676,7 +1723,7 @@ static struct clk usb_fck = { | |||
1676 | 1723 | ||
1677 | static struct clk usbhs_ick = { | 1724 | static struct clk usbhs_ick = { |
1678 | .name = "usbhs_ick", | 1725 | .name = "usbhs_ick", |
1679 | .ops = &clkops_omap2_dflt_wait, | 1726 | .ops = &clkops_omap2_iclk_dflt_wait, |
1680 | .parent = &core_l3_ck, | 1727 | .parent = &core_l3_ck, |
1681 | .clkdm_name = "core_l3_clkdm", | 1728 | .clkdm_name = "core_l3_clkdm", |
1682 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN2), | 1729 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN2), |
@@ -1686,7 +1733,7 @@ static struct clk usbhs_ick = { | |||
1686 | 1733 | ||
1687 | static struct clk mmchs1_ick = { | 1734 | static struct clk mmchs1_ick = { |
1688 | .name = "mmchs1_ick", | 1735 | .name = "mmchs1_ick", |
1689 | .ops = &clkops_omap2_dflt_wait, | 1736 | .ops = &clkops_omap2_iclk_dflt_wait, |
1690 | .parent = &l4_ck, | 1737 | .parent = &l4_ck, |
1691 | .clkdm_name = "core_l4_clkdm", | 1738 | .clkdm_name = "core_l4_clkdm", |
1692 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN2), | 1739 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN2), |
@@ -1698,7 +1745,7 @@ static struct clk mmchs1_fck = { | |||
1698 | .name = "mmchs1_fck", | 1745 | .name = "mmchs1_fck", |
1699 | .ops = &clkops_omap2_dflt_wait, | 1746 | .ops = &clkops_omap2_dflt_wait, |
1700 | .parent = &func_96m_ck, | 1747 | .parent = &func_96m_ck, |
1701 | .clkdm_name = "core_l3_clkdm", | 1748 | .clkdm_name = "core_l4_clkdm", |
1702 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, OMAP24XX_CM_FCLKEN2), | 1749 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, OMAP24XX_CM_FCLKEN2), |
1703 | .enable_bit = OMAP2430_EN_MMCHS1_SHIFT, | 1750 | .enable_bit = OMAP2430_EN_MMCHS1_SHIFT, |
1704 | .recalc = &followparent_recalc, | 1751 | .recalc = &followparent_recalc, |
@@ -1706,7 +1753,7 @@ static struct clk mmchs1_fck = { | |||
1706 | 1753 | ||
1707 | static struct clk mmchs2_ick = { | 1754 | static struct clk mmchs2_ick = { |
1708 | .name = "mmchs2_ick", | 1755 | .name = "mmchs2_ick", |
1709 | .ops = &clkops_omap2_dflt_wait, | 1756 | .ops = &clkops_omap2_iclk_dflt_wait, |
1710 | .parent = &l4_ck, | 1757 | .parent = &l4_ck, |
1711 | .clkdm_name = "core_l4_clkdm", | 1758 | .clkdm_name = "core_l4_clkdm", |
1712 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN2), | 1759 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN2), |
@@ -1718,6 +1765,7 @@ static struct clk mmchs2_fck = { | |||
1718 | .name = "mmchs2_fck", | 1765 | .name = "mmchs2_fck", |
1719 | .ops = &clkops_omap2_dflt_wait, | 1766 | .ops = &clkops_omap2_dflt_wait, |
1720 | .parent = &func_96m_ck, | 1767 | .parent = &func_96m_ck, |
1768 | .clkdm_name = "core_l4_clkdm", | ||
1721 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, OMAP24XX_CM_FCLKEN2), | 1769 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, OMAP24XX_CM_FCLKEN2), |
1722 | .enable_bit = OMAP2430_EN_MMCHS2_SHIFT, | 1770 | .enable_bit = OMAP2430_EN_MMCHS2_SHIFT, |
1723 | .recalc = &followparent_recalc, | 1771 | .recalc = &followparent_recalc, |
@@ -1725,7 +1773,7 @@ static struct clk mmchs2_fck = { | |||
1725 | 1773 | ||
1726 | static struct clk gpio5_ick = { | 1774 | static struct clk gpio5_ick = { |
1727 | .name = "gpio5_ick", | 1775 | .name = "gpio5_ick", |
1728 | .ops = &clkops_omap2_dflt_wait, | 1776 | .ops = &clkops_omap2_iclk_dflt_wait, |
1729 | .parent = &l4_ck, | 1777 | .parent = &l4_ck, |
1730 | .clkdm_name = "core_l4_clkdm", | 1778 | .clkdm_name = "core_l4_clkdm", |
1731 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN2), | 1779 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN2), |
@@ -1745,7 +1793,7 @@ static struct clk gpio5_fck = { | |||
1745 | 1793 | ||
1746 | static struct clk mdm_intc_ick = { | 1794 | static struct clk mdm_intc_ick = { |
1747 | .name = "mdm_intc_ick", | 1795 | .name = "mdm_intc_ick", |
1748 | .ops = &clkops_omap2_dflt_wait, | 1796 | .ops = &clkops_omap2_iclk_dflt_wait, |
1749 | .parent = &l4_ck, | 1797 | .parent = &l4_ck, |
1750 | .clkdm_name = "core_l4_clkdm", | 1798 | .clkdm_name = "core_l4_clkdm", |
1751 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN2), | 1799 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN2), |
@@ -1808,6 +1856,12 @@ static struct omap_clk omap2430_clks[] = { | |||
1808 | CLK(NULL, "osc_ck", &osc_ck, CK_243X), | 1856 | CLK(NULL, "osc_ck", &osc_ck, CK_243X), |
1809 | CLK(NULL, "sys_ck", &sys_ck, CK_243X), | 1857 | CLK(NULL, "sys_ck", &sys_ck, CK_243X), |
1810 | CLK(NULL, "alt_ck", &alt_ck, CK_243X), | 1858 | CLK(NULL, "alt_ck", &alt_ck, CK_243X), |
1859 | CLK("omap-mcbsp.1", "pad_fck", &mcbsp_clks, CK_243X), | ||
1860 | CLK("omap-mcbsp.2", "pad_fck", &mcbsp_clks, CK_243X), | ||
1861 | CLK("omap-mcbsp.3", "pad_fck", &mcbsp_clks, CK_243X), | ||
1862 | CLK("omap-mcbsp.4", "pad_fck", &mcbsp_clks, CK_243X), | ||
1863 | CLK("omap-mcbsp.5", "pad_fck", &mcbsp_clks, CK_243X), | ||
1864 | CLK(NULL, "mcbsp_clks", &mcbsp_clks, CK_243X), | ||
1811 | /* internal analog sources */ | 1865 | /* internal analog sources */ |
1812 | CLK(NULL, "dpll_ck", &dpll_ck, CK_243X), | 1866 | CLK(NULL, "dpll_ck", &dpll_ck, CK_243X), |
1813 | CLK(NULL, "apll96_ck", &apll96_ck, CK_243X), | 1867 | CLK(NULL, "apll96_ck", &apll96_ck, CK_243X), |
@@ -1815,6 +1869,11 @@ static struct omap_clk omap2430_clks[] = { | |||
1815 | /* internal prcm root sources */ | 1869 | /* internal prcm root sources */ |
1816 | CLK(NULL, "func_54m_ck", &func_54m_ck, CK_243X), | 1870 | CLK(NULL, "func_54m_ck", &func_54m_ck, CK_243X), |
1817 | CLK(NULL, "core_ck", &core_ck, CK_243X), | 1871 | CLK(NULL, "core_ck", &core_ck, CK_243X), |
1872 | CLK("omap-mcbsp.1", "prcm_fck", &func_96m_ck, CK_243X), | ||
1873 | CLK("omap-mcbsp.2", "prcm_fck", &func_96m_ck, CK_243X), | ||
1874 | CLK("omap-mcbsp.3", "prcm_fck", &func_96m_ck, CK_243X), | ||
1875 | CLK("omap-mcbsp.4", "prcm_fck", &func_96m_ck, CK_243X), | ||
1876 | CLK("omap-mcbsp.5", "prcm_fck", &func_96m_ck, CK_243X), | ||
1818 | CLK(NULL, "func_96m_ck", &func_96m_ck, CK_243X), | 1877 | CLK(NULL, "func_96m_ck", &func_96m_ck, CK_243X), |
1819 | CLK(NULL, "func_48m_ck", &func_48m_ck, CK_243X), | 1878 | CLK(NULL, "func_48m_ck", &func_48m_ck, CK_243X), |
1820 | CLK(NULL, "func_12m_ck", &func_12m_ck, CK_243X), | 1879 | CLK(NULL, "func_12m_ck", &func_12m_ck, CK_243X), |
@@ -1826,7 +1885,6 @@ static struct omap_clk omap2430_clks[] = { | |||
1826 | CLK(NULL, "mpu_ck", &mpu_ck, CK_243X), | 1885 | CLK(NULL, "mpu_ck", &mpu_ck, CK_243X), |
1827 | /* dsp domain clocks */ | 1886 | /* dsp domain clocks */ |
1828 | CLK(NULL, "dsp_fck", &dsp_fck, CK_243X), | 1887 | CLK(NULL, "dsp_fck", &dsp_fck, CK_243X), |
1829 | CLK(NULL, "dsp_irate_ick", &dsp_irate_ick, CK_243X), | ||
1830 | CLK(NULL, "iva2_1_ick", &iva2_1_ick, CK_243X), | 1888 | CLK(NULL, "iva2_1_ick", &iva2_1_ick, CK_243X), |
1831 | /* GFX domain clocks */ | 1889 | /* GFX domain clocks */ |
1832 | CLK(NULL, "gfx_3d_fck", &gfx_3d_fck, CK_243X), | 1890 | CLK(NULL, "gfx_3d_fck", &gfx_3d_fck, CK_243X), |
@@ -1836,10 +1894,10 @@ static struct omap_clk omap2430_clks[] = { | |||
1836 | CLK(NULL, "mdm_ick", &mdm_ick, CK_243X), | 1894 | CLK(NULL, "mdm_ick", &mdm_ick, CK_243X), |
1837 | CLK(NULL, "mdm_osc_ck", &mdm_osc_ck, CK_243X), | 1895 | CLK(NULL, "mdm_osc_ck", &mdm_osc_ck, CK_243X), |
1838 | /* DSS domain clocks */ | 1896 | /* DSS domain clocks */ |
1839 | CLK("omapdss", "ick", &dss_ick, CK_243X), | 1897 | CLK("omapdss_dss", "ick", &dss_ick, CK_243X), |
1840 | CLK("omapdss", "dss1_fck", &dss1_fck, CK_243X), | 1898 | CLK("omapdss_dss", "fck", &dss1_fck, CK_243X), |
1841 | CLK("omapdss", "dss2_fck", &dss2_fck, CK_243X), | 1899 | CLK("omapdss_dss", "sys_clk", &dss2_fck, CK_243X), |
1842 | CLK("omapdss", "tv_fck", &dss_54m_fck, CK_243X), | 1900 | CLK("omapdss_dss", "tv_clk", &dss_54m_fck, CK_243X), |
1843 | /* L3 domain clocks */ | 1901 | /* L3 domain clocks */ |
1844 | CLK(NULL, "core_l3_ck", &core_l3_ck, CK_243X), | 1902 | CLK(NULL, "core_l3_ck", &core_l3_ck, CK_243X), |
1845 | CLK(NULL, "ssi_fck", &ssi_ssr_sst_fck, CK_243X), | 1903 | CLK(NULL, "ssi_fck", &ssi_ssr_sst_fck, CK_243X), |
@@ -1847,6 +1905,7 @@ static struct omap_clk omap2430_clks[] = { | |||
1847 | /* L4 domain clocks */ | 1905 | /* L4 domain clocks */ |
1848 | CLK(NULL, "l4_ck", &l4_ck, CK_243X), | 1906 | CLK(NULL, "l4_ck", &l4_ck, CK_243X), |
1849 | CLK(NULL, "ssi_l4_ick", &ssi_l4_ick, CK_243X), | 1907 | CLK(NULL, "ssi_l4_ick", &ssi_l4_ick, CK_243X), |
1908 | CLK(NULL, "wu_l4_ick", &wu_l4_ick, CK_243X), | ||
1850 | /* virtual meta-group clock */ | 1909 | /* virtual meta-group clock */ |
1851 | CLK(NULL, "virt_prcm_set", &virt_prcm_set, CK_243X), | 1910 | CLK(NULL, "virt_prcm_set", &virt_prcm_set, CK_243X), |
1852 | /* general l4 interface ck, multi-parent functional clk */ | 1911 | /* general l4 interface ck, multi-parent functional clk */ |
@@ -1915,10 +1974,10 @@ static struct omap_clk omap2430_clks[] = { | |||
1915 | CLK(NULL, "fac_fck", &fac_fck, CK_243X), | 1974 | CLK(NULL, "fac_fck", &fac_fck, CK_243X), |
1916 | CLK("omap_hdq.0", "ick", &hdq_ick, CK_243X), | 1975 | CLK("omap_hdq.0", "ick", &hdq_ick, CK_243X), |
1917 | CLK("omap_hdq.1", "fck", &hdq_fck, CK_243X), | 1976 | CLK("omap_hdq.1", "fck", &hdq_fck, CK_243X), |
1918 | CLK("i2c_omap.1", "ick", &i2c1_ick, CK_243X), | 1977 | CLK("omap_i2c.1", "ick", &i2c1_ick, CK_243X), |
1919 | CLK("i2c_omap.1", "fck", &i2chs1_fck, CK_243X), | 1978 | CLK("omap_i2c.1", "fck", &i2chs1_fck, CK_243X), |
1920 | CLK("i2c_omap.2", "ick", &i2c2_ick, CK_243X), | 1979 | CLK("omap_i2c.2", "ick", &i2c2_ick, CK_243X), |
1921 | CLK("i2c_omap.2", "fck", &i2chs2_fck, CK_243X), | 1980 | CLK("omap_i2c.2", "fck", &i2chs2_fck, CK_243X), |
1922 | CLK(NULL, "gpmc_fck", &gpmc_fck, CK_243X), | 1981 | CLK(NULL, "gpmc_fck", &gpmc_fck, CK_243X), |
1923 | CLK(NULL, "sdma_fck", &sdma_fck, CK_243X), | 1982 | CLK(NULL, "sdma_fck", &sdma_fck, CK_243X), |
1924 | CLK(NULL, "sdma_ick", &sdma_ick, CK_243X), | 1983 | CLK(NULL, "sdma_ick", &sdma_ick, CK_243X), |
@@ -1926,19 +1985,19 @@ static struct omap_clk omap2430_clks[] = { | |||
1926 | CLK(NULL, "des_ick", &des_ick, CK_243X), | 1985 | CLK(NULL, "des_ick", &des_ick, CK_243X), |
1927 | CLK("omap-sham", "ick", &sha_ick, CK_243X), | 1986 | CLK("omap-sham", "ick", &sha_ick, CK_243X), |
1928 | CLK("omap_rng", "ick", &rng_ick, CK_243X), | 1987 | CLK("omap_rng", "ick", &rng_ick, CK_243X), |
1929 | CLK(NULL, "aes_ick", &aes_ick, CK_243X), | 1988 | CLK("omap-aes", "ick", &aes_ick, CK_243X), |
1930 | CLK(NULL, "pka_ick", &pka_ick, CK_243X), | 1989 | CLK(NULL, "pka_ick", &pka_ick, CK_243X), |
1931 | CLK(NULL, "usb_fck", &usb_fck, CK_243X), | 1990 | CLK(NULL, "usb_fck", &usb_fck, CK_243X), |
1932 | CLK("musb_hdrc", "ick", &usbhs_ick, CK_243X), | 1991 | CLK("musb-omap2430", "ick", &usbhs_ick, CK_243X), |
1933 | CLK("mmci-omap-hs.0", "ick", &mmchs1_ick, CK_243X), | 1992 | CLK("omap_hsmmc.0", "ick", &mmchs1_ick, CK_243X), |
1934 | CLK("mmci-omap-hs.0", "fck", &mmchs1_fck, CK_243X), | 1993 | CLK("omap_hsmmc.0", "fck", &mmchs1_fck, CK_243X), |
1935 | CLK("mmci-omap-hs.1", "ick", &mmchs2_ick, CK_243X), | 1994 | CLK("omap_hsmmc.1", "ick", &mmchs2_ick, CK_243X), |
1936 | CLK("mmci-omap-hs.1", "fck", &mmchs2_fck, CK_243X), | 1995 | CLK("omap_hsmmc.1", "fck", &mmchs2_fck, CK_243X), |
1937 | CLK(NULL, "gpio5_ick", &gpio5_ick, CK_243X), | 1996 | CLK(NULL, "gpio5_ick", &gpio5_ick, CK_243X), |
1938 | CLK(NULL, "gpio5_fck", &gpio5_fck, CK_243X), | 1997 | CLK(NULL, "gpio5_fck", &gpio5_fck, CK_243X), |
1939 | CLK(NULL, "mdm_intc_ick", &mdm_intc_ick, CK_243X), | 1998 | CLK(NULL, "mdm_intc_ick", &mdm_intc_ick, CK_243X), |
1940 | CLK("mmci-omap-hs.0", "mmchsdb_fck", &mmchsdb1_fck, CK_243X), | 1999 | CLK("omap_hsmmc.0", "mmchsdb_fck", &mmchsdb1_fck, CK_243X), |
1941 | CLK("mmci-omap-hs.1", "mmchsdb_fck", &mmchsdb2_fck, CK_243X), | 2000 | CLK("omap_hsmmc.1", "mmchsdb_fck", &mmchsdb2_fck, CK_243X), |
1942 | }; | 2001 | }; |
1943 | 2002 | ||
1944 | /* | 2003 | /* |
@@ -1974,6 +2033,9 @@ int __init omap2430_clk_init(void) | |||
1974 | omap2_init_clk_clkdm(c->lk.clk); | 2033 | omap2_init_clk_clkdm(c->lk.clk); |
1975 | } | 2034 | } |
1976 | 2035 | ||
2036 | /* Disable autoidle on all clocks; let the PM code enable it later */ | ||
2037 | omap_clk_disable_autoidle_all(); | ||
2038 | |||
1977 | /* Check the MPU rate set by bootloader */ | 2039 | /* Check the MPU rate set by bootloader */ |
1978 | clkrate = omap2xxx_clk_get_core_rate(&dpll_ck); | 2040 | clkrate = omap2xxx_clk_get_core_rate(&dpll_ck); |
1979 | for (prcm = rate_table; prcm->mpu_speed; prcm++) { | 2041 | for (prcm = rate_table; prcm->mpu_speed; prcm++) { |