16 #include <linux/kernel.h>
19 #include <linux/list.h>
35 #define OMAP_CM_REGADDR OMAP2420_CM_REGADDR
55 static struct clk func_32k_ck = {
56 .name =
"func_32k_ck",
59 .clkdm_name =
"wkup_clkdm",
62 static struct clk secure_32k_ck = {
63 .name =
"secure_32k_ck",
66 .clkdm_name =
"wkup_clkdm",
70 static struct clk osc_ck = {
73 .clkdm_name =
"wkup_clkdm",
82 .clkdm_name =
"wkup_clkdm",
86 static struct clk alt_ck = {
90 .clkdm_name =
"wkup_clkdm",
94 static struct clk mcbsp_clks = {
108 static struct dpll_data dpll_dd = {
116 .max_multiplier = 1023,
125 static struct clk dpll_ck = {
129 .dpll_data = &dpll_dd,
130 .clkdm_name =
"wkup_clkdm",
135 static struct clk apll96_ck = {
141 .clkdm_name =
"wkup_clkdm",
146 static struct clk apll54_ck = {
152 .clkdm_name =
"wkup_clkdm",
163 static const struct clksel_rate func_54m_apll54_rates[] = {
164 { .div = 1, .val = 0, .flags = RATE_IN_24XX },
168 static const struct clksel_rate func_54m_alt_rates[] = {
169 { .div = 1, .val = 1, .flags = RATE_IN_24XX },
173 static const struct clksel func_54m_clksel[] = {
174 { .parent = &apll54_ck, .
rates = func_54m_apll54_rates, },
175 { .parent = &alt_ck, .
rates = func_54m_alt_rates, },
179 static struct clk func_54m_ck = {
180 .name =
"func_54m_ck",
182 .parent = &apll54_ck,
183 .clkdm_name =
"wkup_clkdm",
187 .clksel = func_54m_clksel,
191 static struct clk core_ck = {
195 .clkdm_name =
"wkup_clkdm",
199 static struct clk func_96m_ck = {
200 .name =
"func_96m_ck",
202 .parent = &apll96_ck,
203 .clkdm_name =
"wkup_clkdm",
209 static const struct clksel_rate func_48m_apll96_rates[] = {
210 { .div = 2, .val = 0, .flags = RATE_IN_24XX },
214 static const struct clksel_rate func_48m_alt_rates[] = {
215 { .div = 1, .val = 1, .flags = RATE_IN_24XX },
219 static const struct clksel func_48m_clksel[] = {
220 { .parent = &apll96_ck, .
rates = func_48m_apll96_rates },
221 { .parent = &alt_ck, .
rates = func_48m_alt_rates },
225 static struct clk func_48m_ck = {
226 .name =
"func_48m_ck",
228 .parent = &apll96_ck,
229 .clkdm_name =
"wkup_clkdm",
233 .clksel = func_48m_clksel,
239 static struct clk func_12m_ck = {
240 .name =
"func_12m_ck",
242 .parent = &func_48m_ck,
244 .clkdm_name =
"wkup_clkdm",
249 static struct clk wdt1_osc_ck = {
250 .name =
"ck_wdt1_osc",
264 static const struct clksel_rate common_clkout_src_core_rates[] = {
265 { .div = 1, .val = 0, .flags = RATE_IN_24XX },
269 static const struct clksel_rate common_clkout_src_sys_rates[] = {
270 { .div = 1, .val = 1, .flags = RATE_IN_24XX },
274 static const struct clksel_rate common_clkout_src_96m_rates[] = {
275 { .div = 1, .val = 2, .flags = RATE_IN_24XX },
279 static const struct clksel_rate common_clkout_src_54m_rates[] = {
280 { .div = 1, .val = 3, .flags = RATE_IN_24XX },
284 static const struct clksel common_clkout_src_clksel[] = {
285 { .parent = &core_ck, .
rates = common_clkout_src_core_rates },
286 { .parent = &
sys_ck, .rates = common_clkout_src_sys_rates },
287 { .parent = &func_96m_ck, .
rates = common_clkout_src_96m_rates },
288 { .parent = &func_54m_ck, .
rates = common_clkout_src_54m_rates },
292 static struct clk sys_clkout_src = {
293 .name =
"sys_clkout_src",
295 .parent = &func_54m_ck,
296 .clkdm_name =
"wkup_clkdm",
302 .clksel = common_clkout_src_clksel,
308 static const struct clksel_rate common_clkout_rates[] = {
309 { .div = 1, .val = 0, .flags = RATE_IN_24XX },
310 { .div = 2, .val = 1, .flags = RATE_IN_24XX },
311 { .div = 4, .val = 2, .flags = RATE_IN_24XX },
312 { .div = 8, .val = 3, .flags = RATE_IN_24XX },
313 { .div = 16, .val = 4, .flags = RATE_IN_24XX },
317 static const struct clksel sys_clkout_clksel[] = {
318 { .parent = &sys_clkout_src, .
rates = common_clkout_rates },
322 static struct clk sys_clkout = {
323 .name =
"sys_clkout",
325 .parent = &sys_clkout_src,
326 .clkdm_name =
"wkup_clkdm",
329 .clksel = sys_clkout_clksel,
336 static struct clk sys_clkout2_src = {
337 .name =
"sys_clkout2_src",
339 .parent = &func_54m_ck,
340 .clkdm_name =
"wkup_clkdm",
346 .clksel = common_clkout_src_clksel,
352 static const struct clksel sys_clkout2_clksel[] = {
353 { .parent = &sys_clkout2_src, .
rates = common_clkout_rates },
358 static struct clk sys_clkout2 = {
359 .name =
"sys_clkout2",
361 .parent = &sys_clkout2_src,
362 .clkdm_name =
"wkup_clkdm",
365 .clksel = sys_clkout2_clksel,
371 static struct clk emul_ck = {
374 .parent = &func_54m_ck,
375 .clkdm_name =
"wkup_clkdm",
392 static const struct clksel_rate mpu_core_rates[] = {
393 { .div = 1, .val = 1, .flags = RATE_IN_24XX },
394 { .div = 2, .val = 2, .flags = RATE_IN_24XX },
395 { .div = 4, .val = 4, .flags = RATE_IN_242X },
396 { .div = 6, .val = 6, .flags = RATE_IN_242X },
397 { .div = 8, .val = 8, .flags = RATE_IN_242X },
401 static const struct clksel mpu_clksel[] = {
402 { .parent = &core_ck, .
rates = mpu_core_rates },
406 static struct clk mpu_ck = {
410 .clkdm_name =
"mpu_clkdm",
414 .clksel = mpu_clksel,
428 static const struct clksel_rate dsp_fck_core_rates[] = {
429 { .div = 1, .val = 1, .flags = RATE_IN_24XX },
430 { .div = 2, .val = 2, .flags = RATE_IN_24XX },
431 { .div = 3, .val = 3, .flags = RATE_IN_24XX },
432 { .div = 4, .val = 4, .flags = RATE_IN_24XX },
433 { .div = 6, .val = 6, .flags = RATE_IN_242X },
434 { .div = 8, .val = 8, .flags = RATE_IN_242X },
435 { .div = 12, .val = 12, .flags = RATE_IN_242X },
439 static const struct clksel dsp_fck_clksel[] = {
440 { .parent = &core_ck, .
rates = dsp_fck_core_rates },
444 static struct clk dsp_fck = {
448 .clkdm_name =
"dsp_clkdm",
453 .clksel = dsp_fck_clksel,
457 static const struct clksel dsp_ick_clksel[] = {
462 static struct clk dsp_ick = {
466 .clkdm_name =
"dsp_clkdm",
471 .clksel = dsp_ick_clksel,
480 static struct clk iva1_ifck = {
484 .clkdm_name =
"iva1_clkdm",
489 .clksel = dsp_fck_clksel,
494 static struct clk iva1_mpu_int_ifck = {
495 .name =
"iva1_mpu_int_ifck",
497 .parent = &iva1_ifck,
498 .clkdm_name =
"iva1_clkdm",
524 static const struct clksel_rate core_l3_core_rates[] = {
525 { .div = 1, .val = 1, .flags = RATE_IN_24XX },
526 { .div = 2, .val = 2, .flags = RATE_IN_242X },
527 { .div = 4, .val = 4, .flags = RATE_IN_24XX },
528 { .div = 6, .val = 6, .flags = RATE_IN_24XX },
529 { .div = 8, .val = 8, .flags = RATE_IN_242X },
530 { .div = 12, .val = 12, .flags = RATE_IN_242X },
531 { .div = 16, .val = 16, .flags = RATE_IN_242X },
535 static const struct clksel core_l3_clksel[] = {
536 { .parent = &core_ck, .
rates = core_l3_core_rates },
540 static struct clk core_l3_ck = {
541 .name =
"core_l3_ck",
544 .clkdm_name =
"core_l3_clkdm",
547 .clksel = core_l3_clksel,
552 static const struct clksel_rate usb_l4_ick_core_l3_rates[] = {
553 { .div = 1, .val = 1, .flags = RATE_IN_24XX },
554 { .div = 2, .val = 2, .flags = RATE_IN_24XX },
555 { .div = 4, .val = 4, .flags = RATE_IN_24XX },
559 static const struct clksel usb_l4_ick_clksel[] = {
560 { .parent = &core_l3_ck, .
rates = usb_l4_ick_core_l3_rates },
565 static struct clk usb_l4_ick = {
566 .name =
"usb_l4_ick",
568 .parent = &core_l3_ck,
569 .clkdm_name =
"core_l4_clkdm",
574 .clksel = usb_l4_ick_clksel,
585 static const struct clksel_rate l4_core_l3_rates[] = {
586 { .div = 1, .val = 1, .flags = RATE_IN_24XX },
587 { .div = 2, .val = 2, .flags = RATE_IN_24XX },
591 static const struct clksel l4_clksel[] = {
592 { .parent = &core_l3_ck, .
rates = l4_core_l3_rates },
596 static struct clk l4_ck = {
599 .parent = &core_l3_ck,
600 .clkdm_name =
"core_l4_clkdm",
615 static const struct clksel_rate ssi_ssr_sst_fck_core_rates[] = {
616 { .div = 1, .val = 1, .flags = RATE_IN_24XX },
617 { .div = 2, .val = 2, .flags = RATE_IN_24XX },
618 { .div = 3, .val = 3, .flags = RATE_IN_24XX },
619 { .div = 4, .val = 4, .flags = RATE_IN_24XX },
620 { .div = 6, .val = 6, .flags = RATE_IN_242X },
621 { .div = 8, .val = 8, .flags = RATE_IN_242X },
625 static const struct clksel ssi_ssr_sst_fck_clksel[] = {
626 { .parent = &core_ck, .
rates = ssi_ssr_sst_fck_core_rates },
630 static struct clk ssi_ssr_sst_fck = {
634 .clkdm_name =
"core_l3_clkdm",
639 .clksel = ssi_ssr_sst_fck_clksel,
647 static struct clk ssi_l4_ick = {
648 .name =
"ssi_l4_ick",
651 .clkdm_name =
"core_l4_clkdm",
671 static const struct clksel gfx_fck_clksel[] = {
676 static struct clk gfx_3d_fck = {
677 .name =
"gfx_3d_fck",
679 .parent = &core_l3_ck,
680 .clkdm_name =
"gfx_clkdm",
685 .clksel = gfx_fck_clksel,
691 static struct clk gfx_2d_fck = {
692 .name =
"gfx_2d_fck",
694 .parent = &core_l3_ck,
695 .clkdm_name =
"gfx_clkdm",
700 .clksel = gfx_fck_clksel,
705 static struct clk gfx_ick = {
708 .parent = &core_l3_ck,
709 .clkdm_name =
"gfx_clkdm",
725 static const struct clksel_rate dss1_fck_sys_rates[] = {
726 { .div = 1, .val = 0, .flags = RATE_IN_24XX },
730 static const struct clksel_rate dss1_fck_core_rates[] = {
731 { .div = 1, .val = 1, .flags = RATE_IN_24XX },
732 { .div = 2, .val = 2, .flags = RATE_IN_24XX },
733 { .div = 3, .val = 3, .flags = RATE_IN_24XX },
734 { .div = 4, .val = 4, .flags = RATE_IN_24XX },
735 { .div = 5, .val = 5, .flags = RATE_IN_24XX },
736 { .div = 6, .val = 6, .flags = RATE_IN_24XX },
737 { .div = 8, .val = 8, .flags = RATE_IN_24XX },
738 { .div = 9, .val = 9, .flags = RATE_IN_24XX },
739 { .div = 12, .val = 12, .flags = RATE_IN_24XX },
740 { .div = 16, .val = 16, .flags = RATE_IN_24XX },
744 static const struct clksel dss1_fck_clksel[] = {
745 { .parent = &
sys_ck, .rates = dss1_fck_sys_rates },
746 { .parent = &core_ck, .
rates = dss1_fck_core_rates },
750 static struct clk dss_ick = {
754 .clkdm_name =
"dss_clkdm",
760 static struct clk dss1_fck = {
764 .clkdm_name =
"dss_clkdm",
770 .clksel = dss1_fck_clksel,
774 static const struct clksel_rate dss2_fck_sys_rates[] = {
775 { .div = 1, .val = 0, .flags = RATE_IN_24XX },
779 static const struct clksel_rate dss2_fck_48m_rates[] = {
780 { .div = 1, .val = 1, .flags = RATE_IN_24XX },
784 static const struct clksel dss2_fck_clksel[] = {
785 { .parent = &
sys_ck, .rates = dss2_fck_sys_rates },
786 { .parent = &func_48m_ck, .
rates = dss2_fck_48m_rates },
790 static struct clk dss2_fck = {
794 .clkdm_name =
"dss_clkdm",
800 .clksel = dss2_fck_clksel,
804 static struct clk dss_54m_fck = {
805 .name =
"dss_54m_fck",
807 .parent = &func_54m_ck,
808 .clkdm_name =
"dss_clkdm",
814 static struct clk wu_l4_ick = {
818 .clkdm_name =
"wkup_clkdm",
828 static const struct clksel_rate gpt_alt_rates[] = {
829 { .div = 1, .val = 2, .flags = RATE_IN_24XX },
833 static const struct clksel omap24xx_gpt_clksel[] = {
836 { .parent = &alt_ck, .
rates = gpt_alt_rates },
840 static struct clk gpt1_ick = {
843 .parent = &wu_l4_ick,
844 .clkdm_name =
"wkup_clkdm",
850 static struct clk gpt1_fck = {
853 .parent = &func_32k_ck,
854 .clkdm_name =
"core_l4_clkdm",
860 .clksel = omap24xx_gpt_clksel,
866 static struct clk gpt2_ick = {
870 .clkdm_name =
"core_l4_clkdm",
876 static struct clk gpt2_fck = {
879 .parent = &func_32k_ck,
880 .clkdm_name =
"core_l4_clkdm",
886 .clksel = omap24xx_gpt_clksel,
890 static struct clk gpt3_ick = {
894 .clkdm_name =
"core_l4_clkdm",
900 static struct clk gpt3_fck = {
903 .parent = &func_32k_ck,
904 .clkdm_name =
"core_l4_clkdm",
910 .clksel = omap24xx_gpt_clksel,
914 static struct clk gpt4_ick = {
918 .clkdm_name =
"core_l4_clkdm",
924 static struct clk gpt4_fck = {
927 .parent = &func_32k_ck,
928 .clkdm_name =
"core_l4_clkdm",
934 .clksel = omap24xx_gpt_clksel,
938 static struct clk gpt5_ick = {
942 .clkdm_name =
"core_l4_clkdm",
948 static struct clk gpt5_fck = {
951 .parent = &func_32k_ck,
952 .clkdm_name =
"core_l4_clkdm",
958 .clksel = omap24xx_gpt_clksel,
962 static struct clk gpt6_ick = {
966 .clkdm_name =
"core_l4_clkdm",
972 static struct clk gpt6_fck = {
975 .parent = &func_32k_ck,
976 .clkdm_name =
"core_l4_clkdm",
982 .clksel = omap24xx_gpt_clksel,
986 static struct clk gpt7_ick = {
990 .clkdm_name =
"core_l4_clkdm",
996 static struct clk gpt7_fck = {
999 .parent = &func_32k_ck,
1000 .clkdm_name =
"core_l4_clkdm",
1006 .clksel = omap24xx_gpt_clksel,
1010 static struct clk gpt8_ick = {
1014 .clkdm_name =
"core_l4_clkdm",
1020 static struct clk gpt8_fck = {
1023 .parent = &func_32k_ck,
1024 .clkdm_name =
"core_l4_clkdm",
1030 .clksel = omap24xx_gpt_clksel,
1034 static struct clk gpt9_ick = {
1038 .clkdm_name =
"core_l4_clkdm",
1044 static struct clk gpt9_fck = {
1047 .parent = &func_32k_ck,
1048 .clkdm_name =
"core_l4_clkdm",
1054 .clksel = omap24xx_gpt_clksel,
1058 static struct clk gpt10_ick = {
1059 .name =
"gpt10_ick",
1062 .clkdm_name =
"core_l4_clkdm",
1068 static struct clk gpt10_fck = {
1069 .name =
"gpt10_fck",
1071 .parent = &func_32k_ck,
1072 .clkdm_name =
"core_l4_clkdm",
1078 .clksel = omap24xx_gpt_clksel,
1082 static struct clk gpt11_ick = {
1083 .name =
"gpt11_ick",
1086 .clkdm_name =
"core_l4_clkdm",
1092 static struct clk gpt11_fck = {
1093 .name =
"gpt11_fck",
1095 .parent = &func_32k_ck,
1096 .clkdm_name =
"core_l4_clkdm",
1102 .clksel = omap24xx_gpt_clksel,
1106 static struct clk gpt12_ick = {
1107 .name =
"gpt12_ick",
1110 .clkdm_name =
"core_l4_clkdm",
1116 static struct clk gpt12_fck = {
1117 .name =
"gpt12_fck",
1119 .parent = &secure_32k_ck,
1120 .clkdm_name =
"core_l4_clkdm",
1126 .clksel = omap24xx_gpt_clksel,
1130 static struct clk mcbsp1_ick = {
1131 .name =
"mcbsp1_ick",
1134 .clkdm_name =
"core_l4_clkdm",
1140 static const struct clksel_rate common_mcbsp_96m_rates[] = {
1141 { .div = 1, .val = 0, .flags = RATE_IN_24XX },
1145 static const struct clksel_rate common_mcbsp_mcbsp_rates[] = {
1146 { .div = 1, .val = 1, .flags = RATE_IN_24XX },
1150 static const struct clksel mcbsp_fck_clksel[] = {
1151 { .parent = &func_96m_ck, .
rates = common_mcbsp_96m_rates },
1152 { .parent = &mcbsp_clks, .
rates = common_mcbsp_mcbsp_rates },
1156 static struct clk mcbsp1_fck = {
1157 .name =
"mcbsp1_fck",
1159 .parent = &func_96m_ck,
1161 .clkdm_name =
"core_l4_clkdm",
1166 .clksel = mcbsp_fck_clksel,
1170 static struct clk mcbsp2_ick = {
1171 .name =
"mcbsp2_ick",
1174 .clkdm_name =
"core_l4_clkdm",
1180 static struct clk mcbsp2_fck = {
1181 .name =
"mcbsp2_fck",
1183 .parent = &func_96m_ck,
1185 .clkdm_name =
"core_l4_clkdm",
1190 .clksel = mcbsp_fck_clksel,
1194 static struct clk mcspi1_ick = {
1195 .name =
"mcspi1_ick",
1198 .clkdm_name =
"core_l4_clkdm",
1204 static struct clk mcspi1_fck = {
1205 .name =
"mcspi1_fck",
1207 .parent = &func_48m_ck,
1208 .clkdm_name =
"core_l4_clkdm",
1214 static struct clk mcspi2_ick = {
1215 .name =
"mcspi2_ick",
1218 .clkdm_name =
"core_l4_clkdm",
1224 static struct clk mcspi2_fck = {
1225 .name =
"mcspi2_fck",
1227 .parent = &func_48m_ck,
1228 .clkdm_name =
"core_l4_clkdm",
1234 static struct clk uart1_ick = {
1235 .name =
"uart1_ick",
1238 .clkdm_name =
"core_l4_clkdm",
1244 static struct clk uart1_fck = {
1245 .name =
"uart1_fck",
1247 .parent = &func_48m_ck,
1248 .clkdm_name =
"core_l4_clkdm",
1254 static struct clk uart2_ick = {
1255 .name =
"uart2_ick",
1258 .clkdm_name =
"core_l4_clkdm",
1264 static struct clk uart2_fck = {
1265 .name =
"uart2_fck",
1267 .parent = &func_48m_ck,
1268 .clkdm_name =
"core_l4_clkdm",
1274 static struct clk uart3_ick = {
1275 .name =
"uart3_ick",
1278 .clkdm_name =
"core_l4_clkdm",
1284 static struct clk uart3_fck = {
1285 .name =
"uart3_fck",
1287 .parent = &func_48m_ck,
1288 .clkdm_name =
"core_l4_clkdm",
1294 static struct clk gpios_ick = {
1295 .name =
"gpios_ick",
1297 .parent = &wu_l4_ick,
1298 .clkdm_name =
"wkup_clkdm",
1304 static struct clk gpios_fck = {
1305 .name =
"gpios_fck",
1307 .parent = &func_32k_ck,
1308 .clkdm_name =
"wkup_clkdm",
1314 static struct clk mpu_wdt_ick = {
1315 .name =
"mpu_wdt_ick",
1317 .parent = &wu_l4_ick,
1318 .clkdm_name =
"wkup_clkdm",
1324 static struct clk mpu_wdt_fck = {
1325 .name =
"mpu_wdt_fck",
1327 .parent = &func_32k_ck,
1328 .clkdm_name =
"wkup_clkdm",
1334 static struct clk sync_32k_ick = {
1335 .name =
"sync_32k_ick",
1337 .parent = &wu_l4_ick,
1338 .clkdm_name =
"wkup_clkdm",
1345 static struct clk wdt1_ick = {
1348 .parent = &wu_l4_ick,
1349 .clkdm_name =
"wkup_clkdm",
1355 static struct clk omapctrl_ick = {
1356 .name =
"omapctrl_ick",
1358 .parent = &wu_l4_ick,
1359 .clkdm_name =
"wkup_clkdm",
1366 static struct clk cam_ick = {
1370 .clkdm_name =
"core_l4_clkdm",
1381 static struct clk cam_fck = {
1384 .parent = &func_96m_ck,
1385 .clkdm_name =
"core_l3_clkdm",
1391 static struct clk mailboxes_ick = {
1392 .name =
"mailboxes_ick",
1395 .clkdm_name =
"core_l4_clkdm",
1401 static struct clk wdt4_ick = {
1405 .clkdm_name =
"core_l4_clkdm",
1411 static struct clk wdt4_fck = {
1414 .parent = &func_32k_ck,
1415 .clkdm_name =
"core_l4_clkdm",
1421 static struct clk wdt3_ick = {
1425 .clkdm_name =
"core_l4_clkdm",
1431 static struct clk wdt3_fck = {
1434 .parent = &func_32k_ck,
1435 .clkdm_name =
"core_l4_clkdm",
1441 static struct clk mspro_ick = {
1442 .name =
"mspro_ick",
1445 .clkdm_name =
"core_l4_clkdm",
1451 static struct clk mspro_fck = {
1452 .name =
"mspro_fck",
1454 .parent = &func_96m_ck,
1455 .clkdm_name =
"core_l4_clkdm",
1461 static struct clk mmc_ick = {
1465 .clkdm_name =
"core_l4_clkdm",
1471 static struct clk mmc_fck = {
1474 .parent = &func_96m_ck,
1475 .clkdm_name =
"core_l4_clkdm",
1481 static struct clk fac_ick = {
1485 .clkdm_name =
"core_l4_clkdm",
1491 static struct clk fac_fck = {
1494 .parent = &func_12m_ck,
1495 .clkdm_name =
"core_l4_clkdm",
1501 static struct clk eac_ick = {
1505 .clkdm_name =
"core_l4_clkdm",
1511 static struct clk eac_fck = {
1514 .parent = &func_96m_ck,
1515 .clkdm_name =
"core_l4_clkdm",
1521 static struct clk hdq_ick = {
1525 .clkdm_name =
"core_l4_clkdm",
1531 static struct clk hdq_fck = {
1534 .parent = &func_12m_ck,
1535 .clkdm_name =
"core_l4_clkdm",
1541 static struct clk i2c2_ick = {
1545 .clkdm_name =
"core_l4_clkdm",
1551 static struct clk i2c2_fck = {
1554 .parent = &func_12m_ck,
1555 .clkdm_name =
"core_l4_clkdm",
1561 static struct clk i2c1_ick = {
1565 .clkdm_name =
"core_l4_clkdm",
1571 static struct clk i2c1_fck = {
1574 .parent = &func_12m_ck,
1575 .clkdm_name =
"core_l4_clkdm",
1585 static struct clk gpmc_fck = {
1588 .parent = &core_l3_ck,
1590 .clkdm_name =
"core_l3_clkdm",
1596 static struct clk sdma_fck = {
1599 .parent = &core_l3_ck,
1600 .clkdm_name =
"core_l3_clkdm",
1608 static struct clk sdma_ick = {
1611 .parent = &core_l3_ck,
1612 .clkdm_name =
"core_l3_clkdm",
1622 static struct clk sdrc_ick = {
1625 .parent = &core_l3_ck,
1627 .clkdm_name =
"core_l3_clkdm",
1633 static struct clk vlynq_ick = {
1634 .name =
"vlynq_ick",
1636 .parent = &core_l3_ck,
1637 .clkdm_name =
"core_l3_clkdm",
1643 static const struct clksel_rate vlynq_fck_96m_rates[] = {
1644 { .div = 1, .val = 0, .flags = RATE_IN_242X },
1648 static const struct clksel_rate vlynq_fck_core_rates[] = {
1649 { .div = 1, .val = 1, .flags = RATE_IN_242X },
1650 { .div = 2, .val = 2, .flags = RATE_IN_242X },
1651 { .div = 3, .val = 3, .flags = RATE_IN_242X },
1652 { .div = 4, .val = 4, .flags = RATE_IN_242X },
1653 { .div = 6, .val = 6, .flags = RATE_IN_242X },
1654 { .div = 8, .val = 8, .flags = RATE_IN_242X },
1655 { .div = 9, .val = 9, .flags = RATE_IN_242X },
1656 { .div = 12, .val = 12, .flags = RATE_IN_242X },
1657 { .div = 16, .val = 16, .flags = RATE_IN_242X },
1658 { .div = 18, .val = 18, .flags = RATE_IN_242X },
1662 static const struct clksel vlynq_fck_clksel[] = {
1663 { .parent = &func_96m_ck, .
rates = vlynq_fck_96m_rates },
1664 { .parent = &core_ck, .
rates = vlynq_fck_core_rates },
1668 static struct clk vlynq_fck = {
1669 .name =
"vlynq_fck",
1671 .parent = &func_96m_ck,
1672 .clkdm_name =
"core_l3_clkdm",
1678 .clksel = vlynq_fck_clksel,
1682 static struct clk des_ick = {
1686 .clkdm_name =
"core_l4_clkdm",
1692 static struct clk sha_ick = {
1696 .clkdm_name =
"core_l4_clkdm",
1702 static struct clk rng_ick = {
1706 .clkdm_name =
"core_l4_clkdm",
1712 static struct clk aes_ick = {
1716 .clkdm_name =
"core_l4_clkdm",
1722 static struct clk pka_ick = {
1726 .clkdm_name =
"core_l4_clkdm",
1732 static struct clk usb_fck = {
1735 .parent = &func_48m_ck,
1736 .clkdm_name =
"core_l3_clkdm",
1756 static struct clk virt_prcm_set = {
1757 .name =
"virt_prcm_set",
1770 static struct omap_clk omap2420_clks[] = {
1806 CLK(
"omapdss_dss",
"ick", &dss_ick,
CK_242X),
1846 CLK(
"omap-mcbsp.1",
"ick", &mcbsp1_ick,
CK_242X),
1849 CLK(
"omap-mcbsp.2",
"ick", &mcbsp2_ick,
CK_242X),
1852 CLK(
"omap2_mcspi.1",
"ick", &mcspi1_ick,
CK_242X),
1855 CLK(
"omap2_mcspi.2",
"ick", &mcspi2_ick,
CK_242X),
1866 CLK(
"omap_wdt",
"ick", &mpu_wdt_ick,
CK_242X),
1872 CLK(
"omap24xxcam",
"fck", &cam_fck,
CK_242X),
1874 CLK(
"omap24xxcam",
"ick", &cam_ick,
CK_242X),
1883 CLK(
"mmci-omap.0",
"ick", &mmc_ick,
CK_242X),
1885 CLK(
"mmci-omap.0",
"fck", &mmc_fck,
CK_242X),
1895 CLK(
"omap_i2c.1",
"ick", &i2c1_ick,
CK_242X),
1898 CLK(
"omap_i2c.2",
"ick", &i2c2_ick,
CK_242X),
1940 for (c = omap2420_clks; c < omap2420_clks +
ARRAY_SIZE(omap2420_clks);
1949 for (c = omap2420_clks; c < omap2420_clks +
ARRAY_SIZE(omap2420_clks);
1973 pr_info(
"Clocking rate (Crystal/DPLL/MPU): %ld.%01ld/%ld/%ld MHz\n",
1974 (sys_ck.
rate / 1000000), (sys_ck.
rate / 100000) % 10,
1975 (dpll_ck.
rate / 1000000), (mpu_ck.
rate / 1000000)) ;