These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / drivers / clk / ti / clk-3xxx-legacy.c
1 /*
2  * OMAP3 Legacy clock data
3  *
4  * Copyright (C) 2014 Texas Instruments, Inc
5  *     Tero Kristo (t-kristo@ti.com)
6  *
7  * This program is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU General Public License as
9  * published by the Free Software Foundation version 2.
10  *
11  * This program is distributed "as is" WITHOUT ANY WARRANTY of any
12  * kind, whether express or implied; without even the implied warranty
13  * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU General Public License for more details.
15  */
16
17 #include <linux/kernel.h>
18 #include <linux/clk.h>
19 #include <linux/clk-provider.h>
20 #include <linux/clk/ti.h>
21
22 #include "clock.h"
23
24 static struct ti_clk_fixed virt_12m_ck_data = {
25         .frequency = 12000000,
26 };
27
28 static struct ti_clk virt_12m_ck = {
29         .name = "virt_12m_ck",
30         .type = TI_CLK_FIXED,
31         .data = &virt_12m_ck_data,
32 };
33
34 static struct ti_clk_fixed virt_13m_ck_data = {
35         .frequency = 13000000,
36 };
37
38 static struct ti_clk virt_13m_ck = {
39         .name = "virt_13m_ck",
40         .type = TI_CLK_FIXED,
41         .data = &virt_13m_ck_data,
42 };
43
44 static struct ti_clk_fixed virt_19200000_ck_data = {
45         .frequency = 19200000,
46 };
47
48 static struct ti_clk virt_19200000_ck = {
49         .name = "virt_19200000_ck",
50         .type = TI_CLK_FIXED,
51         .data = &virt_19200000_ck_data,
52 };
53
54 static struct ti_clk_fixed virt_26000000_ck_data = {
55         .frequency = 26000000,
56 };
57
58 static struct ti_clk virt_26000000_ck = {
59         .name = "virt_26000000_ck",
60         .type = TI_CLK_FIXED,
61         .data = &virt_26000000_ck_data,
62 };
63
64 static struct ti_clk_fixed virt_38_4m_ck_data = {
65         .frequency = 38400000,
66 };
67
68 static struct ti_clk virt_38_4m_ck = {
69         .name = "virt_38_4m_ck",
70         .type = TI_CLK_FIXED,
71         .data = &virt_38_4m_ck_data,
72 };
73
74 static struct ti_clk_fixed virt_16_8m_ck_data = {
75         .frequency = 16800000,
76 };
77
78 static struct ti_clk virt_16_8m_ck = {
79         .name = "virt_16_8m_ck",
80         .type = TI_CLK_FIXED,
81         .data = &virt_16_8m_ck_data,
82 };
83
84 static const char *osc_sys_ck_parents[] = {
85         "virt_12m_ck",
86         "virt_13m_ck",
87         "virt_19200000_ck",
88         "virt_26000000_ck",
89         "virt_38_4m_ck",
90         "virt_16_8m_ck",
91 };
92
93 static struct ti_clk_mux osc_sys_ck_data = {
94         .num_parents = ARRAY_SIZE(osc_sys_ck_parents),
95         .reg = 0xd40,
96         .module = TI_CLKM_PRM,
97         .parents = osc_sys_ck_parents,
98 };
99
100 static struct ti_clk osc_sys_ck = {
101         .name = "osc_sys_ck",
102         .type = TI_CLK_MUX,
103         .data = &osc_sys_ck_data,
104 };
105
106 static struct ti_clk_divider sys_ck_data = {
107         .parent = "osc_sys_ck",
108         .bit_shift = 6,
109         .max_div = 3,
110         .reg = 0x1270,
111         .module = TI_CLKM_PRM,
112         .flags = CLKF_INDEX_STARTS_AT_ONE,
113 };
114
115 static struct ti_clk sys_ck = {
116         .name = "sys_ck",
117         .type = TI_CLK_DIVIDER,
118         .data = &sys_ck_data,
119 };
120
121 static const char *dpll3_ck_parents[] = {
122         "sys_ck",
123         "sys_ck",
124 };
125
126 static struct ti_clk_dpll dpll3_ck_data = {
127         .num_parents = ARRAY_SIZE(dpll3_ck_parents),
128         .control_reg = 0xd00,
129         .idlest_reg = 0xd20,
130         .mult_div1_reg = 0xd40,
131         .autoidle_reg = 0xd30,
132         .module = TI_CLKM_CM,
133         .parents = dpll3_ck_parents,
134         .flags = CLKF_CORE,
135         .freqsel_mask = 0xf0,
136         .div1_mask = 0x7f00,
137         .idlest_mask = 0x1,
138         .auto_recal_bit = 0x3,
139         .max_divider = 0x80,
140         .min_divider = 0x1,
141         .recal_en_bit = 0x5,
142         .max_multiplier = 0x7ff,
143         .enable_mask = 0x7,
144         .mult_mask = 0x7ff0000,
145         .recal_st_bit = 0x5,
146         .autoidle_mask = 0x7,
147 };
148
149 static struct ti_clk dpll3_ck = {
150         .name = "dpll3_ck",
151         .clkdm_name = "dpll3_clkdm",
152         .type = TI_CLK_DPLL,
153         .data = &dpll3_ck_data,
154 };
155
156 static struct ti_clk_divider dpll3_m2_ck_data = {
157         .parent = "dpll3_ck",
158         .bit_shift = 27,
159         .max_div = 31,
160         .reg = 0xd40,
161         .module = TI_CLKM_CM,
162         .flags = CLKF_INDEX_STARTS_AT_ONE,
163 };
164
165 static struct ti_clk dpll3_m2_ck = {
166         .name = "dpll3_m2_ck",
167         .type = TI_CLK_DIVIDER,
168         .data = &dpll3_m2_ck_data,
169 };
170
171 static struct ti_clk_fixed_factor core_ck_data = {
172         .parent = "dpll3_m2_ck",
173         .div = 1,
174         .mult = 1,
175 };
176
177 static struct ti_clk core_ck = {
178         .name = "core_ck",
179         .type = TI_CLK_FIXED_FACTOR,
180         .data = &core_ck_data,
181 };
182
183 static struct ti_clk_divider l3_ick_data = {
184         .parent = "core_ck",
185         .max_div = 3,
186         .reg = 0xa40,
187         .module = TI_CLKM_CM,
188         .flags = CLKF_INDEX_STARTS_AT_ONE,
189 };
190
191 static struct ti_clk l3_ick = {
192         .name = "l3_ick",
193         .type = TI_CLK_DIVIDER,
194         .data = &l3_ick_data,
195 };
196
197 static struct ti_clk_fixed_factor security_l3_ick_data = {
198         .parent = "l3_ick",
199         .div = 1,
200         .mult = 1,
201 };
202
203 static struct ti_clk security_l3_ick = {
204         .name = "security_l3_ick",
205         .type = TI_CLK_FIXED_FACTOR,
206         .data = &security_l3_ick_data,
207 };
208
209 static struct ti_clk_fixed_factor wkup_l4_ick_data = {
210         .parent = "sys_ck",
211         .div = 1,
212         .mult = 1,
213 };
214
215 static struct ti_clk wkup_l4_ick = {
216         .name = "wkup_l4_ick",
217         .type = TI_CLK_FIXED_FACTOR,
218         .data = &wkup_l4_ick_data,
219 };
220
221 static struct ti_clk_gate usim_ick_data = {
222         .parent = "wkup_l4_ick",
223         .bit_shift = 9,
224         .reg = 0xc10,
225         .module = TI_CLKM_CM,
226         .flags = CLKF_OMAP3 | CLKF_INTERFACE,
227 };
228
229 static struct ti_clk usim_ick = {
230         .name = "usim_ick",
231         .clkdm_name = "wkup_clkdm",
232         .type = TI_CLK_GATE,
233         .data = &usim_ick_data,
234 };
235
236 static struct ti_clk_gate dss2_alwon_fck_data = {
237         .parent = "sys_ck",
238         .bit_shift = 1,
239         .reg = 0xe00,
240         .module = TI_CLKM_CM,
241 };
242
243 static struct ti_clk dss2_alwon_fck = {
244         .name = "dss2_alwon_fck",
245         .clkdm_name = "dss_clkdm",
246         .type = TI_CLK_GATE,
247         .data = &dss2_alwon_fck_data,
248 };
249
250 static struct ti_clk_divider l4_ick_data = {
251         .parent = "l3_ick",
252         .bit_shift = 2,
253         .max_div = 3,
254         .reg = 0xa40,
255         .module = TI_CLKM_CM,
256         .flags = CLKF_INDEX_STARTS_AT_ONE,
257 };
258
259 static struct ti_clk l4_ick = {
260         .name = "l4_ick",
261         .type = TI_CLK_DIVIDER,
262         .data = &l4_ick_data,
263 };
264
265 static struct ti_clk_fixed_factor core_l4_ick_data = {
266         .parent = "l4_ick",
267         .div = 1,
268         .mult = 1,
269 };
270
271 static struct ti_clk core_l4_ick = {
272         .name = "core_l4_ick",
273         .type = TI_CLK_FIXED_FACTOR,
274         .data = &core_l4_ick_data,
275 };
276
277 static struct ti_clk_gate mmchs2_ick_data = {
278         .parent = "core_l4_ick",
279         .bit_shift = 25,
280         .reg = 0xa10,
281         .module = TI_CLKM_CM,
282         .flags = CLKF_OMAP3 | CLKF_INTERFACE,
283 };
284
285 static struct ti_clk mmchs2_ick = {
286         .name = "mmchs2_ick",
287         .clkdm_name = "core_l4_clkdm",
288         .type = TI_CLK_GATE,
289         .data = &mmchs2_ick_data,
290 };
291
292 static const char *dpll4_ck_parents[] = {
293         "sys_ck",
294         "sys_ck",
295 };
296
297 static struct ti_clk_dpll dpll4_ck_data = {
298         .num_parents = ARRAY_SIZE(dpll4_ck_parents),
299         .control_reg = 0xd00,
300         .idlest_reg = 0xd20,
301         .mult_div1_reg = 0xd44,
302         .autoidle_reg = 0xd30,
303         .module = TI_CLKM_CM,
304         .parents = dpll4_ck_parents,
305         .flags = CLKF_PER,
306         .freqsel_mask = 0xf00000,
307         .modes = 0x82,
308         .div1_mask = 0x7f,
309         .idlest_mask = 0x2,
310         .auto_recal_bit = 0x13,
311         .max_divider = 0x80,
312         .min_divider = 0x1,
313         .recal_en_bit = 0x6,
314         .max_multiplier = 0x7ff,
315         .enable_mask = 0x70000,
316         .mult_mask = 0x7ff00,
317         .recal_st_bit = 0x6,
318         .autoidle_mask = 0x38,
319 };
320
321 static struct ti_clk dpll4_ck = {
322         .name = "dpll4_ck",
323         .clkdm_name = "dpll4_clkdm",
324         .type = TI_CLK_DPLL,
325         .data = &dpll4_ck_data,
326 };
327
328 static struct ti_clk_divider dpll4_m2_ck_data = {
329         .parent = "dpll4_ck",
330         .max_div = 63,
331         .reg = 0xd48,
332         .module = TI_CLKM_CM,
333         .flags = CLKF_INDEX_STARTS_AT_ONE,
334 };
335
336 static struct ti_clk dpll4_m2_ck = {
337         .name = "dpll4_m2_ck",
338         .type = TI_CLK_DIVIDER,
339         .data = &dpll4_m2_ck_data,
340 };
341
342 static struct ti_clk_fixed_factor dpll4_m2x2_mul_ck_data = {
343         .parent = "dpll4_m2_ck",
344         .div = 1,
345         .mult = 2,
346 };
347
348 static struct ti_clk dpll4_m2x2_mul_ck = {
349         .name = "dpll4_m2x2_mul_ck",
350         .type = TI_CLK_FIXED_FACTOR,
351         .data = &dpll4_m2x2_mul_ck_data,
352 };
353
354 static struct ti_clk_gate dpll4_m2x2_ck_data = {
355         .parent = "dpll4_m2x2_mul_ck",
356         .bit_shift = 0x1b,
357         .reg = 0xd00,
358         .module = TI_CLKM_CM,
359         .flags = CLKF_SET_BIT_TO_DISABLE,
360 };
361
362 static struct ti_clk dpll4_m2x2_ck = {
363         .name = "dpll4_m2x2_ck",
364         .type = TI_CLK_GATE,
365         .data = &dpll4_m2x2_ck_data,
366 };
367
368 static struct ti_clk_fixed_factor omap_96m_alwon_fck_data = {
369         .parent = "dpll4_m2x2_ck",
370         .div = 1,
371         .mult = 1,
372 };
373
374 static struct ti_clk omap_96m_alwon_fck = {
375         .name = "omap_96m_alwon_fck",
376         .type = TI_CLK_FIXED_FACTOR,
377         .data = &omap_96m_alwon_fck_data,
378 };
379
380 static struct ti_clk_fixed_factor cm_96m_fck_data = {
381         .parent = "omap_96m_alwon_fck",
382         .div = 1,
383         .mult = 1,
384 };
385
386 static struct ti_clk cm_96m_fck = {
387         .name = "cm_96m_fck",
388         .type = TI_CLK_FIXED_FACTOR,
389         .data = &cm_96m_fck_data,
390 };
391
392 static const char *omap_96m_fck_parents[] = {
393         "cm_96m_fck",
394         "sys_ck",
395 };
396
397 static struct ti_clk_mux omap_96m_fck_data = {
398         .bit_shift = 6,
399         .num_parents = ARRAY_SIZE(omap_96m_fck_parents),
400         .reg = 0xd40,
401         .module = TI_CLKM_CM,
402         .parents = omap_96m_fck_parents,
403 };
404
405 static struct ti_clk omap_96m_fck = {
406         .name = "omap_96m_fck",
407         .type = TI_CLK_MUX,
408         .data = &omap_96m_fck_data,
409 };
410
411 static struct ti_clk_fixed_factor core_96m_fck_data = {
412         .parent = "omap_96m_fck",
413         .div = 1,
414         .mult = 1,
415 };
416
417 static struct ti_clk core_96m_fck = {
418         .name = "core_96m_fck",
419         .type = TI_CLK_FIXED_FACTOR,
420         .data = &core_96m_fck_data,
421 };
422
423 static struct ti_clk_gate mspro_fck_data = {
424         .parent = "core_96m_fck",
425         .bit_shift = 23,
426         .reg = 0xa00,
427         .module = TI_CLKM_CM,
428         .flags = CLKF_WAIT,
429 };
430
431 static struct ti_clk mspro_fck = {
432         .name = "mspro_fck",
433         .clkdm_name = "core_l4_clkdm",
434         .type = TI_CLK_GATE,
435         .data = &mspro_fck_data,
436 };
437
438 static struct ti_clk_gate dss_ick_3430es2_data = {
439         .parent = "l4_ick",
440         .bit_shift = 0,
441         .reg = 0xe10,
442         .module = TI_CLKM_CM,
443         .flags = CLKF_DSS | CLKF_OMAP3 | CLKF_INTERFACE,
444 };
445
446 static struct ti_clk dss_ick_3430es2 = {
447         .name = "dss_ick",
448         .clkdm_name = "dss_clkdm",
449         .type = TI_CLK_GATE,
450         .data = &dss_ick_3430es2_data,
451 };
452
453 static struct ti_clk_gate uart4_ick_am35xx_data = {
454         .parent = "core_l4_ick",
455         .bit_shift = 23,
456         .reg = 0xa10,
457         .module = TI_CLKM_CM,
458         .flags = CLKF_OMAP3 | CLKF_INTERFACE,
459 };
460
461 static struct ti_clk uart4_ick_am35xx = {
462         .name = "uart4_ick_am35xx",
463         .clkdm_name = "core_l4_clkdm",
464         .type = TI_CLK_GATE,
465         .data = &uart4_ick_am35xx_data,
466 };
467
468 static struct ti_clk_fixed_factor security_l4_ick2_data = {
469         .parent = "l4_ick",
470         .div = 1,
471         .mult = 1,
472 };
473
474 static struct ti_clk security_l4_ick2 = {
475         .name = "security_l4_ick2",
476         .type = TI_CLK_FIXED_FACTOR,
477         .data = &security_l4_ick2_data,
478 };
479
480 static struct ti_clk_gate aes1_ick_data = {
481         .parent = "security_l4_ick2",
482         .bit_shift = 3,
483         .reg = 0xa14,
484         .module = TI_CLKM_CM,
485         .flags = CLKF_OMAP3 | CLKF_INTERFACE,
486 };
487
488 static struct ti_clk aes1_ick = {
489         .name = "aes1_ick",
490         .type = TI_CLK_GATE,
491         .data = &aes1_ick_data,
492 };
493
494 static const char *dpll5_ck_parents[] = {
495         "sys_ck",
496         "sys_ck",
497 };
498
499 static struct ti_clk_dpll dpll5_ck_data = {
500         .num_parents = ARRAY_SIZE(dpll5_ck_parents),
501         .control_reg = 0xd04,
502         .idlest_reg = 0xd24,
503         .mult_div1_reg = 0xd4c,
504         .autoidle_reg = 0xd34,
505         .module = TI_CLKM_CM,
506         .parents = dpll5_ck_parents,
507         .freqsel_mask = 0xf0,
508         .modes = 0x82,
509         .div1_mask = 0x7f,
510         .idlest_mask = 0x1,
511         .auto_recal_bit = 0x3,
512         .max_divider = 0x80,
513         .min_divider = 0x1,
514         .recal_en_bit = 0x19,
515         .max_multiplier = 0x7ff,
516         .enable_mask = 0x7,
517         .mult_mask = 0x7ff00,
518         .recal_st_bit = 0x19,
519         .autoidle_mask = 0x7,
520 };
521
522 static struct ti_clk dpll5_ck = {
523         .name = "dpll5_ck",
524         .clkdm_name = "dpll5_clkdm",
525         .type = TI_CLK_DPLL,
526         .data = &dpll5_ck_data,
527 };
528
529 static struct ti_clk_divider dpll5_m2_ck_data = {
530         .parent = "dpll5_ck",
531         .max_div = 31,
532         .reg = 0xd50,
533         .module = TI_CLKM_CM,
534         .flags = CLKF_INDEX_STARTS_AT_ONE,
535 };
536
537 static struct ti_clk dpll5_m2_ck = {
538         .name = "dpll5_m2_ck",
539         .type = TI_CLK_DIVIDER,
540         .data = &dpll5_m2_ck_data,
541 };
542
543 static struct ti_clk_gate usbhost_120m_fck_data = {
544         .parent = "dpll5_m2_ck",
545         .bit_shift = 1,
546         .reg = 0x1400,
547         .module = TI_CLKM_CM,
548 };
549
550 static struct ti_clk usbhost_120m_fck = {
551         .name = "usbhost_120m_fck",
552         .clkdm_name = "usbhost_clkdm",
553         .type = TI_CLK_GATE,
554         .data = &usbhost_120m_fck_data,
555 };
556
557 static struct ti_clk_fixed_factor cm_96m_d2_fck_data = {
558         .parent = "cm_96m_fck",
559         .div = 2,
560         .mult = 1,
561 };
562
563 static struct ti_clk cm_96m_d2_fck = {
564         .name = "cm_96m_d2_fck",
565         .type = TI_CLK_FIXED_FACTOR,
566         .data = &cm_96m_d2_fck_data,
567 };
568
569 static struct ti_clk_fixed sys_altclk_data = {
570         .frequency = 0x0,
571 };
572
573 static struct ti_clk sys_altclk = {
574         .name = "sys_altclk",
575         .type = TI_CLK_FIXED,
576         .data = &sys_altclk_data,
577 };
578
579 static const char *omap_48m_fck_parents[] = {
580         "cm_96m_d2_fck",
581         "sys_altclk",
582 };
583
584 static struct ti_clk_mux omap_48m_fck_data = {
585         .bit_shift = 3,
586         .num_parents = ARRAY_SIZE(omap_48m_fck_parents),
587         .reg = 0xd40,
588         .module = TI_CLKM_CM,
589         .parents = omap_48m_fck_parents,
590 };
591
592 static struct ti_clk omap_48m_fck = {
593         .name = "omap_48m_fck",
594         .type = TI_CLK_MUX,
595         .data = &omap_48m_fck_data,
596 };
597
598 static struct ti_clk_fixed_factor core_48m_fck_data = {
599         .parent = "omap_48m_fck",
600         .div = 1,
601         .mult = 1,
602 };
603
604 static struct ti_clk core_48m_fck = {
605         .name = "core_48m_fck",
606         .type = TI_CLK_FIXED_FACTOR,
607         .data = &core_48m_fck_data,
608 };
609
610 static struct ti_clk_fixed mcbsp_clks_data = {
611         .frequency = 0x0,
612 };
613
614 static struct ti_clk mcbsp_clks = {
615         .name = "mcbsp_clks",
616         .type = TI_CLK_FIXED,
617         .data = &mcbsp_clks_data,
618 };
619
620 static struct ti_clk_gate mcbsp2_gate_fck_data = {
621         .parent = "mcbsp_clks",
622         .bit_shift = 0,
623         .reg = 0x1000,
624         .module = TI_CLKM_CM,
625 };
626
627 static struct ti_clk_fixed_factor per_96m_fck_data = {
628         .parent = "omap_96m_alwon_fck",
629         .div = 1,
630         .mult = 1,
631 };
632
633 static struct ti_clk per_96m_fck = {
634         .name = "per_96m_fck",
635         .type = TI_CLK_FIXED_FACTOR,
636         .data = &per_96m_fck_data,
637 };
638
639 static const char *mcbsp2_mux_fck_parents[] = {
640         "per_96m_fck",
641         "mcbsp_clks",
642 };
643
644 static struct ti_clk_mux mcbsp2_mux_fck_data = {
645         .bit_shift = 6,
646         .num_parents = ARRAY_SIZE(mcbsp2_mux_fck_parents),
647         .reg = 0x274,
648         .module = TI_CLKM_SCRM,
649         .parents = mcbsp2_mux_fck_parents,
650 };
651
652 static struct ti_clk_composite mcbsp2_fck_data = {
653         .mux = &mcbsp2_mux_fck_data,
654         .gate = &mcbsp2_gate_fck_data,
655 };
656
657 static struct ti_clk mcbsp2_fck = {
658         .name = "mcbsp2_fck",
659         .type = TI_CLK_COMPOSITE,
660         .data = &mcbsp2_fck_data,
661 };
662
663 static struct ti_clk_fixed_factor dpll3_m2x2_ck_data = {
664         .parent = "dpll3_m2_ck",
665         .div = 1,
666         .mult = 2,
667 };
668
669 static struct ti_clk dpll3_m2x2_ck = {
670         .name = "dpll3_m2x2_ck",
671         .type = TI_CLK_FIXED_FACTOR,
672         .data = &dpll3_m2x2_ck_data,
673 };
674
675 static struct ti_clk_fixed_factor corex2_fck_data = {
676         .parent = "dpll3_m2x2_ck",
677         .div = 1,
678         .mult = 1,
679 };
680
681 static struct ti_clk corex2_fck = {
682         .name = "corex2_fck",
683         .type = TI_CLK_FIXED_FACTOR,
684         .data = &corex2_fck_data,
685 };
686
687 static struct ti_clk_gate ssi_ssr_gate_fck_3430es1_data = {
688         .parent = "corex2_fck",
689         .bit_shift = 0,
690         .reg = 0xa00,
691         .module = TI_CLKM_CM,
692         .flags = CLKF_NO_WAIT,
693 };
694
695 static int ssi_ssr_div_fck_3430es1_divs[] = {
696         0,
697         1,
698         2,
699         3,
700         4,
701         0,
702         6,
703         0,
704         8,
705 };
706
707 static struct ti_clk_divider ssi_ssr_div_fck_3430es1_data = {
708         .num_dividers = ARRAY_SIZE(ssi_ssr_div_fck_3430es1_divs),
709         .parent = "corex2_fck",
710         .bit_shift = 8,
711         .dividers = ssi_ssr_div_fck_3430es1_divs,
712         .reg = 0xa40,
713         .module = TI_CLKM_CM,
714 };
715
716 static struct ti_clk_composite ssi_ssr_fck_3430es1_data = {
717         .gate = &ssi_ssr_gate_fck_3430es1_data,
718         .divider = &ssi_ssr_div_fck_3430es1_data,
719 };
720
721 static struct ti_clk ssi_ssr_fck_3430es1 = {
722         .name = "ssi_ssr_fck",
723         .type = TI_CLK_COMPOSITE,
724         .data = &ssi_ssr_fck_3430es1_data,
725 };
726
727 static struct ti_clk_fixed_factor ssi_sst_fck_3430es1_data = {
728         .parent = "ssi_ssr_fck",
729         .div = 2,
730         .mult = 1,
731 };
732
733 static struct ti_clk ssi_sst_fck_3430es1 = {
734         .name = "ssi_sst_fck",
735         .type = TI_CLK_FIXED_FACTOR,
736         .data = &ssi_sst_fck_3430es1_data,
737 };
738
739 static struct ti_clk_fixed omap_32k_fck_data = {
740         .frequency = 32768,
741 };
742
743 static struct ti_clk omap_32k_fck = {
744         .name = "omap_32k_fck",
745         .type = TI_CLK_FIXED,
746         .data = &omap_32k_fck_data,
747 };
748
749 static struct ti_clk_fixed_factor per_32k_alwon_fck_data = {
750         .parent = "omap_32k_fck",
751         .div = 1,
752         .mult = 1,
753 };
754
755 static struct ti_clk per_32k_alwon_fck = {
756         .name = "per_32k_alwon_fck",
757         .type = TI_CLK_FIXED_FACTOR,
758         .data = &per_32k_alwon_fck_data,
759 };
760
761 static struct ti_clk_gate gpio5_dbck_data = {
762         .parent = "per_32k_alwon_fck",
763         .bit_shift = 16,
764         .reg = 0x1000,
765         .module = TI_CLKM_CM,
766 };
767
768 static struct ti_clk gpio5_dbck = {
769         .name = "gpio5_dbck",
770         .clkdm_name = "per_clkdm",
771         .type = TI_CLK_GATE,
772         .data = &gpio5_dbck_data,
773 };
774
775 static struct ti_clk_gate gpt1_ick_data = {
776         .parent = "wkup_l4_ick",
777         .bit_shift = 0,
778         .reg = 0xc10,
779         .module = TI_CLKM_CM,
780         .flags = CLKF_OMAP3 | CLKF_INTERFACE,
781 };
782
783 static struct ti_clk gpt1_ick = {
784         .name = "gpt1_ick",
785         .clkdm_name = "wkup_clkdm",
786         .type = TI_CLK_GATE,
787         .data = &gpt1_ick_data,
788 };
789
790 static struct ti_clk_gate mcspi3_fck_data = {
791         .parent = "core_48m_fck",
792         .bit_shift = 20,
793         .reg = 0xa00,
794         .module = TI_CLKM_CM,
795         .flags = CLKF_WAIT,
796 };
797
798 static struct ti_clk mcspi3_fck = {
799         .name = "mcspi3_fck",
800         .clkdm_name = "core_l4_clkdm",
801         .type = TI_CLK_GATE,
802         .data = &mcspi3_fck_data,
803 };
804
805 static struct ti_clk_gate gpt2_gate_fck_data = {
806         .parent = "sys_ck",
807         .bit_shift = 3,
808         .reg = 0x1000,
809         .module = TI_CLKM_CM,
810 };
811
812 static const char *gpt2_mux_fck_parents[] = {
813         "omap_32k_fck",
814         "sys_ck",
815 };
816
817 static struct ti_clk_mux gpt2_mux_fck_data = {
818         .num_parents = ARRAY_SIZE(gpt2_mux_fck_parents),
819         .reg = 0x1040,
820         .module = TI_CLKM_CM,
821         .parents = gpt2_mux_fck_parents,
822 };
823
824 static struct ti_clk_composite gpt2_fck_data = {
825         .mux = &gpt2_mux_fck_data,
826         .gate = &gpt2_gate_fck_data,
827 };
828
829 static struct ti_clk gpt2_fck = {
830         .name = "gpt2_fck",
831         .type = TI_CLK_COMPOSITE,
832         .data = &gpt2_fck_data,
833 };
834
835 static struct ti_clk_gate gpt10_ick_data = {
836         .parent = "core_l4_ick",
837         .bit_shift = 11,
838         .reg = 0xa10,
839         .module = TI_CLKM_CM,
840         .flags = CLKF_OMAP3 | CLKF_INTERFACE,
841 };
842
843 static struct ti_clk gpt10_ick = {
844         .name = "gpt10_ick",
845         .clkdm_name = "core_l4_clkdm",
846         .type = TI_CLK_GATE,
847         .data = &gpt10_ick_data,
848 };
849
850 static struct ti_clk_gate uart2_fck_data = {
851         .parent = "core_48m_fck",
852         .bit_shift = 14,
853         .reg = 0xa00,
854         .module = TI_CLKM_CM,
855         .flags = CLKF_WAIT,
856 };
857
858 static struct ti_clk uart2_fck = {
859         .name = "uart2_fck",
860         .clkdm_name = "core_l4_clkdm",
861         .type = TI_CLK_GATE,
862         .data = &uart2_fck_data,
863 };
864
865 static struct ti_clk_fixed_factor sr_l4_ick_data = {
866         .parent = "l4_ick",
867         .div = 1,
868         .mult = 1,
869 };
870
871 static struct ti_clk sr_l4_ick = {
872         .name = "sr_l4_ick",
873         .type = TI_CLK_FIXED_FACTOR,
874         .data = &sr_l4_ick_data,
875 };
876
877 static struct ti_clk_fixed_factor omap_96m_d8_fck_data = {
878         .parent = "omap_96m_fck",
879         .div = 8,
880         .mult = 1,
881 };
882
883 static struct ti_clk omap_96m_d8_fck = {
884         .name = "omap_96m_d8_fck",
885         .type = TI_CLK_FIXED_FACTOR,
886         .data = &omap_96m_d8_fck_data,
887 };
888
889 static struct ti_clk_divider dpll4_m5_ck_data = {
890         .parent = "dpll4_ck",
891         .max_div = 63,
892         .reg = 0xf40,
893         .module = TI_CLKM_CM,
894         .flags = CLKF_INDEX_STARTS_AT_ONE,
895 };
896
897 static struct ti_clk dpll4_m5_ck = {
898         .name = "dpll4_m5_ck",
899         .type = TI_CLK_DIVIDER,
900         .data = &dpll4_m5_ck_data,
901 };
902
903 static struct ti_clk_fixed_factor dpll4_m5x2_mul_ck_data = {
904         .parent = "dpll4_m5_ck",
905         .div = 1,
906         .mult = 2,
907         .flags = CLKF_SET_RATE_PARENT,
908 };
909
910 static struct ti_clk dpll4_m5x2_mul_ck = {
911         .name = "dpll4_m5x2_mul_ck",
912         .type = TI_CLK_FIXED_FACTOR,
913         .data = &dpll4_m5x2_mul_ck_data,
914 };
915
916 static struct ti_clk_gate dpll4_m5x2_ck_data = {
917         .parent = "dpll4_m5x2_mul_ck",
918         .bit_shift = 0x1e,
919         .reg = 0xd00,
920         .module = TI_CLKM_CM,
921         .flags = CLKF_SET_BIT_TO_DISABLE,
922 };
923
924 static struct ti_clk dpll4_m5x2_ck = {
925         .name = "dpll4_m5x2_ck",
926         .type = TI_CLK_GATE,
927         .data = &dpll4_m5x2_ck_data,
928 };
929
930 static struct ti_clk_gate cam_mclk_data = {
931         .parent = "dpll4_m5x2_ck",
932         .bit_shift = 0,
933         .reg = 0xf00,
934         .module = TI_CLKM_CM,
935         .flags = CLKF_SET_RATE_PARENT,
936 };
937
938 static struct ti_clk cam_mclk = {
939         .name = "cam_mclk",
940         .type = TI_CLK_GATE,
941         .data = &cam_mclk_data,
942 };
943
944 static struct ti_clk_gate mcbsp3_gate_fck_data = {
945         .parent = "mcbsp_clks",
946         .bit_shift = 1,
947         .reg = 0x1000,
948         .module = TI_CLKM_CM,
949 };
950
951 static const char *mcbsp3_mux_fck_parents[] = {
952         "per_96m_fck",
953         "mcbsp_clks",
954 };
955
956 static struct ti_clk_mux mcbsp3_mux_fck_data = {
957         .num_parents = ARRAY_SIZE(mcbsp3_mux_fck_parents),
958         .reg = 0x2d8,
959         .module = TI_CLKM_SCRM,
960         .parents = mcbsp3_mux_fck_parents,
961 };
962
963 static struct ti_clk_composite mcbsp3_fck_data = {
964         .mux = &mcbsp3_mux_fck_data,
965         .gate = &mcbsp3_gate_fck_data,
966 };
967
968 static struct ti_clk mcbsp3_fck = {
969         .name = "mcbsp3_fck",
970         .type = TI_CLK_COMPOSITE,
971         .data = &mcbsp3_fck_data,
972 };
973
974 static struct ti_clk_gate csi2_96m_fck_data = {
975         .parent = "core_96m_fck",
976         .bit_shift = 1,
977         .reg = 0xf00,
978         .module = TI_CLKM_CM,
979 };
980
981 static struct ti_clk csi2_96m_fck = {
982         .name = "csi2_96m_fck",
983         .clkdm_name = "cam_clkdm",
984         .type = TI_CLK_GATE,
985         .data = &csi2_96m_fck_data,
986 };
987
988 static struct ti_clk_gate gpt9_gate_fck_data = {
989         .parent = "sys_ck",
990         .bit_shift = 10,
991         .reg = 0x1000,
992         .module = TI_CLKM_CM,
993 };
994
995 static const char *gpt9_mux_fck_parents[] = {
996         "omap_32k_fck",
997         "sys_ck",
998 };
999
1000 static struct ti_clk_mux gpt9_mux_fck_data = {
1001         .bit_shift = 7,
1002         .num_parents = ARRAY_SIZE(gpt9_mux_fck_parents),
1003         .reg = 0x1040,
1004         .module = TI_CLKM_CM,
1005         .parents = gpt9_mux_fck_parents,
1006 };
1007
1008 static struct ti_clk_composite gpt9_fck_data = {
1009         .mux = &gpt9_mux_fck_data,
1010         .gate = &gpt9_gate_fck_data,
1011 };
1012
1013 static struct ti_clk gpt9_fck = {
1014         .name = "gpt9_fck",
1015         .type = TI_CLK_COMPOSITE,
1016         .data = &gpt9_fck_data,
1017 };
1018
1019 static struct ti_clk_divider dpll3_m3_ck_data = {
1020         .parent = "dpll3_ck",
1021         .bit_shift = 16,
1022         .max_div = 31,
1023         .reg = 0x1140,
1024         .module = TI_CLKM_CM,
1025         .flags = CLKF_INDEX_STARTS_AT_ONE,
1026 };
1027
1028 static struct ti_clk dpll3_m3_ck = {
1029         .name = "dpll3_m3_ck",
1030         .type = TI_CLK_DIVIDER,
1031         .data = &dpll3_m3_ck_data,
1032 };
1033
1034 static struct ti_clk_fixed_factor dpll3_m3x2_mul_ck_data = {
1035         .parent = "dpll3_m3_ck",
1036         .div = 1,
1037         .mult = 2,
1038 };
1039
1040 static struct ti_clk dpll3_m3x2_mul_ck = {
1041         .name = "dpll3_m3x2_mul_ck",
1042         .type = TI_CLK_FIXED_FACTOR,
1043         .data = &dpll3_m3x2_mul_ck_data,
1044 };
1045
1046 static struct ti_clk_gate sr2_fck_data = {
1047         .parent = "sys_ck",
1048         .bit_shift = 7,
1049         .reg = 0xc00,
1050         .module = TI_CLKM_CM,
1051         .flags = CLKF_WAIT,
1052 };
1053
1054 static struct ti_clk sr2_fck = {
1055         .name = "sr2_fck",
1056         .clkdm_name = "wkup_clkdm",
1057         .type = TI_CLK_GATE,
1058         .data = &sr2_fck_data,
1059 };
1060
1061 static struct ti_clk_fixed pclk_ck_data = {
1062         .frequency = 27000000,
1063 };
1064
1065 static struct ti_clk pclk_ck = {
1066         .name = "pclk_ck",
1067         .type = TI_CLK_FIXED,
1068         .data = &pclk_ck_data,
1069 };
1070
1071 static struct ti_clk_gate wdt2_ick_data = {
1072         .parent = "wkup_l4_ick",
1073         .bit_shift = 5,
1074         .reg = 0xc10,
1075         .module = TI_CLKM_CM,
1076         .flags = CLKF_OMAP3 | CLKF_INTERFACE,
1077 };
1078
1079 static struct ti_clk wdt2_ick = {
1080         .name = "wdt2_ick",
1081         .clkdm_name = "wkup_clkdm",
1082         .type = TI_CLK_GATE,
1083         .data = &wdt2_ick_data,
1084 };
1085
1086 static struct ti_clk_fixed_factor core_l3_ick_data = {
1087         .parent = "l3_ick",
1088         .div = 1,
1089         .mult = 1,
1090 };
1091
1092 static struct ti_clk core_l3_ick = {
1093         .name = "core_l3_ick",
1094         .type = TI_CLK_FIXED_FACTOR,
1095         .data = &core_l3_ick_data,
1096 };
1097
1098 static struct ti_clk_gate mcspi4_fck_data = {
1099         .parent = "core_48m_fck",
1100         .bit_shift = 21,
1101         .reg = 0xa00,
1102         .module = TI_CLKM_CM,
1103         .flags = CLKF_WAIT,
1104 };
1105
1106 static struct ti_clk mcspi4_fck = {
1107         .name = "mcspi4_fck",
1108         .clkdm_name = "core_l4_clkdm",
1109         .type = TI_CLK_GATE,
1110         .data = &mcspi4_fck_data,
1111 };
1112
1113 static struct ti_clk_fixed_factor per_48m_fck_data = {
1114         .parent = "omap_48m_fck",
1115         .div = 1,
1116         .mult = 1,
1117 };
1118
1119 static struct ti_clk per_48m_fck = {
1120         .name = "per_48m_fck",
1121         .type = TI_CLK_FIXED_FACTOR,
1122         .data = &per_48m_fck_data,
1123 };
1124
1125 static struct ti_clk_gate uart4_fck_data = {
1126         .parent = "per_48m_fck",
1127         .bit_shift = 18,
1128         .reg = 0x1000,
1129         .module = TI_CLKM_CM,
1130         .flags = CLKF_WAIT,
1131 };
1132
1133 static struct ti_clk uart4_fck = {
1134         .name = "uart4_fck",
1135         .clkdm_name = "per_clkdm",
1136         .type = TI_CLK_GATE,
1137         .data = &uart4_fck_data,
1138 };
1139
1140 static struct ti_clk_fixed_factor omap_96m_d10_fck_data = {
1141         .parent = "omap_96m_fck",
1142         .div = 10,
1143         .mult = 1,
1144 };
1145
1146 static struct ti_clk omap_96m_d10_fck = {
1147         .name = "omap_96m_d10_fck",
1148         .type = TI_CLK_FIXED_FACTOR,
1149         .data = &omap_96m_d10_fck_data,
1150 };
1151
1152 static struct ti_clk_gate usim_gate_fck_data = {
1153         .parent = "omap_96m_fck",
1154         .bit_shift = 9,
1155         .reg = 0xc00,
1156         .module = TI_CLKM_CM,
1157 };
1158
1159 static struct ti_clk_fixed_factor per_l4_ick_data = {
1160         .parent = "l4_ick",
1161         .div = 1,
1162         .mult = 1,
1163 };
1164
1165 static struct ti_clk per_l4_ick = {
1166         .name = "per_l4_ick",
1167         .type = TI_CLK_FIXED_FACTOR,
1168         .data = &per_l4_ick_data,
1169 };
1170
1171 static struct ti_clk_gate gpt5_ick_data = {
1172         .parent = "per_l4_ick",
1173         .bit_shift = 6,
1174         .reg = 0x1010,
1175         .module = TI_CLKM_CM,
1176         .flags = CLKF_OMAP3 | CLKF_INTERFACE,
1177 };
1178
1179 static struct ti_clk gpt5_ick = {
1180         .name = "gpt5_ick",
1181         .clkdm_name = "per_clkdm",
1182         .type = TI_CLK_GATE,
1183         .data = &gpt5_ick_data,
1184 };
1185
1186 static struct ti_clk_gate mcspi2_ick_data = {
1187         .parent = "core_l4_ick",
1188         .bit_shift = 19,
1189         .reg = 0xa10,
1190         .module = TI_CLKM_CM,
1191         .flags = CLKF_OMAP3 | CLKF_INTERFACE,
1192 };
1193
1194 static struct ti_clk mcspi2_ick = {
1195         .name = "mcspi2_ick",
1196         .clkdm_name = "core_l4_clkdm",
1197         .type = TI_CLK_GATE,
1198         .data = &mcspi2_ick_data,
1199 };
1200
1201 static struct ti_clk_fixed_factor ssi_l4_ick_data = {
1202         .parent = "l4_ick",
1203         .div = 1,
1204         .mult = 1,
1205 };
1206
1207 static struct ti_clk ssi_l4_ick = {
1208         .name = "ssi_l4_ick",
1209         .clkdm_name = "core_l4_clkdm",
1210         .type = TI_CLK_FIXED_FACTOR,
1211         .data = &ssi_l4_ick_data,
1212 };
1213
1214 static struct ti_clk_gate ssi_ick_3430es1_data = {
1215         .parent = "ssi_l4_ick",
1216         .bit_shift = 0,
1217         .reg = 0xa10,
1218         .module = TI_CLKM_CM,
1219         .flags = CLKF_OMAP3 | CLKF_NO_WAIT | CLKF_INTERFACE,
1220 };
1221
1222 static struct ti_clk ssi_ick_3430es1 = {
1223         .name = "ssi_ick",
1224         .clkdm_name = "core_l4_clkdm",
1225         .type = TI_CLK_GATE,
1226         .data = &ssi_ick_3430es1_data,
1227 };
1228
1229 static struct ti_clk_gate i2c2_fck_data = {
1230         .parent = "core_96m_fck",
1231         .bit_shift = 16,
1232         .reg = 0xa00,
1233         .module = TI_CLKM_CM,
1234         .flags = CLKF_WAIT,
1235 };
1236
1237 static struct ti_clk i2c2_fck = {
1238         .name = "i2c2_fck",
1239         .clkdm_name = "core_l4_clkdm",
1240         .type = TI_CLK_GATE,
1241         .data = &i2c2_fck_data,
1242 };
1243
1244 static struct ti_clk_divider dpll1_fck_data = {
1245         .parent = "core_ck",
1246         .bit_shift = 19,
1247         .max_div = 7,
1248         .reg = 0x940,
1249         .module = TI_CLKM_CM,
1250         .flags = CLKF_INDEX_STARTS_AT_ONE,
1251 };
1252
1253 static struct ti_clk dpll1_fck = {
1254         .name = "dpll1_fck",
1255         .type = TI_CLK_DIVIDER,
1256         .data = &dpll1_fck_data,
1257 };
1258
1259 static const char *dpll1_ck_parents[] = {
1260         "sys_ck",
1261         "dpll1_fck",
1262 };
1263
1264 static struct ti_clk_dpll dpll1_ck_data = {
1265         .num_parents = ARRAY_SIZE(dpll1_ck_parents),
1266         .control_reg = 0x904,
1267         .idlest_reg = 0x924,
1268         .mult_div1_reg = 0x940,
1269         .autoidle_reg = 0x934,
1270         .module = TI_CLKM_CM,
1271         .parents = dpll1_ck_parents,
1272         .freqsel_mask = 0xf0,
1273         .modes = 0xa0,
1274         .div1_mask = 0x7f,
1275         .idlest_mask = 0x1,
1276         .auto_recal_bit = 0x3,
1277         .max_divider = 0x80,
1278         .min_divider = 0x1,
1279         .recal_en_bit = 0x7,
1280         .max_multiplier = 0x7ff,
1281         .enable_mask = 0x7,
1282         .mult_mask = 0x7ff00,
1283         .recal_st_bit = 0x7,
1284         .autoidle_mask = 0x7,
1285 };
1286
1287 static struct ti_clk dpll1_ck = {
1288         .name = "dpll1_ck",
1289         .clkdm_name = "dpll1_clkdm",
1290         .type = TI_CLK_DPLL,
1291         .data = &dpll1_ck_data,
1292 };
1293
1294 static struct ti_clk_fixed secure_32k_fck_data = {
1295         .frequency = 32768,
1296 };
1297
1298 static struct ti_clk secure_32k_fck = {
1299         .name = "secure_32k_fck",
1300         .type = TI_CLK_FIXED,
1301         .data = &secure_32k_fck_data,
1302 };
1303
1304 static struct ti_clk_gate gpio5_ick_data = {
1305         .parent = "per_l4_ick",
1306         .bit_shift = 16,
1307         .reg = 0x1010,
1308         .module = TI_CLKM_CM,
1309         .flags = CLKF_OMAP3 | CLKF_INTERFACE,
1310 };
1311
1312 static struct ti_clk gpio5_ick = {
1313         .name = "gpio5_ick",
1314         .clkdm_name = "per_clkdm",
1315         .type = TI_CLK_GATE,
1316         .data = &gpio5_ick_data,
1317 };
1318
1319 static struct ti_clk_divider dpll4_m4_ck_data = {
1320         .parent = "dpll4_ck",
1321         .max_div = 32,
1322         .reg = 0xe40,
1323         .module = TI_CLKM_CM,
1324         .flags = CLKF_INDEX_STARTS_AT_ONE,
1325 };
1326
1327 static struct ti_clk dpll4_m4_ck = {
1328         .name = "dpll4_m4_ck",
1329         .type = TI_CLK_DIVIDER,
1330         .data = &dpll4_m4_ck_data,
1331 };
1332
1333 static struct ti_clk_fixed_factor dpll4_m4x2_mul_ck_data = {
1334         .parent = "dpll4_m4_ck",
1335         .div = 1,
1336         .mult = 2,
1337         .flags = CLKF_SET_RATE_PARENT,
1338 };
1339
1340 static struct ti_clk dpll4_m4x2_mul_ck = {
1341         .name = "dpll4_m4x2_mul_ck",
1342         .type = TI_CLK_FIXED_FACTOR,
1343         .data = &dpll4_m4x2_mul_ck_data,
1344 };
1345
1346 static struct ti_clk_gate dpll4_m4x2_ck_data = {
1347         .parent = "dpll4_m4x2_mul_ck",
1348         .bit_shift = 0x1d,
1349         .reg = 0xd00,
1350         .module = TI_CLKM_CM,
1351         .flags = CLKF_SET_RATE_PARENT | CLKF_SET_BIT_TO_DISABLE,
1352 };
1353
1354 static struct ti_clk dpll4_m4x2_ck = {
1355         .name = "dpll4_m4x2_ck",
1356         .type = TI_CLK_GATE,
1357         .data = &dpll4_m4x2_ck_data,
1358 };
1359
1360 static struct ti_clk_gate dss1_alwon_fck_3430es2_data = {
1361         .parent = "dpll4_m4x2_ck",
1362         .bit_shift = 0,
1363         .reg = 0xe00,
1364         .module = TI_CLKM_CM,
1365         .flags = CLKF_DSS | CLKF_SET_RATE_PARENT,
1366 };
1367
1368 static struct ti_clk dss1_alwon_fck_3430es2 = {
1369         .name = "dss1_alwon_fck",
1370         .clkdm_name = "dss_clkdm",
1371         .type = TI_CLK_GATE,
1372         .data = &dss1_alwon_fck_3430es2_data,
1373 };
1374
1375 static struct ti_clk_gate uart3_ick_data = {
1376         .parent = "per_l4_ick",
1377         .bit_shift = 11,
1378         .reg = 0x1010,
1379         .module = TI_CLKM_CM,
1380         .flags = CLKF_OMAP3 | CLKF_INTERFACE,
1381 };
1382
1383 static struct ti_clk uart3_ick = {
1384         .name = "uart3_ick",
1385         .clkdm_name = "per_clkdm",
1386         .type = TI_CLK_GATE,
1387         .data = &uart3_ick_data,
1388 };
1389
1390 static struct ti_clk_divider dpll4_m3_ck_data = {
1391         .parent = "dpll4_ck",
1392         .bit_shift = 8,
1393         .max_div = 32,
1394         .reg = 0xe40,
1395         .module = TI_CLKM_CM,
1396         .flags = CLKF_INDEX_STARTS_AT_ONE,
1397 };
1398
1399 static struct ti_clk dpll4_m3_ck = {
1400         .name = "dpll4_m3_ck",
1401         .type = TI_CLK_DIVIDER,
1402         .data = &dpll4_m3_ck_data,
1403 };
1404
1405 static struct ti_clk_gate mcbsp3_ick_data = {
1406         .parent = "per_l4_ick",
1407         .bit_shift = 1,
1408         .reg = 0x1010,
1409         .module = TI_CLKM_CM,
1410         .flags = CLKF_OMAP3 | CLKF_INTERFACE,
1411 };
1412
1413 static struct ti_clk mcbsp3_ick = {
1414         .name = "mcbsp3_ick",
1415         .clkdm_name = "per_clkdm",
1416         .type = TI_CLK_GATE,
1417         .data = &mcbsp3_ick_data,
1418 };
1419
1420 static struct ti_clk_gate gpio3_dbck_data = {
1421         .parent = "per_32k_alwon_fck",
1422         .bit_shift = 14,
1423         .reg = 0x1000,
1424         .module = TI_CLKM_CM,
1425 };
1426
1427 static struct ti_clk gpio3_dbck = {
1428         .name = "gpio3_dbck",
1429         .clkdm_name = "per_clkdm",
1430         .type = TI_CLK_GATE,
1431         .data = &gpio3_dbck_data,
1432 };
1433
1434 static struct ti_clk_gate fac_ick_data = {
1435         .parent = "core_l4_ick",
1436         .bit_shift = 8,
1437         .reg = 0xa10,
1438         .module = TI_CLKM_CM,
1439         .flags = CLKF_OMAP3 | CLKF_INTERFACE,
1440 };
1441
1442 static struct ti_clk fac_ick = {
1443         .name = "fac_ick",
1444         .clkdm_name = "core_l4_clkdm",
1445         .type = TI_CLK_GATE,
1446         .data = &fac_ick_data,
1447 };
1448
1449 static struct ti_clk_gate clkout2_src_gate_ck_data = {
1450         .parent = "core_ck",
1451         .bit_shift = 7,
1452         .reg = 0xd70,
1453         .module = TI_CLKM_CM,
1454         .flags = CLKF_NO_WAIT,
1455 };
1456
1457 static struct ti_clk_fixed_factor dpll4_m3x2_mul_ck_data = {
1458         .parent = "dpll4_m3_ck",
1459         .div = 1,
1460         .mult = 2,
1461 };
1462
1463 static struct ti_clk dpll4_m3x2_mul_ck = {
1464         .name = "dpll4_m3x2_mul_ck",
1465         .type = TI_CLK_FIXED_FACTOR,
1466         .data = &dpll4_m3x2_mul_ck_data,
1467 };
1468
1469 static struct ti_clk_gate dpll4_m3x2_ck_data = {
1470         .parent = "dpll4_m3x2_mul_ck",
1471         .bit_shift = 0x1c,
1472         .reg = 0xd00,
1473         .module = TI_CLKM_CM,
1474         .flags = CLKF_SET_BIT_TO_DISABLE,
1475 };
1476
1477 static struct ti_clk dpll4_m3x2_ck = {
1478         .name = "dpll4_m3x2_ck",
1479         .type = TI_CLK_GATE,
1480         .data = &dpll4_m3x2_ck_data,
1481 };
1482
1483 static const char *omap_54m_fck_parents[] = {
1484         "dpll4_m3x2_ck",
1485         "sys_altclk",
1486 };
1487
1488 static struct ti_clk_mux omap_54m_fck_data = {
1489         .bit_shift = 5,
1490         .num_parents = ARRAY_SIZE(omap_54m_fck_parents),
1491         .reg = 0xd40,
1492         .module = TI_CLKM_CM,
1493         .parents = omap_54m_fck_parents,
1494 };
1495
1496 static struct ti_clk omap_54m_fck = {
1497         .name = "omap_54m_fck",
1498         .type = TI_CLK_MUX,
1499         .data = &omap_54m_fck_data,
1500 };
1501
1502 static const char *clkout2_src_mux_ck_parents[] = {
1503         "core_ck",
1504         "sys_ck",
1505         "cm_96m_fck",
1506         "omap_54m_fck",
1507 };
1508
1509 static struct ti_clk_mux clkout2_src_mux_ck_data = {
1510         .num_parents = ARRAY_SIZE(clkout2_src_mux_ck_parents),
1511         .reg = 0xd70,
1512         .module = TI_CLKM_CM,
1513         .parents = clkout2_src_mux_ck_parents,
1514 };
1515
1516 static struct ti_clk_composite clkout2_src_ck_data = {
1517         .mux = &clkout2_src_mux_ck_data,
1518         .gate = &clkout2_src_gate_ck_data,
1519 };
1520
1521 static struct ti_clk clkout2_src_ck = {
1522         .name = "clkout2_src_ck",
1523         .type = TI_CLK_COMPOSITE,
1524         .data = &clkout2_src_ck_data,
1525 };
1526
1527 static struct ti_clk_gate i2c1_fck_data = {
1528         .parent = "core_96m_fck",
1529         .bit_shift = 15,
1530         .reg = 0xa00,
1531         .module = TI_CLKM_CM,
1532         .flags = CLKF_WAIT,
1533 };
1534
1535 static struct ti_clk i2c1_fck = {
1536         .name = "i2c1_fck",
1537         .clkdm_name = "core_l4_clkdm",
1538         .type = TI_CLK_GATE,
1539         .data = &i2c1_fck_data,
1540 };
1541
1542 static struct ti_clk_gate wdt3_fck_data = {
1543         .parent = "per_32k_alwon_fck",
1544         .bit_shift = 12,
1545         .reg = 0x1000,
1546         .module = TI_CLKM_CM,
1547         .flags = CLKF_WAIT,
1548 };
1549
1550 static struct ti_clk wdt3_fck = {
1551         .name = "wdt3_fck",
1552         .clkdm_name = "per_clkdm",
1553         .type = TI_CLK_GATE,
1554         .data = &wdt3_fck_data,
1555 };
1556
1557 static struct ti_clk_gate gpt7_gate_fck_data = {
1558         .parent = "sys_ck",
1559         .bit_shift = 8,
1560         .reg = 0x1000,
1561         .module = TI_CLKM_CM,
1562 };
1563
1564 static const char *gpt7_mux_fck_parents[] = {
1565         "omap_32k_fck",
1566         "sys_ck",
1567 };
1568
1569 static struct ti_clk_mux gpt7_mux_fck_data = {
1570         .bit_shift = 5,
1571         .num_parents = ARRAY_SIZE(gpt7_mux_fck_parents),
1572         .reg = 0x1040,
1573         .module = TI_CLKM_CM,
1574         .parents = gpt7_mux_fck_parents,
1575 };
1576
1577 static struct ti_clk_composite gpt7_fck_data = {
1578         .mux = &gpt7_mux_fck_data,
1579         .gate = &gpt7_gate_fck_data,
1580 };
1581
1582 static struct ti_clk gpt7_fck = {
1583         .name = "gpt7_fck",
1584         .type = TI_CLK_COMPOSITE,
1585         .data = &gpt7_fck_data,
1586 };
1587
1588 static struct ti_clk_gate usb_l4_gate_ick_data = {
1589         .parent = "l4_ick",
1590         .bit_shift = 5,
1591         .reg = 0xa10,
1592         .module = TI_CLKM_CM,
1593         .flags = CLKF_INTERFACE,
1594 };
1595
1596 static struct ti_clk_divider usb_l4_div_ick_data = {
1597         .parent = "l4_ick",
1598         .bit_shift = 4,
1599         .max_div = 1,
1600         .reg = 0xa40,
1601         .module = TI_CLKM_CM,
1602         .flags = CLKF_INDEX_STARTS_AT_ONE,
1603 };
1604
1605 static struct ti_clk_composite usb_l4_ick_data = {
1606         .gate = &usb_l4_gate_ick_data,
1607         .divider = &usb_l4_div_ick_data,
1608 };
1609
1610 static struct ti_clk usb_l4_ick = {
1611         .name = "usb_l4_ick",
1612         .type = TI_CLK_COMPOSITE,
1613         .data = &usb_l4_ick_data,
1614 };
1615
1616 static struct ti_clk_gate uart4_ick_data = {
1617         .parent = "per_l4_ick",
1618         .bit_shift = 18,
1619         .reg = 0x1010,
1620         .module = TI_CLKM_CM,
1621         .flags = CLKF_OMAP3 | CLKF_INTERFACE,
1622 };
1623
1624 static struct ti_clk uart4_ick = {
1625         .name = "uart4_ick",
1626         .clkdm_name = "per_clkdm",
1627         .type = TI_CLK_GATE,
1628         .data = &uart4_ick_data,
1629 };
1630
1631 static struct ti_clk_fixed dummy_ck_data = {
1632         .frequency = 0,
1633 };
1634
1635 static struct ti_clk dummy_ck = {
1636         .name = "dummy_ck",
1637         .type = TI_CLK_FIXED,
1638         .data = &dummy_ck_data,
1639 };
1640
1641 static const char *gpt3_mux_fck_parents[] = {
1642         "omap_32k_fck",
1643         "sys_ck",
1644 };
1645
1646 static struct ti_clk_mux gpt3_mux_fck_data = {
1647         .bit_shift = 1,
1648         .num_parents = ARRAY_SIZE(gpt3_mux_fck_parents),
1649         .reg = 0x1040,
1650         .module = TI_CLKM_CM,
1651         .parents = gpt3_mux_fck_parents,
1652 };
1653
1654 static struct ti_clk_gate gpt9_ick_data = {
1655         .parent = "per_l4_ick",
1656         .bit_shift = 10,
1657         .reg = 0x1010,
1658         .module = TI_CLKM_CM,
1659         .flags = CLKF_OMAP3 | CLKF_INTERFACE,
1660 };
1661
1662 static struct ti_clk gpt9_ick = {
1663         .name = "gpt9_ick",
1664         .clkdm_name = "per_clkdm",
1665         .type = TI_CLK_GATE,
1666         .data = &gpt9_ick_data,
1667 };
1668
1669 static struct ti_clk_gate gpt10_gate_fck_data = {
1670         .parent = "sys_ck",
1671         .bit_shift = 11,
1672         .reg = 0xa00,
1673         .module = TI_CLKM_CM,
1674 };
1675
1676 static struct ti_clk_gate dss_ick_3430es1_data = {
1677         .parent = "l4_ick",
1678         .bit_shift = 0,
1679         .reg = 0xe10,
1680         .module = TI_CLKM_CM,
1681         .flags = CLKF_OMAP3 | CLKF_NO_WAIT | CLKF_INTERFACE,
1682 };
1683
1684 static struct ti_clk dss_ick_3430es1 = {
1685         .name = "dss_ick",
1686         .clkdm_name = "dss_clkdm",
1687         .type = TI_CLK_GATE,
1688         .data = &dss_ick_3430es1_data,
1689 };
1690
1691 static struct ti_clk_gate gpt11_ick_data = {
1692         .parent = "core_l4_ick",
1693         .bit_shift = 12,
1694         .reg = 0xa10,
1695         .module = TI_CLKM_CM,
1696         .flags = CLKF_OMAP3 | CLKF_INTERFACE,
1697 };
1698
1699 static struct ti_clk gpt11_ick = {
1700         .name = "gpt11_ick",
1701         .clkdm_name = "core_l4_clkdm",
1702         .type = TI_CLK_GATE,
1703         .data = &gpt11_ick_data,
1704 };
1705
1706 static struct ti_clk_divider dpll2_fck_data = {
1707         .parent = "core_ck",
1708         .bit_shift = 19,
1709         .max_div = 7,
1710         .reg = 0x40,
1711         .module = TI_CLKM_CM,
1712         .flags = CLKF_INDEX_STARTS_AT_ONE,
1713 };
1714
1715 static struct ti_clk dpll2_fck = {
1716         .name = "dpll2_fck",
1717         .type = TI_CLK_DIVIDER,
1718         .data = &dpll2_fck_data,
1719 };
1720
1721 static struct ti_clk_gate uart1_fck_data = {
1722         .parent = "core_48m_fck",
1723         .bit_shift = 13,
1724         .reg = 0xa00,
1725         .module = TI_CLKM_CM,
1726         .flags = CLKF_WAIT,
1727 };
1728
1729 static struct ti_clk uart1_fck = {
1730         .name = "uart1_fck",
1731         .clkdm_name = "core_l4_clkdm",
1732         .type = TI_CLK_GATE,
1733         .data = &uart1_fck_data,
1734 };
1735
1736 static struct ti_clk_gate hsotgusb_ick_3430es1_data = {
1737         .parent = "core_l3_ick",
1738         .bit_shift = 4,
1739         .reg = 0xa10,
1740         .module = TI_CLKM_CM,
1741         .flags = CLKF_OMAP3 | CLKF_NO_WAIT | CLKF_INTERFACE,
1742 };
1743
1744 static struct ti_clk hsotgusb_ick_3430es1 = {
1745         .name = "hsotgusb_ick_3430es1",
1746         .clkdm_name = "core_l3_clkdm",
1747         .type = TI_CLK_GATE,
1748         .data = &hsotgusb_ick_3430es1_data,
1749 };
1750
1751 static struct ti_clk_gate gpio2_ick_data = {
1752         .parent = "per_l4_ick",
1753         .bit_shift = 13,
1754         .reg = 0x1010,
1755         .module = TI_CLKM_CM,
1756         .flags = CLKF_OMAP3 | CLKF_INTERFACE,
1757 };
1758
1759 static struct ti_clk gpio2_ick = {
1760         .name = "gpio2_ick",
1761         .clkdm_name = "per_clkdm",
1762         .type = TI_CLK_GATE,
1763         .data = &gpio2_ick_data,
1764 };
1765
1766 static struct ti_clk_gate mmchs1_ick_data = {
1767         .parent = "core_l4_ick",
1768         .bit_shift = 24,
1769         .reg = 0xa10,
1770         .module = TI_CLKM_CM,
1771         .flags = CLKF_OMAP3 | CLKF_INTERFACE,
1772 };
1773
1774 static struct ti_clk mmchs1_ick = {
1775         .name = "mmchs1_ick",
1776         .clkdm_name = "core_l4_clkdm",
1777         .type = TI_CLK_GATE,
1778         .data = &mmchs1_ick_data,
1779 };
1780
1781 static struct ti_clk_gate modem_fck_data = {
1782         .parent = "sys_ck",
1783         .bit_shift = 31,
1784         .reg = 0xa00,
1785         .module = TI_CLKM_CM,
1786         .flags = CLKF_OMAP3 | CLKF_INTERFACE,
1787 };
1788
1789 static struct ti_clk modem_fck = {
1790         .name = "modem_fck",
1791         .clkdm_name = "d2d_clkdm",
1792         .type = TI_CLK_GATE,
1793         .data = &modem_fck_data,
1794 };
1795
1796 static struct ti_clk_gate mcbsp4_ick_data = {
1797         .parent = "per_l4_ick",
1798         .bit_shift = 2,
1799         .reg = 0x1010,
1800         .module = TI_CLKM_CM,
1801         .flags = CLKF_OMAP3 | CLKF_INTERFACE,
1802 };
1803
1804 static struct ti_clk mcbsp4_ick = {
1805         .name = "mcbsp4_ick",
1806         .clkdm_name = "per_clkdm",
1807         .type = TI_CLK_GATE,
1808         .data = &mcbsp4_ick_data,
1809 };
1810
1811 static struct ti_clk_gate gpio1_ick_data = {
1812         .parent = "wkup_l4_ick",
1813         .bit_shift = 3,
1814         .reg = 0xc10,
1815         .module = TI_CLKM_CM,
1816         .flags = CLKF_OMAP3 | CLKF_INTERFACE,
1817 };
1818
1819 static struct ti_clk gpio1_ick = {
1820         .name = "gpio1_ick",
1821         .clkdm_name = "wkup_clkdm",
1822         .type = TI_CLK_GATE,
1823         .data = &gpio1_ick_data,
1824 };
1825
1826 static const char *gpt6_mux_fck_parents[] = {
1827         "omap_32k_fck",
1828         "sys_ck",
1829 };
1830
1831 static struct ti_clk_mux gpt6_mux_fck_data = {
1832         .bit_shift = 4,
1833         .num_parents = ARRAY_SIZE(gpt6_mux_fck_parents),
1834         .reg = 0x1040,
1835         .module = TI_CLKM_CM,
1836         .parents = gpt6_mux_fck_parents,
1837 };
1838
1839 static struct ti_clk_fixed_factor dpll1_x2_ck_data = {
1840         .parent = "dpll1_ck",
1841         .div = 1,
1842         .mult = 2,
1843 };
1844
1845 static struct ti_clk dpll1_x2_ck = {
1846         .name = "dpll1_x2_ck",
1847         .type = TI_CLK_FIXED_FACTOR,
1848         .data = &dpll1_x2_ck_data,
1849 };
1850
1851 static struct ti_clk_divider dpll1_x2m2_ck_data = {
1852         .parent = "dpll1_x2_ck",
1853         .max_div = 31,
1854         .reg = 0x944,
1855         .module = TI_CLKM_CM,
1856         .flags = CLKF_INDEX_STARTS_AT_ONE,
1857 };
1858
1859 static struct ti_clk dpll1_x2m2_ck = {
1860         .name = "dpll1_x2m2_ck",
1861         .type = TI_CLK_DIVIDER,
1862         .data = &dpll1_x2m2_ck_data,
1863 };
1864
1865 static struct ti_clk_fixed_factor mpu_ck_data = {
1866         .parent = "dpll1_x2m2_ck",
1867         .div = 1,
1868         .mult = 1,
1869 };
1870
1871 static struct ti_clk mpu_ck = {
1872         .name = "mpu_ck",
1873         .type = TI_CLK_FIXED_FACTOR,
1874         .data = &mpu_ck_data,
1875 };
1876
1877 static struct ti_clk_divider arm_fck_data = {
1878         .parent = "mpu_ck",
1879         .max_div = 2,
1880         .reg = 0x924,
1881         .module = TI_CLKM_CM,
1882 };
1883
1884 static struct ti_clk arm_fck = {
1885         .name = "arm_fck",
1886         .type = TI_CLK_DIVIDER,
1887         .data = &arm_fck_data,
1888 };
1889
1890 static struct ti_clk_fixed_factor core_d3_ck_data = {
1891         .parent = "core_ck",
1892         .div = 3,
1893         .mult = 1,
1894 };
1895
1896 static struct ti_clk core_d3_ck = {
1897         .name = "core_d3_ck",
1898         .type = TI_CLK_FIXED_FACTOR,
1899         .data = &core_d3_ck_data,
1900 };
1901
1902 static struct ti_clk_gate gpt11_gate_fck_data = {
1903         .parent = "sys_ck",
1904         .bit_shift = 12,
1905         .reg = 0xa00,
1906         .module = TI_CLKM_CM,
1907 };
1908
1909 static const char *gpt11_mux_fck_parents[] = {
1910         "omap_32k_fck",
1911         "sys_ck",
1912 };
1913
1914 static struct ti_clk_mux gpt11_mux_fck_data = {
1915         .bit_shift = 7,
1916         .num_parents = ARRAY_SIZE(gpt11_mux_fck_parents),
1917         .reg = 0xa40,
1918         .module = TI_CLKM_CM,
1919         .parents = gpt11_mux_fck_parents,
1920 };
1921
1922 static struct ti_clk_composite gpt11_fck_data = {
1923         .mux = &gpt11_mux_fck_data,
1924         .gate = &gpt11_gate_fck_data,
1925 };
1926
1927 static struct ti_clk gpt11_fck = {
1928         .name = "gpt11_fck",
1929         .type = TI_CLK_COMPOSITE,
1930         .data = &gpt11_fck_data,
1931 };
1932
1933 static struct ti_clk_fixed_factor core_d6_ck_data = {
1934         .parent = "core_ck",
1935         .div = 6,
1936         .mult = 1,
1937 };
1938
1939 static struct ti_clk core_d6_ck = {
1940         .name = "core_d6_ck",
1941         .type = TI_CLK_FIXED_FACTOR,
1942         .data = &core_d6_ck_data,
1943 };
1944
1945 static struct ti_clk_gate uart4_fck_am35xx_data = {
1946         .parent = "core_48m_fck",
1947         .bit_shift = 23,
1948         .reg = 0xa00,
1949         .module = TI_CLKM_CM,
1950         .flags = CLKF_WAIT,
1951 };
1952
1953 static struct ti_clk uart4_fck_am35xx = {
1954         .name = "uart4_fck_am35xx",
1955         .clkdm_name = "core_l4_clkdm",
1956         .type = TI_CLK_GATE,
1957         .data = &uart4_fck_am35xx_data,
1958 };
1959
1960 static struct ti_clk_gate dpll3_m3x2_ck_data = {
1961         .parent = "dpll3_m3x2_mul_ck",
1962         .bit_shift = 0xc,
1963         .reg = 0xd00,
1964         .module = TI_CLKM_CM,
1965         .flags = CLKF_SET_BIT_TO_DISABLE,
1966 };
1967
1968 static struct ti_clk dpll3_m3x2_ck = {
1969         .name = "dpll3_m3x2_ck",
1970         .type = TI_CLK_GATE,
1971         .data = &dpll3_m3x2_ck_data,
1972 };
1973
1974 static struct ti_clk_fixed_factor emu_core_alwon_ck_data = {
1975         .parent = "dpll3_m3x2_ck",
1976         .div = 1,
1977         .mult = 1,
1978 };
1979
1980 static struct ti_clk emu_core_alwon_ck = {
1981         .name = "emu_core_alwon_ck",
1982         .type = TI_CLK_FIXED_FACTOR,
1983         .data = &emu_core_alwon_ck_data,
1984 };
1985
1986 static struct ti_clk_divider dpll4_m6_ck_data = {
1987         .parent = "dpll4_ck",
1988         .bit_shift = 24,
1989         .max_div = 63,
1990         .reg = 0x1140,
1991         .module = TI_CLKM_CM,
1992         .flags = CLKF_INDEX_STARTS_AT_ONE,
1993 };
1994
1995 static struct ti_clk dpll4_m6_ck = {
1996         .name = "dpll4_m6_ck",
1997         .type = TI_CLK_DIVIDER,
1998         .data = &dpll4_m6_ck_data,
1999 };
2000
2001 static struct ti_clk_fixed_factor dpll4_m6x2_mul_ck_data = {
2002         .parent = "dpll4_m6_ck",
2003         .div = 1,
2004         .mult = 2,
2005 };
2006
2007 static struct ti_clk dpll4_m6x2_mul_ck = {
2008         .name = "dpll4_m6x2_mul_ck",
2009         .type = TI_CLK_FIXED_FACTOR,
2010         .data = &dpll4_m6x2_mul_ck_data,
2011 };
2012
2013 static struct ti_clk_gate dpll4_m6x2_ck_data = {
2014         .parent = "dpll4_m6x2_mul_ck",
2015         .bit_shift = 0x1f,
2016         .reg = 0xd00,
2017         .module = TI_CLKM_CM,
2018         .flags = CLKF_SET_BIT_TO_DISABLE,
2019 };
2020
2021 static struct ti_clk dpll4_m6x2_ck = {
2022         .name = "dpll4_m6x2_ck",
2023         .type = TI_CLK_GATE,
2024         .data = &dpll4_m6x2_ck_data,
2025 };
2026
2027 static struct ti_clk_fixed_factor emu_per_alwon_ck_data = {
2028         .parent = "dpll4_m6x2_ck",
2029         .div = 1,
2030         .mult = 1,
2031 };
2032
2033 static struct ti_clk emu_per_alwon_ck = {
2034         .name = "emu_per_alwon_ck",
2035         .type = TI_CLK_FIXED_FACTOR,
2036         .data = &emu_per_alwon_ck_data,
2037 };
2038
2039 static struct ti_clk_fixed_factor emu_mpu_alwon_ck_data = {
2040         .parent = "mpu_ck",
2041         .div = 1,
2042         .mult = 1,
2043 };
2044
2045 static struct ti_clk emu_mpu_alwon_ck = {
2046         .name = "emu_mpu_alwon_ck",
2047         .type = TI_CLK_FIXED_FACTOR,
2048         .data = &emu_mpu_alwon_ck_data,
2049 };
2050
2051 static const char *emu_src_mux_ck_parents[] = {
2052         "sys_ck",
2053         "emu_core_alwon_ck",
2054         "emu_per_alwon_ck",
2055         "emu_mpu_alwon_ck",
2056 };
2057
2058 static struct ti_clk_mux emu_src_mux_ck_data = {
2059         .num_parents = ARRAY_SIZE(emu_src_mux_ck_parents),
2060         .reg = 0x1140,
2061         .module = TI_CLKM_CM,
2062         .parents = emu_src_mux_ck_parents,
2063 };
2064
2065 static struct ti_clk emu_src_mux_ck = {
2066         .name = "emu_src_mux_ck",
2067         .type = TI_CLK_MUX,
2068         .data = &emu_src_mux_ck_data,
2069 };
2070
2071 static struct ti_clk_gate emu_src_ck_data = {
2072         .parent = "emu_src_mux_ck",
2073         .flags = CLKF_CLKDM,
2074 };
2075
2076 static struct ti_clk emu_src_ck = {
2077         .name = "emu_src_ck",
2078         .clkdm_name = "emu_clkdm",
2079         .type = TI_CLK_GATE,
2080         .data = &emu_src_ck_data,
2081 };
2082
2083 static struct ti_clk_divider atclk_fck_data = {
2084         .parent = "emu_src_ck",
2085         .bit_shift = 4,
2086         .max_div = 3,
2087         .reg = 0x1140,
2088         .module = TI_CLKM_CM,
2089         .flags = CLKF_INDEX_STARTS_AT_ONE,
2090 };
2091
2092 static struct ti_clk atclk_fck = {
2093         .name = "atclk_fck",
2094         .type = TI_CLK_DIVIDER,
2095         .data = &atclk_fck_data,
2096 };
2097
2098 static struct ti_clk_gate ipss_ick_data = {
2099         .parent = "core_l3_ick",
2100         .bit_shift = 4,
2101         .reg = 0xa10,
2102         .module = TI_CLKM_CM,
2103         .flags = CLKF_AM35XX | CLKF_INTERFACE,
2104 };
2105
2106 static struct ti_clk ipss_ick = {
2107         .name = "ipss_ick",
2108         .clkdm_name = "core_l3_clkdm",
2109         .type = TI_CLK_GATE,
2110         .data = &ipss_ick_data,
2111 };
2112
2113 static struct ti_clk_gate emac_ick_data = {
2114         .parent = "ipss_ick",
2115         .bit_shift = 1,
2116         .reg = 0x59c,
2117         .module = TI_CLKM_SCRM,
2118         .flags = CLKF_AM35XX,
2119 };
2120
2121 static struct ti_clk emac_ick = {
2122         .name = "emac_ick",
2123         .clkdm_name = "core_l3_clkdm",
2124         .type = TI_CLK_GATE,
2125         .data = &emac_ick_data,
2126 };
2127
2128 static struct ti_clk_gate vpfe_ick_data = {
2129         .parent = "ipss_ick",
2130         .bit_shift = 2,
2131         .reg = 0x59c,
2132         .module = TI_CLKM_SCRM,
2133         .flags = CLKF_AM35XX,
2134 };
2135
2136 static struct ti_clk vpfe_ick = {
2137         .name = "vpfe_ick",
2138         .clkdm_name = "core_l3_clkdm",
2139         .type = TI_CLK_GATE,
2140         .data = &vpfe_ick_data,
2141 };
2142
2143 static const char *dpll2_ck_parents[] = {
2144         "sys_ck",
2145         "dpll2_fck",
2146 };
2147
2148 static struct ti_clk_dpll dpll2_ck_data = {
2149         .num_parents = ARRAY_SIZE(dpll2_ck_parents),
2150         .control_reg = 0x4,
2151         .idlest_reg = 0x24,
2152         .mult_div1_reg = 0x40,
2153         .autoidle_reg = 0x34,
2154         .module = TI_CLKM_CM,
2155         .parents = dpll2_ck_parents,
2156         .freqsel_mask = 0xf0,
2157         .modes = 0xa2,
2158         .div1_mask = 0x7f,
2159         .idlest_mask = 0x1,
2160         .auto_recal_bit = 0x3,
2161         .max_divider = 0x80,
2162         .min_divider = 0x1,
2163         .recal_en_bit = 0x8,
2164         .max_multiplier = 0x7ff,
2165         .enable_mask = 0x7,
2166         .mult_mask = 0x7ff00,
2167         .recal_st_bit = 0x8,
2168         .autoidle_mask = 0x7,
2169 };
2170
2171 static struct ti_clk dpll2_ck = {
2172         .name = "dpll2_ck",
2173         .clkdm_name = "dpll2_clkdm",
2174         .type = TI_CLK_DPLL,
2175         .data = &dpll2_ck_data,
2176 };
2177
2178 static struct ti_clk_divider dpll2_m2_ck_data = {
2179         .parent = "dpll2_ck",
2180         .max_div = 31,
2181         .reg = 0x44,
2182         .module = TI_CLKM_CM,
2183         .flags = CLKF_INDEX_STARTS_AT_ONE,
2184 };
2185
2186 static struct ti_clk dpll2_m2_ck = {
2187         .name = "dpll2_m2_ck",
2188         .type = TI_CLK_DIVIDER,
2189         .data = &dpll2_m2_ck_data,
2190 };
2191
2192 static const char *mcbsp4_mux_fck_parents[] = {
2193         "per_96m_fck",
2194         "mcbsp_clks",
2195 };
2196
2197 static struct ti_clk_mux mcbsp4_mux_fck_data = {
2198         .bit_shift = 2,
2199         .num_parents = ARRAY_SIZE(mcbsp4_mux_fck_parents),
2200         .reg = 0x2d8,
2201         .module = TI_CLKM_SCRM,
2202         .parents = mcbsp4_mux_fck_parents,
2203 };
2204
2205 static const char *mcbsp1_mux_fck_parents[] = {
2206         "core_96m_fck",
2207         "mcbsp_clks",
2208 };
2209
2210 static struct ti_clk_mux mcbsp1_mux_fck_data = {
2211         .bit_shift = 2,
2212         .num_parents = ARRAY_SIZE(mcbsp1_mux_fck_parents),
2213         .reg = 0x274,
2214         .module = TI_CLKM_SCRM,
2215         .parents = mcbsp1_mux_fck_parents,
2216 };
2217
2218 static struct ti_clk_gate gpt8_gate_fck_data = {
2219         .parent = "sys_ck",
2220         .bit_shift = 9,
2221         .reg = 0x1000,
2222         .module = TI_CLKM_CM,
2223 };
2224
2225 static struct ti_clk_gate gpt8_ick_data = {
2226         .parent = "per_l4_ick",
2227         .bit_shift = 9,
2228         .reg = 0x1010,
2229         .module = TI_CLKM_CM,
2230         .flags = CLKF_OMAP3 | CLKF_INTERFACE,
2231 };
2232
2233 static struct ti_clk gpt8_ick = {
2234         .name = "gpt8_ick",
2235         .clkdm_name = "per_clkdm",
2236         .type = TI_CLK_GATE,
2237         .data = &gpt8_ick_data,
2238 };
2239
2240 static const char *gpt10_mux_fck_parents[] = {
2241         "omap_32k_fck",
2242         "sys_ck",
2243 };
2244
2245 static struct ti_clk_mux gpt10_mux_fck_data = {
2246         .bit_shift = 6,
2247         .num_parents = ARRAY_SIZE(gpt10_mux_fck_parents),
2248         .reg = 0xa40,
2249         .module = TI_CLKM_CM,
2250         .parents = gpt10_mux_fck_parents,
2251 };
2252
2253 static struct ti_clk_gate mmchs3_ick_data = {
2254         .parent = "core_l4_ick",
2255         .bit_shift = 30,
2256         .reg = 0xa10,
2257         .module = TI_CLKM_CM,
2258         .flags = CLKF_OMAP3 | CLKF_INTERFACE,
2259 };
2260
2261 static struct ti_clk mmchs3_ick = {
2262         .name = "mmchs3_ick",
2263         .clkdm_name = "core_l4_clkdm",
2264         .type = TI_CLK_GATE,
2265         .data = &mmchs3_ick_data,
2266 };
2267
2268 static struct ti_clk_gate gpio3_ick_data = {
2269         .parent = "per_l4_ick",
2270         .bit_shift = 14,
2271         .reg = 0x1010,
2272         .module = TI_CLKM_CM,
2273         .flags = CLKF_OMAP3 | CLKF_INTERFACE,
2274 };
2275
2276 static struct ti_clk gpio3_ick = {
2277         .name = "gpio3_ick",
2278         .clkdm_name = "per_clkdm",
2279         .type = TI_CLK_GATE,
2280         .data = &gpio3_ick_data,
2281 };
2282
2283 static const char *traceclk_src_fck_parents[] = {
2284         "sys_ck",
2285         "emu_core_alwon_ck",
2286         "emu_per_alwon_ck",
2287         "emu_mpu_alwon_ck",
2288 };
2289
2290 static struct ti_clk_mux traceclk_src_fck_data = {
2291         .bit_shift = 2,
2292         .num_parents = ARRAY_SIZE(traceclk_src_fck_parents),
2293         .reg = 0x1140,
2294         .module = TI_CLKM_CM,
2295         .parents = traceclk_src_fck_parents,
2296 };
2297
2298 static struct ti_clk traceclk_src_fck = {
2299         .name = "traceclk_src_fck",
2300         .type = TI_CLK_MUX,
2301         .data = &traceclk_src_fck_data,
2302 };
2303
2304 static struct ti_clk_divider traceclk_fck_data = {
2305         .parent = "traceclk_src_fck",
2306         .bit_shift = 11,
2307         .max_div = 7,
2308         .reg = 0x1140,
2309         .module = TI_CLKM_CM,
2310         .flags = CLKF_INDEX_STARTS_AT_ONE,
2311 };
2312
2313 static struct ti_clk traceclk_fck = {
2314         .name = "traceclk_fck",
2315         .type = TI_CLK_DIVIDER,
2316         .data = &traceclk_fck_data,
2317 };
2318
2319 static struct ti_clk_gate mcbsp5_gate_fck_data = {
2320         .parent = "mcbsp_clks",
2321         .bit_shift = 10,
2322         .reg = 0xa00,
2323         .module = TI_CLKM_CM,
2324 };
2325
2326 static struct ti_clk_gate sad2d_ick_data = {
2327         .parent = "l3_ick",
2328         .bit_shift = 3,
2329         .reg = 0xa10,
2330         .module = TI_CLKM_CM,
2331         .flags = CLKF_OMAP3 | CLKF_INTERFACE,
2332 };
2333
2334 static struct ti_clk sad2d_ick = {
2335         .name = "sad2d_ick",
2336         .clkdm_name = "d2d_clkdm",
2337         .type = TI_CLK_GATE,
2338         .data = &sad2d_ick_data,
2339 };
2340
2341 static const char *gpt1_mux_fck_parents[] = {
2342         "omap_32k_fck",
2343         "sys_ck",
2344 };
2345
2346 static struct ti_clk_mux gpt1_mux_fck_data = {
2347         .num_parents = ARRAY_SIZE(gpt1_mux_fck_parents),
2348         .reg = 0xc40,
2349         .module = TI_CLKM_CM,
2350         .parents = gpt1_mux_fck_parents,
2351 };
2352
2353 static struct ti_clk_gate hecc_ck_data = {
2354         .parent = "sys_ck",
2355         .bit_shift = 3,
2356         .reg = 0x59c,
2357         .module = TI_CLKM_SCRM,
2358         .flags = CLKF_AM35XX,
2359 };
2360
2361 static struct ti_clk hecc_ck = {
2362         .name = "hecc_ck",
2363         .clkdm_name = "core_l3_clkdm",
2364         .type = TI_CLK_GATE,
2365         .data = &hecc_ck_data,
2366 };
2367
2368 static struct ti_clk_gate gpt1_gate_fck_data = {
2369         .parent = "sys_ck",
2370         .bit_shift = 0,
2371         .reg = 0xc00,
2372         .module = TI_CLKM_CM,
2373 };
2374
2375 static struct ti_clk_composite gpt1_fck_data = {
2376         .mux = &gpt1_mux_fck_data,
2377         .gate = &gpt1_gate_fck_data,
2378 };
2379
2380 static struct ti_clk gpt1_fck = {
2381         .name = "gpt1_fck",
2382         .type = TI_CLK_COMPOSITE,
2383         .data = &gpt1_fck_data,
2384 };
2385
2386 static struct ti_clk_gate dpll4_m2x2_ck_omap36xx_data = {
2387         .parent = "dpll4_m2x2_mul_ck",
2388         .bit_shift = 0x1b,
2389         .reg = 0xd00,
2390         .module = TI_CLKM_CM,
2391         .flags = CLKF_HSDIV | CLKF_SET_BIT_TO_DISABLE,
2392 };
2393
2394 static struct ti_clk dpll4_m2x2_ck_omap36xx = {
2395         .name = "dpll4_m2x2_ck",
2396         .type = TI_CLK_GATE,
2397         .data = &dpll4_m2x2_ck_omap36xx_data,
2398         .patch = &dpll4_m2x2_ck,
2399 };
2400
2401 static struct ti_clk_divider gfx_l3_fck_data = {
2402         .parent = "l3_ick",
2403         .max_div = 7,
2404         .reg = 0xb40,
2405         .module = TI_CLKM_CM,
2406         .flags = CLKF_INDEX_STARTS_AT_ONE,
2407 };
2408
2409 static struct ti_clk gfx_l3_fck = {
2410         .name = "gfx_l3_fck",
2411         .type = TI_CLK_DIVIDER,
2412         .data = &gfx_l3_fck_data,
2413 };
2414
2415 static struct ti_clk_gate gfx_cg1_ck_data = {
2416         .parent = "gfx_l3_fck",
2417         .bit_shift = 1,
2418         .reg = 0xb00,
2419         .module = TI_CLKM_CM,
2420         .flags = CLKF_WAIT,
2421 };
2422
2423 static struct ti_clk gfx_cg1_ck = {
2424         .name = "gfx_cg1_ck",
2425         .clkdm_name = "gfx_3430es1_clkdm",
2426         .type = TI_CLK_GATE,
2427         .data = &gfx_cg1_ck_data,
2428 };
2429
2430 static struct ti_clk_gate mailboxes_ick_data = {
2431         .parent = "core_l4_ick",
2432         .bit_shift = 7,
2433         .reg = 0xa10,
2434         .module = TI_CLKM_CM,
2435         .flags = CLKF_OMAP3 | CLKF_INTERFACE,
2436 };
2437
2438 static struct ti_clk mailboxes_ick = {
2439         .name = "mailboxes_ick",
2440         .clkdm_name = "core_l4_clkdm",
2441         .type = TI_CLK_GATE,
2442         .data = &mailboxes_ick_data,
2443 };
2444
2445 static struct ti_clk_gate sha11_ick_data = {
2446         .parent = "security_l4_ick2",
2447         .bit_shift = 1,
2448         .reg = 0xa14,
2449         .module = TI_CLKM_CM,
2450         .flags = CLKF_OMAP3 | CLKF_INTERFACE,
2451 };
2452
2453 static struct ti_clk sha11_ick = {
2454         .name = "sha11_ick",
2455         .type = TI_CLK_GATE,
2456         .data = &sha11_ick_data,
2457 };
2458
2459 static struct ti_clk_gate hsotgusb_ick_am35xx_data = {
2460         .parent = "ipss_ick",
2461         .bit_shift = 0,
2462         .reg = 0x59c,
2463         .module = TI_CLKM_SCRM,
2464         .flags = CLKF_AM35XX,
2465 };
2466
2467 static struct ti_clk hsotgusb_ick_am35xx = {
2468         .name = "hsotgusb_ick_am35xx",
2469         .clkdm_name = "core_l3_clkdm",
2470         .type = TI_CLK_GATE,
2471         .data = &hsotgusb_ick_am35xx_data,
2472 };
2473
2474 static struct ti_clk_gate mmchs3_fck_data = {
2475         .parent = "core_96m_fck",
2476         .bit_shift = 30,
2477         .reg = 0xa00,
2478         .module = TI_CLKM_CM,
2479         .flags = CLKF_WAIT,
2480 };
2481
2482 static struct ti_clk mmchs3_fck = {
2483         .name = "mmchs3_fck",
2484         .clkdm_name = "core_l4_clkdm",
2485         .type = TI_CLK_GATE,
2486         .data = &mmchs3_fck_data,
2487 };
2488
2489 static struct ti_clk_divider pclk_fck_data = {
2490         .parent = "emu_src_ck",
2491         .bit_shift = 8,
2492         .max_div = 7,
2493         .reg = 0x1140,
2494         .module = TI_CLKM_CM,
2495         .flags = CLKF_INDEX_STARTS_AT_ONE,
2496 };
2497
2498 static struct ti_clk pclk_fck = {
2499         .name = "pclk_fck",
2500         .type = TI_CLK_DIVIDER,
2501         .data = &pclk_fck_data,
2502 };
2503
2504 static const char *dpll4_ck_omap36xx_parents[] = {
2505         "sys_ck",
2506         "sys_ck",
2507 };
2508
2509 static struct ti_clk_dpll dpll4_ck_omap36xx_data = {
2510         .num_parents = ARRAY_SIZE(dpll4_ck_omap36xx_parents),
2511         .control_reg = 0xd00,
2512         .idlest_reg = 0xd20,
2513         .mult_div1_reg = 0xd44,
2514         .autoidle_reg = 0xd30,
2515         .module = TI_CLKM_CM,
2516         .parents = dpll4_ck_omap36xx_parents,
2517         .modes = 0x82,
2518         .div1_mask = 0x7f,
2519         .idlest_mask = 0x2,
2520         .auto_recal_bit = 0x13,
2521         .max_divider = 0x80,
2522         .min_divider = 0x1,
2523         .recal_en_bit = 0x6,
2524         .max_multiplier = 0xfff,
2525         .enable_mask = 0x70000,
2526         .mult_mask = 0xfff00,
2527         .recal_st_bit = 0x6,
2528         .autoidle_mask = 0x38,
2529         .sddiv_mask = 0xff000000,
2530         .dco_mask = 0xe00000,
2531         .flags = CLKF_PER | CLKF_J_TYPE,
2532 };
2533
2534 static struct ti_clk dpll4_ck_omap36xx = {
2535         .name = "dpll4_ck",
2536         .type = TI_CLK_DPLL,
2537         .data = &dpll4_ck_omap36xx_data,
2538         .patch = &dpll4_ck,
2539 };
2540
2541 static struct ti_clk_gate uart3_fck_data = {
2542         .parent = "per_48m_fck",
2543         .bit_shift = 11,
2544         .reg = 0x1000,
2545         .module = TI_CLKM_CM,
2546         .flags = CLKF_WAIT,
2547 };
2548
2549 static struct ti_clk uart3_fck = {
2550         .name = "uart3_fck",
2551         .clkdm_name = "per_clkdm",
2552         .type = TI_CLK_GATE,
2553         .data = &uart3_fck_data,
2554 };
2555
2556 static struct ti_clk_fixed_factor wkup_32k_fck_data = {
2557         .parent = "omap_32k_fck",
2558         .div = 1,
2559         .mult = 1,
2560 };
2561
2562 static struct ti_clk wkup_32k_fck = {
2563         .name = "wkup_32k_fck",
2564         .type = TI_CLK_FIXED_FACTOR,
2565         .data = &wkup_32k_fck_data,
2566 };
2567
2568 static struct ti_clk_gate sys_clkout1_data = {
2569         .parent = "osc_sys_ck",
2570         .bit_shift = 7,
2571         .reg = 0xd70,
2572         .module = TI_CLKM_PRM,
2573 };
2574
2575 static struct ti_clk sys_clkout1 = {
2576         .name = "sys_clkout1",
2577         .type = TI_CLK_GATE,
2578         .data = &sys_clkout1_data,
2579 };
2580
2581 static struct ti_clk_fixed_factor gpmc_fck_data = {
2582         .parent = "core_l3_ick",
2583         .div = 1,
2584         .mult = 1,
2585 };
2586
2587 static struct ti_clk gpmc_fck = {
2588         .name = "gpmc_fck",
2589         .type = TI_CLK_FIXED_FACTOR,
2590         .data = &gpmc_fck_data,
2591 };
2592
2593 static struct ti_clk_fixed_factor dpll5_m2_d20_ck_data = {
2594         .parent = "dpll5_m2_ck",
2595         .div = 20,
2596         .mult = 1,
2597 };
2598
2599 static struct ti_clk dpll5_m2_d20_ck = {
2600         .name = "dpll5_m2_d20_ck",
2601         .type = TI_CLK_FIXED_FACTOR,
2602         .data = &dpll5_m2_d20_ck_data,
2603 };
2604
2605 static struct ti_clk_gate dpll4_m5x2_ck_omap36xx_data = {
2606         .parent = "dpll4_m5x2_mul_ck",
2607         .bit_shift = 0x1e,
2608         .reg = 0xd00,
2609         .module = TI_CLKM_CM,
2610         .flags = CLKF_HSDIV | CLKF_SET_RATE_PARENT | CLKF_SET_BIT_TO_DISABLE,
2611 };
2612
2613 static struct ti_clk dpll4_m5x2_ck_omap36xx = {
2614         .name = "dpll4_m5x2_ck",
2615         .type = TI_CLK_GATE,
2616         .data = &dpll4_m5x2_ck_omap36xx_data,
2617         .patch = &dpll4_m5x2_ck,
2618 };
2619
2620 static struct ti_clk_gate ssi_ssr_gate_fck_3430es2_data = {
2621         .parent = "corex2_fck",
2622         .bit_shift = 0,
2623         .reg = 0xa00,
2624         .module = TI_CLKM_CM,
2625         .flags = CLKF_NO_WAIT,
2626 };
2627
2628 static struct ti_clk_gate uart1_ick_data = {
2629         .parent = "core_l4_ick",
2630         .bit_shift = 13,
2631         .reg = 0xa10,
2632         .module = TI_CLKM_CM,
2633         .flags = CLKF_OMAP3 | CLKF_INTERFACE,
2634 };
2635
2636 static struct ti_clk uart1_ick = {
2637         .name = "uart1_ick",
2638         .clkdm_name = "core_l4_clkdm",
2639         .type = TI_CLK_GATE,
2640         .data = &uart1_ick_data,
2641 };
2642
2643 static struct ti_clk_gate iva2_ck_data = {
2644         .parent = "dpll2_m2_ck",
2645         .bit_shift = 0,
2646         .reg = 0x0,
2647         .module = TI_CLKM_CM,
2648         .flags = CLKF_WAIT,
2649 };
2650
2651 static struct ti_clk iva2_ck = {
2652         .name = "iva2_ck",
2653         .clkdm_name = "iva2_clkdm",
2654         .type = TI_CLK_GATE,
2655         .data = &iva2_ck_data,
2656 };
2657
2658 static struct ti_clk_gate pka_ick_data = {
2659         .parent = "security_l3_ick",
2660         .bit_shift = 4,
2661         .reg = 0xa14,
2662         .module = TI_CLKM_CM,
2663         .flags = CLKF_OMAP3 | CLKF_INTERFACE,
2664 };
2665
2666 static struct ti_clk pka_ick = {
2667         .name = "pka_ick",
2668         .type = TI_CLK_GATE,
2669         .data = &pka_ick_data,
2670 };
2671
2672 static struct ti_clk_gate gpt12_ick_data = {
2673         .parent = "wkup_l4_ick",
2674         .bit_shift = 1,
2675         .reg = 0xc10,
2676         .module = TI_CLKM_CM,
2677         .flags = CLKF_OMAP3 | CLKF_INTERFACE,
2678 };
2679
2680 static struct ti_clk gpt12_ick = {
2681         .name = "gpt12_ick",
2682         .clkdm_name = "wkup_clkdm",
2683         .type = TI_CLK_GATE,
2684         .data = &gpt12_ick_data,
2685 };
2686
2687 static const char *mcbsp5_mux_fck_parents[] = {
2688         "core_96m_fck",
2689         "mcbsp_clks",
2690 };
2691
2692 static struct ti_clk_mux mcbsp5_mux_fck_data = {
2693         .bit_shift = 4,
2694         .num_parents = ARRAY_SIZE(mcbsp5_mux_fck_parents),
2695         .reg = 0x2d8,
2696         .module = TI_CLKM_SCRM,
2697         .parents = mcbsp5_mux_fck_parents,
2698 };
2699
2700 static struct ti_clk_composite mcbsp5_fck_data = {
2701         .mux = &mcbsp5_mux_fck_data,
2702         .gate = &mcbsp5_gate_fck_data,
2703 };
2704
2705 static struct ti_clk mcbsp5_fck = {
2706         .name = "mcbsp5_fck",
2707         .type = TI_CLK_COMPOSITE,
2708         .data = &mcbsp5_fck_data,
2709 };
2710
2711 static struct ti_clk_gate usbhost_48m_fck_data = {
2712         .parent = "omap_48m_fck",
2713         .bit_shift = 0,
2714         .reg = 0x1400,
2715         .module = TI_CLKM_CM,
2716         .flags = CLKF_DSS,
2717 };
2718
2719 static struct ti_clk usbhost_48m_fck = {
2720         .name = "usbhost_48m_fck",
2721         .clkdm_name = "usbhost_clkdm",
2722         .type = TI_CLK_GATE,
2723         .data = &usbhost_48m_fck_data,
2724 };
2725
2726 static struct ti_clk_gate des1_ick_data = {
2727         .parent = "security_l4_ick2",
2728         .bit_shift = 0,
2729         .reg = 0xa14,
2730         .module = TI_CLKM_CM,
2731         .flags = CLKF_OMAP3 | CLKF_INTERFACE,
2732 };
2733
2734 static struct ti_clk des1_ick = {
2735         .name = "des1_ick",
2736         .type = TI_CLK_GATE,
2737         .data = &des1_ick_data,
2738 };
2739
2740 static struct ti_clk_gate sgx_gate_fck_data = {
2741         .parent = "core_ck",
2742         .bit_shift = 1,
2743         .reg = 0xb00,
2744         .module = TI_CLKM_CM,
2745 };
2746
2747 static struct ti_clk_fixed_factor core_d4_ck_data = {
2748         .parent = "core_ck",
2749         .div = 4,
2750         .mult = 1,
2751 };
2752
2753 static struct ti_clk core_d4_ck = {
2754         .name = "core_d4_ck",
2755         .type = TI_CLK_FIXED_FACTOR,
2756         .data = &core_d4_ck_data,
2757 };
2758
2759 static struct ti_clk_fixed_factor omap_192m_alwon_fck_data = {
2760         .parent = "dpll4_m2x2_ck",
2761         .div = 1,
2762         .mult = 1,
2763 };
2764
2765 static struct ti_clk omap_192m_alwon_fck = {
2766         .name = "omap_192m_alwon_fck",
2767         .type = TI_CLK_FIXED_FACTOR,
2768         .data = &omap_192m_alwon_fck_data,
2769 };
2770
2771 static struct ti_clk_fixed_factor core_d2_ck_data = {
2772         .parent = "core_ck",
2773         .div = 2,
2774         .mult = 1,
2775 };
2776
2777 static struct ti_clk core_d2_ck = {
2778         .name = "core_d2_ck",
2779         .type = TI_CLK_FIXED_FACTOR,
2780         .data = &core_d2_ck_data,
2781 };
2782
2783 static struct ti_clk_fixed_factor corex2_d3_fck_data = {
2784         .parent = "corex2_fck",
2785         .div = 3,
2786         .mult = 1,
2787 };
2788
2789 static struct ti_clk corex2_d3_fck = {
2790         .name = "corex2_d3_fck",
2791         .type = TI_CLK_FIXED_FACTOR,
2792         .data = &corex2_d3_fck_data,
2793 };
2794
2795 static struct ti_clk_fixed_factor corex2_d5_fck_data = {
2796         .parent = "corex2_fck",
2797         .div = 5,
2798         .mult = 1,
2799 };
2800
2801 static struct ti_clk corex2_d5_fck = {
2802         .name = "corex2_d5_fck",
2803         .type = TI_CLK_FIXED_FACTOR,
2804         .data = &corex2_d5_fck_data,
2805 };
2806
2807 static const char *sgx_mux_fck_parents[] = {
2808         "core_d3_ck",
2809         "core_d4_ck",
2810         "core_d6_ck",
2811         "cm_96m_fck",
2812         "omap_192m_alwon_fck",
2813         "core_d2_ck",
2814         "corex2_d3_fck",
2815         "corex2_d5_fck",
2816 };
2817
2818 static struct ti_clk_mux sgx_mux_fck_data = {
2819         .num_parents = ARRAY_SIZE(sgx_mux_fck_parents),
2820         .reg = 0xb40,
2821         .module = TI_CLKM_CM,
2822         .parents = sgx_mux_fck_parents,
2823 };
2824
2825 static struct ti_clk_composite sgx_fck_data = {
2826         .mux = &sgx_mux_fck_data,
2827         .gate = &sgx_gate_fck_data,
2828 };
2829
2830 static struct ti_clk sgx_fck = {
2831         .name = "sgx_fck",
2832         .type = TI_CLK_COMPOSITE,
2833         .data = &sgx_fck_data,
2834 };
2835
2836 static struct ti_clk_gate mcspi1_fck_data = {
2837         .parent = "core_48m_fck",
2838         .bit_shift = 18,
2839         .reg = 0xa00,
2840         .module = TI_CLKM_CM,
2841         .flags = CLKF_WAIT,
2842 };
2843
2844 static struct ti_clk mcspi1_fck = {
2845         .name = "mcspi1_fck",
2846         .clkdm_name = "core_l4_clkdm",
2847         .type = TI_CLK_GATE,
2848         .data = &mcspi1_fck_data,
2849 };
2850
2851 static struct ti_clk_gate mmchs2_fck_data = {
2852         .parent = "core_96m_fck",
2853         .bit_shift = 25,
2854         .reg = 0xa00,
2855         .module = TI_CLKM_CM,
2856         .flags = CLKF_WAIT,
2857 };
2858
2859 static struct ti_clk mmchs2_fck = {
2860         .name = "mmchs2_fck",
2861         .clkdm_name = "core_l4_clkdm",
2862         .type = TI_CLK_GATE,
2863         .data = &mmchs2_fck_data,
2864 };
2865
2866 static struct ti_clk_gate mcspi2_fck_data = {
2867         .parent = "core_48m_fck",
2868         .bit_shift = 19,
2869         .reg = 0xa00,
2870         .module = TI_CLKM_CM,
2871         .flags = CLKF_WAIT,
2872 };
2873
2874 static struct ti_clk mcspi2_fck = {
2875         .name = "mcspi2_fck",
2876         .clkdm_name = "core_l4_clkdm",
2877         .type = TI_CLK_GATE,
2878         .data = &mcspi2_fck_data,
2879 };
2880
2881 static struct ti_clk_gate vpfe_fck_data = {
2882         .parent = "pclk_ck",
2883         .bit_shift = 10,
2884         .reg = 0x59c,
2885         .module = TI_CLKM_SCRM,
2886 };
2887
2888 static struct ti_clk vpfe_fck = {
2889         .name = "vpfe_fck",
2890         .type = TI_CLK_GATE,
2891         .data = &vpfe_fck_data,
2892 };
2893
2894 static struct ti_clk_gate gpt4_gate_fck_data = {
2895         .parent = "sys_ck",
2896         .bit_shift = 5,
2897         .reg = 0x1000,
2898         .module = TI_CLKM_CM,
2899 };
2900
2901 static struct ti_clk_gate mcbsp1_gate_fck_data = {
2902         .parent = "mcbsp_clks",
2903         .bit_shift = 9,
2904         .reg = 0xa00,
2905         .module = TI_CLKM_CM,
2906 };
2907
2908 static struct ti_clk_gate gpt5_gate_fck_data = {
2909         .parent = "sys_ck",
2910         .bit_shift = 6,
2911         .reg = 0x1000,
2912         .module = TI_CLKM_CM,
2913 };
2914
2915 static const char *gpt5_mux_fck_parents[] = {
2916         "omap_32k_fck",
2917         "sys_ck",
2918 };
2919
2920 static struct ti_clk_mux gpt5_mux_fck_data = {
2921         .bit_shift = 3,
2922         .num_parents = ARRAY_SIZE(gpt5_mux_fck_parents),
2923         .reg = 0x1040,
2924         .module = TI_CLKM_CM,
2925         .parents = gpt5_mux_fck_parents,
2926 };
2927
2928 static struct ti_clk_composite gpt5_fck_data = {
2929         .mux = &gpt5_mux_fck_data,
2930         .gate = &gpt5_gate_fck_data,
2931 };
2932
2933 static struct ti_clk gpt5_fck = {
2934         .name = "gpt5_fck",
2935         .type = TI_CLK_COMPOSITE,
2936         .data = &gpt5_fck_data,
2937 };
2938
2939 static struct ti_clk_gate ts_fck_data = {
2940         .parent = "omap_32k_fck",
2941         .bit_shift = 1,
2942         .reg = 0xa08,
2943         .module = TI_CLKM_CM,
2944 };
2945
2946 static struct ti_clk ts_fck = {
2947         .name = "ts_fck",
2948         .clkdm_name = "core_l4_clkdm",
2949         .type = TI_CLK_GATE,
2950         .data = &ts_fck_data,
2951 };
2952
2953 static struct ti_clk_fixed_factor wdt1_fck_data = {
2954         .parent = "secure_32k_fck",
2955         .div = 1,
2956         .mult = 1,
2957 };
2958
2959 static struct ti_clk wdt1_fck = {
2960         .name = "wdt1_fck",
2961         .type = TI_CLK_FIXED_FACTOR,
2962         .data = &wdt1_fck_data,
2963 };
2964
2965 static struct ti_clk_gate dpll4_m6x2_ck_omap36xx_data = {
2966         .parent = "dpll4_m6x2_mul_ck",
2967         .bit_shift = 0x1f,
2968         .reg = 0xd00,
2969         .module = TI_CLKM_CM,
2970         .flags = CLKF_HSDIV | CLKF_SET_BIT_TO_DISABLE,
2971 };
2972
2973 static struct ti_clk dpll4_m6x2_ck_omap36xx = {
2974         .name = "dpll4_m6x2_ck",
2975         .type = TI_CLK_GATE,
2976         .data = &dpll4_m6x2_ck_omap36xx_data,
2977         .patch = &dpll4_m6x2_ck,
2978 };
2979
2980 static const char *gpt4_mux_fck_parents[] = {
2981         "omap_32k_fck",
2982         "sys_ck",
2983 };
2984
2985 static struct ti_clk_mux gpt4_mux_fck_data = {
2986         .bit_shift = 2,
2987         .num_parents = ARRAY_SIZE(gpt4_mux_fck_parents),
2988         .reg = 0x1040,
2989         .module = TI_CLKM_CM,
2990         .parents = gpt4_mux_fck_parents,
2991 };
2992
2993 static struct ti_clk_gate usbhost_ick_data = {
2994         .parent = "l4_ick",
2995         .bit_shift = 0,
2996         .reg = 0x1410,
2997         .module = TI_CLKM_CM,
2998         .flags = CLKF_DSS | CLKF_OMAP3 | CLKF_INTERFACE,
2999 };
3000
3001 static struct ti_clk usbhost_ick = {
3002         .name = "usbhost_ick",
3003         .clkdm_name = "usbhost_clkdm",
3004         .type = TI_CLK_GATE,
3005         .data = &usbhost_ick_data,
3006 };
3007
3008 static struct ti_clk_gate mcbsp2_ick_data = {
3009         .parent = "per_l4_ick",
3010         .bit_shift = 0,
3011         .reg = 0x1010,
3012         .module = TI_CLKM_CM,
3013         .flags = CLKF_OMAP3 | CLKF_INTERFACE,
3014 };
3015
3016 static struct ti_clk mcbsp2_ick = {
3017         .name = "mcbsp2_ick",
3018         .clkdm_name = "per_clkdm",
3019         .type = TI_CLK_GATE,
3020         .data = &mcbsp2_ick_data,
3021 };
3022
3023 static struct ti_clk_gate omapctrl_ick_data = {
3024         .parent = "core_l4_ick",
3025         .bit_shift = 6,
3026         .reg = 0xa10,
3027         .module = TI_CLKM_CM,
3028         .flags = CLKF_OMAP3 | CLKF_INTERFACE,
3029 };
3030
3031 static struct ti_clk omapctrl_ick = {
3032         .name = "omapctrl_ick",
3033         .clkdm_name = "core_l4_clkdm",
3034         .type = TI_CLK_GATE,
3035         .data = &omapctrl_ick_data,
3036 };
3037
3038 static struct ti_clk_fixed_factor omap_96m_d4_fck_data = {
3039         .parent = "omap_96m_fck",
3040         .div = 4,
3041         .mult = 1,
3042 };
3043
3044 static struct ti_clk omap_96m_d4_fck = {
3045         .name = "omap_96m_d4_fck",
3046         .type = TI_CLK_FIXED_FACTOR,
3047         .data = &omap_96m_d4_fck_data,
3048 };
3049
3050 static struct ti_clk_gate gpt6_ick_data = {
3051         .parent = "per_l4_ick",
3052         .bit_shift = 7,
3053         .reg = 0x1010,
3054         .module = TI_CLKM_CM,
3055         .flags = CLKF_OMAP3 | CLKF_INTERFACE,
3056 };
3057
3058 static struct ti_clk gpt6_ick = {
3059         .name = "gpt6_ick",
3060         .clkdm_name = "per_clkdm",
3061         .type = TI_CLK_GATE,
3062         .data = &gpt6_ick_data,
3063 };
3064
3065 static struct ti_clk_gate dpll3_m3x2_ck_omap36xx_data = {
3066         .parent = "dpll3_m3x2_mul_ck",
3067         .bit_shift = 0xc,
3068         .reg = 0xd00,
3069         .module = TI_CLKM_CM,
3070         .flags = CLKF_HSDIV | CLKF_SET_BIT_TO_DISABLE,
3071 };
3072
3073 static struct ti_clk dpll3_m3x2_ck_omap36xx = {
3074         .name = "dpll3_m3x2_ck",
3075         .type = TI_CLK_GATE,
3076         .data = &dpll3_m3x2_ck_omap36xx_data,
3077         .patch = &dpll3_m3x2_ck,
3078 };
3079
3080 static struct ti_clk_gate i2c3_ick_data = {
3081         .parent = "core_l4_ick",
3082         .bit_shift = 17,
3083         .reg = 0xa10,
3084         .module = TI_CLKM_CM,
3085         .flags = CLKF_OMAP3 | CLKF_INTERFACE,
3086 };
3087
3088 static struct ti_clk i2c3_ick = {
3089         .name = "i2c3_ick",
3090         .clkdm_name = "core_l4_clkdm",
3091         .type = TI_CLK_GATE,
3092         .data = &i2c3_ick_data,
3093 };
3094
3095 static struct ti_clk_gate gpio6_ick_data = {
3096         .parent = "per_l4_ick",
3097         .bit_shift = 17,
3098         .reg = 0x1010,
3099         .module = TI_CLKM_CM,
3100         .flags = CLKF_OMAP3 | CLKF_INTERFACE,
3101 };
3102
3103 static struct ti_clk gpio6_ick = {
3104         .name = "gpio6_ick",
3105         .clkdm_name = "per_clkdm",
3106         .type = TI_CLK_GATE,
3107         .data = &gpio6_ick_data,
3108 };
3109
3110 static struct ti_clk_gate mspro_ick_data = {
3111         .parent = "core_l4_ick",
3112         .bit_shift = 23,
3113         .reg = 0xa10,
3114         .module = TI_CLKM_CM,
3115         .flags = CLKF_OMAP3 | CLKF_INTERFACE,
3116 };
3117
3118 static struct ti_clk mspro_ick = {
3119         .name = "mspro_ick",
3120         .clkdm_name = "core_l4_clkdm",
3121         .type = TI_CLK_GATE,
3122         .data = &mspro_ick_data,
3123 };
3124
3125 static struct ti_clk_composite mcbsp1_fck_data = {
3126         .mux = &mcbsp1_mux_fck_data,
3127         .gate = &mcbsp1_gate_fck_data,
3128 };
3129
3130 static struct ti_clk mcbsp1_fck = {
3131         .name = "mcbsp1_fck",
3132         .type = TI_CLK_COMPOSITE,
3133         .data = &mcbsp1_fck_data,
3134 };
3135
3136 static struct ti_clk_gate gpt3_gate_fck_data = {
3137         .parent = "sys_ck",
3138         .bit_shift = 4,
3139         .reg = 0x1000,
3140         .module = TI_CLKM_CM,
3141 };
3142
3143 static struct ti_clk_fixed rmii_ck_data = {
3144         .frequency = 50000000,
3145 };
3146
3147 static struct ti_clk rmii_ck = {
3148         .name = "rmii_ck",
3149         .type = TI_CLK_FIXED,
3150         .data = &rmii_ck_data,
3151 };
3152
3153 static struct ti_clk_gate gpt6_gate_fck_data = {
3154         .parent = "sys_ck",
3155         .bit_shift = 7,
3156         .reg = 0x1000,
3157         .module = TI_CLKM_CM,
3158 };
3159
3160 static struct ti_clk_composite gpt6_fck_data = {
3161         .mux = &gpt6_mux_fck_data,
3162         .gate = &gpt6_gate_fck_data,
3163 };
3164
3165 static struct ti_clk gpt6_fck = {
3166         .name = "gpt6_fck",
3167         .type = TI_CLK_COMPOSITE,
3168         .data = &gpt6_fck_data,
3169 };
3170
3171 static struct ti_clk_fixed_factor dpll5_m2_d4_ck_data = {
3172         .parent = "dpll5_m2_ck",
3173         .div = 4,
3174         .mult = 1,
3175 };
3176
3177 static struct ti_clk dpll5_m2_d4_ck = {
3178         .name = "dpll5_m2_d4_ck",
3179         .type = TI_CLK_FIXED_FACTOR,
3180         .data = &dpll5_m2_d4_ck_data,
3181 };
3182
3183 static struct ti_clk_fixed_factor sys_d2_ck_data = {
3184         .parent = "sys_ck",
3185         .div = 2,
3186         .mult = 1,
3187 };
3188
3189 static struct ti_clk sys_d2_ck = {
3190         .name = "sys_d2_ck",
3191         .type = TI_CLK_FIXED_FACTOR,
3192         .data = &sys_d2_ck_data,
3193 };
3194
3195 static struct ti_clk_fixed_factor omap_96m_d2_fck_data = {
3196         .parent = "omap_96m_fck",
3197         .div = 2,
3198         .mult = 1,
3199 };
3200
3201 static struct ti_clk omap_96m_d2_fck = {
3202         .name = "omap_96m_d2_fck",
3203         .type = TI_CLK_FIXED_FACTOR,
3204         .data = &omap_96m_d2_fck_data,
3205 };
3206
3207 static struct ti_clk_fixed_factor dpll5_m2_d8_ck_data = {
3208         .parent = "dpll5_m2_ck",
3209         .div = 8,
3210         .mult = 1,
3211 };
3212
3213 static struct ti_clk dpll5_m2_d8_ck = {
3214         .name = "dpll5_m2_d8_ck",
3215         .type = TI_CLK_FIXED_FACTOR,
3216         .data = &dpll5_m2_d8_ck_data,
3217 };
3218
3219 static struct ti_clk_fixed_factor dpll5_m2_d16_ck_data = {
3220         .parent = "dpll5_m2_ck",
3221         .div = 16,
3222         .mult = 1,
3223 };
3224
3225 static struct ti_clk dpll5_m2_d16_ck = {
3226         .name = "dpll5_m2_d16_ck",
3227         .type = TI_CLK_FIXED_FACTOR,
3228         .data = &dpll5_m2_d16_ck_data,
3229 };
3230
3231 static const char *usim_mux_fck_parents[] = {
3232         "sys_ck",
3233         "sys_d2_ck",
3234         "omap_96m_d2_fck",
3235         "omap_96m_d4_fck",
3236         "omap_96m_d8_fck",
3237         "omap_96m_d10_fck",
3238         "dpll5_m2_d4_ck",
3239         "dpll5_m2_d8_ck",
3240         "dpll5_m2_d16_ck",
3241         "dpll5_m2_d20_ck",
3242 };
3243
3244 static struct ti_clk_mux usim_mux_fck_data = {
3245         .bit_shift = 3,
3246         .num_parents = ARRAY_SIZE(usim_mux_fck_parents),
3247         .reg = 0xc40,
3248         .module = TI_CLKM_CM,
3249         .parents = usim_mux_fck_parents,
3250         .flags = CLKF_INDEX_STARTS_AT_ONE,
3251 };
3252
3253 static struct ti_clk_composite usim_fck_data = {
3254         .mux = &usim_mux_fck_data,
3255         .gate = &usim_gate_fck_data,
3256 };
3257
3258 static struct ti_clk usim_fck = {
3259         .name = "usim_fck",
3260         .type = TI_CLK_COMPOSITE,
3261         .data = &usim_fck_data,
3262 };
3263
3264 static int ssi_ssr_div_fck_3430es2_divs[] = {
3265         0,
3266         1,
3267         2,
3268         3,
3269         4,
3270         0,
3271         6,
3272         0,
3273         8,
3274 };
3275
3276 static struct ti_clk_divider ssi_ssr_div_fck_3430es2_data = {
3277         .num_dividers = ARRAY_SIZE(ssi_ssr_div_fck_3430es2_divs),
3278         .parent = "corex2_fck",
3279         .bit_shift = 8,
3280         .dividers = ssi_ssr_div_fck_3430es2_divs,
3281         .reg = 0xa40,
3282         .module = TI_CLKM_CM,
3283 };
3284
3285 static struct ti_clk_composite ssi_ssr_fck_3430es2_data = {
3286         .gate = &ssi_ssr_gate_fck_3430es2_data,
3287         .divider = &ssi_ssr_div_fck_3430es2_data,
3288 };
3289
3290 static struct ti_clk ssi_ssr_fck_3430es2 = {
3291         .name = "ssi_ssr_fck",
3292         .type = TI_CLK_COMPOSITE,
3293         .data = &ssi_ssr_fck_3430es2_data,
3294 };
3295
3296 static struct ti_clk_gate dss1_alwon_fck_3430es1_data = {
3297         .parent = "dpll4_m4x2_ck",
3298         .bit_shift = 0,
3299         .reg = 0xe00,
3300         .module = TI_CLKM_CM,
3301         .flags = CLKF_SET_RATE_PARENT,
3302 };
3303
3304 static struct ti_clk dss1_alwon_fck_3430es1 = {
3305         .name = "dss1_alwon_fck",
3306         .clkdm_name = "dss_clkdm",
3307         .type = TI_CLK_GATE,
3308         .data = &dss1_alwon_fck_3430es1_data,
3309 };
3310
3311 static struct ti_clk_gate gpt3_ick_data = {
3312         .parent = "per_l4_ick",
3313         .bit_shift = 4,
3314         .reg = 0x1010,
3315         .module = TI_CLKM_CM,
3316         .flags = CLKF_OMAP3 | CLKF_INTERFACE,
3317 };
3318
3319 static struct ti_clk gpt3_ick = {
3320         .name = "gpt3_ick",
3321         .clkdm_name = "per_clkdm",
3322         .type = TI_CLK_GATE,
3323         .data = &gpt3_ick_data,
3324 };
3325
3326 static struct ti_clk_fixed_factor omap_12m_fck_data = {
3327         .parent = "omap_48m_fck",
3328         .div = 4,
3329         .mult = 1,
3330 };
3331
3332 static struct ti_clk omap_12m_fck = {
3333         .name = "omap_12m_fck",
3334         .type = TI_CLK_FIXED_FACTOR,
3335         .data = &omap_12m_fck_data,
3336 };
3337
3338 static struct ti_clk_fixed_factor core_12m_fck_data = {
3339         .parent = "omap_12m_fck",
3340         .div = 1,
3341         .mult = 1,
3342 };
3343
3344 static struct ti_clk core_12m_fck = {
3345         .name = "core_12m_fck",
3346         .type = TI_CLK_FIXED_FACTOR,
3347         .data = &core_12m_fck_data,
3348 };
3349
3350 static struct ti_clk_gate hdq_fck_data = {
3351         .parent = "core_12m_fck",
3352         .bit_shift = 22,
3353         .reg = 0xa00,
3354         .module = TI_CLKM_CM,
3355         .flags = CLKF_WAIT,
3356 };
3357
3358 static struct ti_clk hdq_fck = {
3359         .name = "hdq_fck",
3360         .clkdm_name = "core_l4_clkdm",
3361         .type = TI_CLK_GATE,
3362         .data = &hdq_fck_data,
3363 };
3364
3365 static struct ti_clk_gate usbtll_fck_data = {
3366         .parent = "dpll5_m2_ck",
3367         .bit_shift = 2,
3368         .reg = 0xa08,
3369         .module = TI_CLKM_CM,
3370         .flags = CLKF_WAIT,
3371 };
3372
3373 static struct ti_clk usbtll_fck = {
3374         .name = "usbtll_fck",
3375         .clkdm_name = "core_l4_clkdm",
3376         .type = TI_CLK_GATE,
3377         .data = &usbtll_fck_data,
3378 };
3379
3380 static struct ti_clk_gate hsotgusb_fck_am35xx_data = {
3381         .parent = "sys_ck",
3382         .bit_shift = 8,
3383         .reg = 0x59c,
3384         .module = TI_CLKM_SCRM,
3385 };
3386
3387 static struct ti_clk hsotgusb_fck_am35xx = {
3388         .name = "hsotgusb_fck_am35xx",
3389         .clkdm_name = "core_l3_clkdm",
3390         .type = TI_CLK_GATE,
3391         .data = &hsotgusb_fck_am35xx_data,
3392 };
3393
3394 static struct ti_clk_gate hsotgusb_ick_3430es2_data = {
3395         .parent = "core_l3_ick",
3396         .bit_shift = 4,
3397         .reg = 0xa10,
3398         .module = TI_CLKM_CM,
3399         .flags = CLKF_HSOTGUSB | CLKF_OMAP3 | CLKF_INTERFACE,
3400 };
3401
3402 static struct ti_clk hsotgusb_ick_3430es2 = {
3403         .name = "hsotgusb_ick_3430es2",
3404         .clkdm_name = "core_l3_clkdm",
3405         .type = TI_CLK_GATE,
3406         .data = &hsotgusb_ick_3430es2_data,
3407 };
3408
3409 static struct ti_clk_gate gfx_l3_ck_data = {
3410         .parent = "l3_ick",
3411         .bit_shift = 0,
3412         .reg = 0xb10,
3413         .module = TI_CLKM_CM,
3414         .flags = CLKF_WAIT,
3415 };
3416
3417 static struct ti_clk gfx_l3_ck = {
3418         .name = "gfx_l3_ck",
3419         .clkdm_name = "gfx_3430es1_clkdm",
3420         .type = TI_CLK_GATE,
3421         .data = &gfx_l3_ck_data,
3422 };
3423
3424 static struct ti_clk_fixed_factor gfx_l3_ick_data = {
3425         .parent = "gfx_l3_ck",
3426         .div = 1,
3427         .mult = 1,
3428 };
3429
3430 static struct ti_clk gfx_l3_ick = {
3431         .name = "gfx_l3_ick",
3432         .type = TI_CLK_FIXED_FACTOR,
3433         .data = &gfx_l3_ick_data,
3434 };
3435
3436 static struct ti_clk_gate mcbsp1_ick_data = {
3437         .parent = "core_l4_ick",
3438         .bit_shift = 9,
3439         .reg = 0xa10,
3440         .module = TI_CLKM_CM,
3441         .flags = CLKF_OMAP3 | CLKF_INTERFACE,
3442 };
3443
3444 static struct ti_clk mcbsp1_ick = {
3445         .name = "mcbsp1_ick",
3446         .clkdm_name = "core_l4_clkdm",
3447         .type = TI_CLK_GATE,
3448         .data = &mcbsp1_ick_data,
3449 };
3450
3451 static struct ti_clk_fixed_factor gpt12_fck_data = {
3452         .parent = "secure_32k_fck",
3453         .div = 1,
3454         .mult = 1,
3455 };
3456
3457 static struct ti_clk gpt12_fck = {
3458         .name = "gpt12_fck",
3459         .type = TI_CLK_FIXED_FACTOR,
3460         .data = &gpt12_fck_data,
3461 };
3462
3463 static struct ti_clk_gate gfx_cg2_ck_data = {
3464         .parent = "gfx_l3_fck",
3465         .bit_shift = 2,
3466         .reg = 0xb00,
3467         .module = TI_CLKM_CM,
3468         .flags = CLKF_WAIT,
3469 };
3470
3471 static struct ti_clk gfx_cg2_ck = {
3472         .name = "gfx_cg2_ck",
3473         .clkdm_name = "gfx_3430es1_clkdm",
3474         .type = TI_CLK_GATE,
3475         .data = &gfx_cg2_ck_data,
3476 };
3477
3478 static struct ti_clk_gate i2c2_ick_data = {
3479         .parent = "core_l4_ick",
3480         .bit_shift = 16,
3481         .reg = 0xa10,
3482         .module = TI_CLKM_CM,
3483         .flags = CLKF_OMAP3 | CLKF_INTERFACE,
3484 };
3485
3486 static struct ti_clk i2c2_ick = {
3487         .name = "i2c2_ick",
3488         .clkdm_name = "core_l4_clkdm",
3489         .type = TI_CLK_GATE,
3490         .data = &i2c2_ick_data,
3491 };
3492
3493 static struct ti_clk_gate gpio4_dbck_data = {
3494         .parent = "per_32k_alwon_fck",
3495         .bit_shift = 15,
3496         .reg = 0x1000,
3497         .module = TI_CLKM_CM,
3498 };
3499
3500 static struct ti_clk gpio4_dbck = {
3501         .name = "gpio4_dbck",
3502         .clkdm_name = "per_clkdm",
3503         .type = TI_CLK_GATE,
3504         .data = &gpio4_dbck_data,
3505 };
3506
3507 static struct ti_clk_gate i2c3_fck_data = {
3508         .parent = "core_96m_fck",
3509         .bit_shift = 17,
3510         .reg = 0xa00,
3511         .module = TI_CLKM_CM,
3512         .flags = CLKF_WAIT,
3513 };
3514
3515 static struct ti_clk i2c3_fck = {
3516         .name = "i2c3_fck",
3517         .clkdm_name = "core_l4_clkdm",
3518         .type = TI_CLK_GATE,
3519         .data = &i2c3_fck_data,
3520 };
3521
3522 static struct ti_clk_composite gpt3_fck_data = {
3523         .mux = &gpt3_mux_fck_data,
3524         .gate = &gpt3_gate_fck_data,
3525 };
3526
3527 static struct ti_clk gpt3_fck = {
3528         .name = "gpt3_fck",
3529         .type = TI_CLK_COMPOSITE,
3530         .data = &gpt3_fck_data,
3531 };
3532
3533 static struct ti_clk_gate i2c1_ick_data = {
3534         .parent = "core_l4_ick",
3535         .bit_shift = 15,
3536         .reg = 0xa10,
3537         .module = TI_CLKM_CM,
3538         .flags = CLKF_OMAP3 | CLKF_INTERFACE,
3539 };
3540
3541 static struct ti_clk i2c1_ick = {
3542         .name = "i2c1_ick",
3543         .clkdm_name = "core_l4_clkdm",
3544         .type = TI_CLK_GATE,
3545         .data = &i2c1_ick_data,
3546 };
3547
3548 static struct ti_clk_gate omap_32ksync_ick_data = {
3549         .parent = "wkup_l4_ick",
3550         .bit_shift = 2,
3551         .reg = 0xc10,
3552         .module = TI_CLKM_CM,
3553         .flags = CLKF_OMAP3 | CLKF_INTERFACE,
3554 };
3555
3556 static struct ti_clk omap_32ksync_ick = {
3557         .name = "omap_32ksync_ick",
3558         .clkdm_name = "wkup_clkdm",
3559         .type = TI_CLK_GATE,
3560         .data = &omap_32ksync_ick_data,
3561 };
3562
3563 static struct ti_clk_gate aes2_ick_data = {
3564         .parent = "core_l4_ick",
3565         .bit_shift = 28,
3566         .reg = 0xa10,
3567         .module = TI_CLKM_CM,
3568         .flags = CLKF_OMAP3 | CLKF_INTERFACE,
3569 };
3570
3571 static struct ti_clk aes2_ick = {
3572         .name = "aes2_ick",
3573         .clkdm_name = "core_l4_clkdm",
3574         .type = TI_CLK_GATE,
3575         .data = &aes2_ick_data,
3576 };
3577
3578 static const char *gpt8_mux_fck_parents[] = {
3579         "omap_32k_fck",
3580         "sys_ck",
3581 };
3582
3583 static struct ti_clk_mux gpt8_mux_fck_data = {
3584         .bit_shift = 6,
3585         .num_parents = ARRAY_SIZE(gpt8_mux_fck_parents),
3586         .reg = 0x1040,
3587         .module = TI_CLKM_CM,
3588         .parents = gpt8_mux_fck_parents,
3589 };
3590
3591 static struct ti_clk_composite gpt8_fck_data = {
3592         .mux = &gpt8_mux_fck_data,
3593         .gate = &gpt8_gate_fck_data,
3594 };
3595
3596 static struct ti_clk gpt8_fck = {
3597         .name = "gpt8_fck",
3598         .type = TI_CLK_COMPOSITE,
3599         .data = &gpt8_fck_data,
3600 };
3601
3602 static struct ti_clk_gate mcbsp4_gate_fck_data = {
3603         .parent = "mcbsp_clks",
3604         .bit_shift = 2,
3605         .reg = 0x1000,
3606         .module = TI_CLKM_CM,
3607 };
3608
3609 static struct ti_clk_composite mcbsp4_fck_data = {
3610         .mux = &mcbsp4_mux_fck_data,
3611         .gate = &mcbsp4_gate_fck_data,
3612 };
3613
3614 static struct ti_clk mcbsp4_fck = {
3615         .name = "mcbsp4_fck",
3616         .type = TI_CLK_COMPOSITE,
3617         .data = &mcbsp4_fck_data,
3618 };
3619
3620 static struct ti_clk_gate gpio2_dbck_data = {
3621         .parent = "per_32k_alwon_fck",
3622         .bit_shift = 13,
3623         .reg = 0x1000,
3624         .module = TI_CLKM_CM,
3625 };
3626
3627 static struct ti_clk gpio2_dbck = {
3628         .name = "gpio2_dbck",
3629         .clkdm_name = "per_clkdm",
3630         .type = TI_CLK_GATE,
3631         .data = &gpio2_dbck_data,
3632 };
3633
3634 static struct ti_clk_gate usbtll_ick_data = {
3635         .parent = "core_l4_ick",
3636         .bit_shift = 2,
3637         .reg = 0xa18,
3638         .module = TI_CLKM_CM,
3639         .flags = CLKF_OMAP3 | CLKF_INTERFACE,
3640 };
3641
3642 static struct ti_clk usbtll_ick = {
3643         .name = "usbtll_ick",
3644         .clkdm_name = "core_l4_clkdm",
3645         .type = TI_CLK_GATE,
3646         .data = &usbtll_ick_data,
3647 };
3648
3649 static struct ti_clk_gate mcspi4_ick_data = {
3650         .parent = "core_l4_ick",
3651         .bit_shift = 21,
3652         .reg = 0xa10,
3653         .module = TI_CLKM_CM,
3654         .flags = CLKF_OMAP3 | CLKF_INTERFACE,
3655 };
3656
3657 static struct ti_clk mcspi4_ick = {
3658         .name = "mcspi4_ick",
3659         .clkdm_name = "core_l4_clkdm",
3660         .type = TI_CLK_GATE,
3661         .data = &mcspi4_ick_data,
3662 };
3663
3664 static struct ti_clk_gate dss_96m_fck_data = {
3665         .parent = "omap_96m_fck",
3666         .bit_shift = 2,
3667         .reg = 0xe00,
3668         .module = TI_CLKM_CM,
3669 };
3670
3671 static struct ti_clk dss_96m_fck = {
3672         .name = "dss_96m_fck",
3673         .clkdm_name = "dss_clkdm",
3674         .type = TI_CLK_GATE,
3675         .data = &dss_96m_fck_data,
3676 };
3677
3678 static struct ti_clk_divider rm_ick_data = {
3679         .parent = "l4_ick",
3680         .bit_shift = 1,
3681         .max_div = 3,
3682         .reg = 0xc40,
3683         .module = TI_CLKM_CM,
3684         .flags = CLKF_INDEX_STARTS_AT_ONE,
3685 };
3686
3687 static struct ti_clk rm_ick = {
3688         .name = "rm_ick",
3689         .type = TI_CLK_DIVIDER,
3690         .data = &rm_ick_data,
3691 };
3692
3693 static struct ti_clk_gate hdq_ick_data = {
3694         .parent = "core_l4_ick",
3695         .bit_shift = 22,
3696         .reg = 0xa10,
3697         .module = TI_CLKM_CM,
3698         .flags = CLKF_OMAP3 | CLKF_INTERFACE,
3699 };
3700
3701 static struct ti_clk hdq_ick = {
3702         .name = "hdq_ick",
3703         .clkdm_name = "core_l4_clkdm",
3704         .type = TI_CLK_GATE,
3705         .data = &hdq_ick_data,
3706 };
3707
3708 static struct ti_clk_fixed_factor dpll3_x2_ck_data = {
3709         .parent = "dpll3_ck",
3710         .div = 1,
3711         .mult = 2,
3712 };
3713
3714 static struct ti_clk dpll3_x2_ck = {
3715         .name = "dpll3_x2_ck",
3716         .type = TI_CLK_FIXED_FACTOR,
3717         .data = &dpll3_x2_ck_data,
3718 };
3719
3720 static struct ti_clk_gate mad2d_ick_data = {
3721         .parent = "l3_ick",
3722         .bit_shift = 3,
3723         .reg = 0xa18,
3724         .module = TI_CLKM_CM,
3725         .flags = CLKF_OMAP3 | CLKF_INTERFACE,
3726 };
3727
3728 static struct ti_clk mad2d_ick = {
3729         .name = "mad2d_ick",
3730         .clkdm_name = "d2d_clkdm",
3731         .type = TI_CLK_GATE,
3732         .data = &mad2d_ick_data,
3733 };
3734
3735 static struct ti_clk_gate fshostusb_fck_data = {
3736         .parent = "core_48m_fck",
3737         .bit_shift = 5,
3738         .reg = 0xa00,
3739         .module = TI_CLKM_CM,
3740         .flags = CLKF_WAIT,
3741 };
3742
3743 static struct ti_clk fshostusb_fck = {
3744         .name = "fshostusb_fck",
3745         .clkdm_name = "core_l4_clkdm",
3746         .type = TI_CLK_GATE,
3747         .data = &fshostusb_fck_data,
3748 };
3749
3750 static struct ti_clk_gate sr1_fck_data = {
3751         .parent = "sys_ck",
3752         .bit_shift = 6,
3753         .reg = 0xc00,
3754         .module = TI_CLKM_CM,
3755         .flags = CLKF_WAIT,
3756 };
3757
3758 static struct ti_clk sr1_fck = {
3759         .name = "sr1_fck",
3760         .clkdm_name = "wkup_clkdm",
3761         .type = TI_CLK_GATE,
3762         .data = &sr1_fck_data,
3763 };
3764
3765 static struct ti_clk_gate des2_ick_data = {
3766         .parent = "core_l4_ick",
3767         .bit_shift = 26,
3768         .reg = 0xa10,
3769         .module = TI_CLKM_CM,
3770         .flags = CLKF_OMAP3 | CLKF_INTERFACE,
3771 };
3772
3773 static struct ti_clk des2_ick = {
3774         .name = "des2_ick",
3775         .clkdm_name = "core_l4_clkdm",
3776         .type = TI_CLK_GATE,
3777         .data = &des2_ick_data,
3778 };
3779
3780 static struct ti_clk_gate sdrc_ick_data = {
3781         .parent = "core_l3_ick",
3782         .bit_shift = 1,
3783         .reg = 0xa10,
3784         .module = TI_CLKM_CM,
3785         .flags = CLKF_WAIT,
3786 };
3787
3788 static struct ti_clk sdrc_ick = {
3789         .name = "sdrc_ick",
3790         .clkdm_name = "core_l3_clkdm",
3791         .type = TI_CLK_GATE,
3792         .data = &sdrc_ick_data,
3793 };
3794
3795 static struct ti_clk_composite gpt4_fck_data = {
3796         .mux = &gpt4_mux_fck_data,
3797         .gate = &gpt4_gate_fck_data,
3798 };
3799
3800 static struct ti_clk gpt4_fck = {
3801         .name = "gpt4_fck",
3802         .type = TI_CLK_COMPOSITE,
3803         .data = &gpt4_fck_data,
3804 };
3805
3806 static struct ti_clk_gate dpll4_m3x2_ck_omap36xx_data = {
3807         .parent = "dpll4_m3x2_mul_ck",
3808         .bit_shift = 0x1c,
3809         .reg = 0xd00,
3810         .module = TI_CLKM_CM,
3811         .flags = CLKF_HSDIV | CLKF_SET_BIT_TO_DISABLE,
3812 };
3813
3814 static struct ti_clk dpll4_m3x2_ck_omap36xx = {
3815         .name = "dpll4_m3x2_ck",
3816         .type = TI_CLK_GATE,
3817         .data = &dpll4_m3x2_ck_omap36xx_data,
3818         .patch = &dpll4_m3x2_ck,
3819 };
3820
3821 static struct ti_clk_gate cpefuse_fck_data = {
3822         .parent = "sys_ck",
3823         .bit_shift = 0,
3824         .reg = 0xa08,
3825         .module = TI_CLKM_CM,
3826 };
3827
3828 static struct ti_clk cpefuse_fck = {
3829         .name = "cpefuse_fck",
3830         .clkdm_name = "core_l4_clkdm",
3831         .type = TI_CLK_GATE,
3832         .data = &cpefuse_fck_data,
3833 };
3834
3835 static struct ti_clk_gate mcspi3_ick_data = {
3836         .parent = "core_l4_ick",
3837         .bit_shift = 20,
3838         .reg = 0xa10,
3839         .module = TI_CLKM_CM,
3840         .flags = CLKF_OMAP3 | CLKF_INTERFACE,
3841 };
3842
3843 static struct ti_clk mcspi3_ick = {
3844         .name = "mcspi3_ick",
3845         .clkdm_name = "core_l4_clkdm",
3846         .type = TI_CLK_GATE,
3847         .data = &mcspi3_ick_data,
3848 };
3849
3850 static struct ti_clk_fixed_factor ssi_sst_fck_3430es2_data = {
3851         .parent = "ssi_ssr_fck",
3852         .div = 2,
3853         .mult = 1,
3854 };
3855
3856 static struct ti_clk ssi_sst_fck_3430es2 = {
3857         .name = "ssi_sst_fck",
3858         .type = TI_CLK_FIXED_FACTOR,
3859         .data = &ssi_sst_fck_3430es2_data,
3860 };
3861
3862 static struct ti_clk_gate gpio1_dbck_data = {
3863         .parent = "wkup_32k_fck",
3864         .bit_shift = 3,
3865         .reg = 0xc00,
3866         .module = TI_CLKM_CM,
3867 };
3868
3869 static struct ti_clk gpio1_dbck = {
3870         .name = "gpio1_dbck",
3871         .clkdm_name = "wkup_clkdm",
3872         .type = TI_CLK_GATE,
3873         .data = &gpio1_dbck_data,
3874 };
3875
3876 static struct ti_clk_gate gpt4_ick_data = {
3877         .parent = "per_l4_ick",
3878         .bit_shift = 5,
3879         .reg = 0x1010,
3880         .module = TI_CLKM_CM,
3881         .flags = CLKF_OMAP3 | CLKF_INTERFACE,
3882 };
3883
3884 static struct ti_clk gpt4_ick = {
3885         .name = "gpt4_ick",
3886         .clkdm_name = "per_clkdm",
3887         .type = TI_CLK_GATE,
3888         .data = &gpt4_ick_data,
3889 };
3890
3891 static struct ti_clk_gate gpt2_ick_data = {
3892         .parent = "per_l4_ick",
3893         .bit_shift = 3,
3894         .reg = 0x1010,
3895         .module = TI_CLKM_CM,
3896         .flags = CLKF_OMAP3 | CLKF_INTERFACE,
3897 };
3898
3899 static struct ti_clk gpt2_ick = {
3900         .name = "gpt2_ick",
3901         .clkdm_name = "per_clkdm",
3902         .type = TI_CLK_GATE,
3903         .data = &gpt2_ick_data,
3904 };
3905
3906 static struct ti_clk_gate mmchs1_fck_data = {
3907         .parent = "core_96m_fck",
3908         .bit_shift = 24,
3909         .reg = 0xa00,
3910         .module = TI_CLKM_CM,
3911         .flags = CLKF_WAIT,
3912 };
3913
3914 static struct ti_clk mmchs1_fck = {
3915         .name = "mmchs1_fck",
3916         .clkdm_name = "core_l4_clkdm",
3917         .type = TI_CLK_GATE,
3918         .data = &mmchs1_fck_data,
3919 };
3920
3921 static struct ti_clk_fixed dummy_apb_pclk_data = {
3922         .frequency = 0x0,
3923 };
3924
3925 static struct ti_clk dummy_apb_pclk = {
3926         .name = "dummy_apb_pclk",
3927         .type = TI_CLK_FIXED,
3928         .data = &dummy_apb_pclk_data,
3929 };
3930
3931 static struct ti_clk_gate gpio6_dbck_data = {
3932         .parent = "per_32k_alwon_fck",
3933         .bit_shift = 17,
3934         .reg = 0x1000,
3935         .module = TI_CLKM_CM,
3936 };
3937
3938 static struct ti_clk gpio6_dbck = {
3939         .name = "gpio6_dbck",
3940         .clkdm_name = "per_clkdm",
3941         .type = TI_CLK_GATE,
3942         .data = &gpio6_dbck_data,
3943 };
3944
3945 static struct ti_clk_gate uart2_ick_data = {
3946         .parent = "core_l4_ick",
3947         .bit_shift = 14,
3948         .reg = 0xa10,
3949         .module = TI_CLKM_CM,
3950         .flags = CLKF_OMAP3 | CLKF_INTERFACE,
3951 };
3952
3953 static struct ti_clk uart2_ick = {
3954         .name = "uart2_ick",
3955         .clkdm_name = "core_l4_clkdm",
3956         .type = TI_CLK_GATE,
3957         .data = &uart2_ick_data,
3958 };
3959
3960 static struct ti_clk_fixed_factor dpll4_x2_ck_data = {
3961         .parent = "dpll4_ck",
3962         .div = 1,
3963         .mult = 2,
3964 };
3965
3966 static struct ti_clk dpll4_x2_ck = {
3967         .name = "dpll4_x2_ck",
3968         .type = TI_CLK_FIXED_FACTOR,
3969         .data = &dpll4_x2_ck_data,
3970 };
3971
3972 static struct ti_clk_gate gpt7_ick_data = {
3973         .parent = "per_l4_ick",
3974         .bit_shift = 8,
3975         .reg = 0x1010,
3976         .module = TI_CLKM_CM,
3977         .flags = CLKF_OMAP3 | CLKF_INTERFACE,
3978 };
3979
3980 static struct ti_clk gpt7_ick = {
3981         .name = "gpt7_ick",
3982         .clkdm_name = "per_clkdm",
3983         .type = TI_CLK_GATE,
3984         .data = &gpt7_ick_data,
3985 };
3986
3987 static struct ti_clk_gate dss_tv_fck_data = {
3988         .parent = "omap_54m_fck",
3989         .bit_shift = 2,
3990         .reg = 0xe00,
3991         .module = TI_CLKM_CM,
3992 };
3993
3994 static struct ti_clk dss_tv_fck = {
3995         .name = "dss_tv_fck",
3996         .clkdm_name = "dss_clkdm",
3997         .type = TI_CLK_GATE,
3998         .data = &dss_tv_fck_data,
3999 };
4000
4001 static struct ti_clk_gate mcbsp5_ick_data = {
4002         .parent = "core_l4_ick",
4003         .bit_shift = 10,
4004         .reg = 0xa10,
4005         .module = TI_CLKM_CM,
4006         .flags = CLKF_OMAP3 | CLKF_INTERFACE,
4007 };
4008
4009 static struct ti_clk mcbsp5_ick = {
4010         .name = "mcbsp5_ick",
4011         .clkdm_name = "core_l4_clkdm",
4012         .type = TI_CLK_GATE,
4013         .data = &mcbsp5_ick_data,
4014 };
4015
4016 static struct ti_clk_gate mcspi1_ick_data = {
4017         .parent = "core_l4_ick",
4018         .bit_shift = 18,
4019         .reg = 0xa10,
4020         .module = TI_CLKM_CM,
4021         .flags = CLKF_OMAP3 | CLKF_INTERFACE,
4022 };
4023
4024 static struct ti_clk mcspi1_ick = {
4025         .name = "mcspi1_ick",
4026         .clkdm_name = "core_l4_clkdm",
4027         .type = TI_CLK_GATE,
4028         .data = &mcspi1_ick_data,
4029 };
4030
4031 static struct ti_clk_gate d2d_26m_fck_data = {
4032         .parent = "sys_ck",
4033         .bit_shift = 3,
4034         .reg = 0xa00,
4035         .module = TI_CLKM_CM,
4036         .flags = CLKF_WAIT,
4037 };
4038
4039 static struct ti_clk d2d_26m_fck = {
4040         .name = "d2d_26m_fck",
4041         .clkdm_name = "d2d_clkdm",
4042         .type = TI_CLK_GATE,
4043         .data = &d2d_26m_fck_data,
4044 };
4045
4046 static struct ti_clk_gate wdt3_ick_data = {
4047         .parent = "per_l4_ick",
4048         .bit_shift = 12,
4049         .reg = 0x1010,
4050         .module = TI_CLKM_CM,
4051         .flags = CLKF_OMAP3 | CLKF_INTERFACE,
4052 };
4053
4054 static struct ti_clk wdt3_ick = {
4055         .name = "wdt3_ick",
4056         .clkdm_name = "per_clkdm",
4057         .type = TI_CLK_GATE,
4058         .data = &wdt3_ick_data,
4059 };
4060
4061 static struct ti_clk_divider pclkx2_fck_data = {
4062         .parent = "emu_src_ck",
4063         .bit_shift = 6,
4064         .max_div = 3,
4065         .reg = 0x1140,
4066         .module = TI_CLKM_CM,
4067         .flags = CLKF_INDEX_STARTS_AT_ONE,
4068 };
4069
4070 static struct ti_clk pclkx2_fck = {
4071         .name = "pclkx2_fck",
4072         .type = TI_CLK_DIVIDER,
4073         .data = &pclkx2_fck_data,
4074 };
4075
4076 static struct ti_clk_gate sha12_ick_data = {
4077         .parent = "core_l4_ick",
4078         .bit_shift = 27,
4079         .reg = 0xa10,
4080         .module = TI_CLKM_CM,
4081         .flags = CLKF_OMAP3 | CLKF_INTERFACE,
4082 };
4083
4084 static struct ti_clk sha12_ick = {
4085         .name = "sha12_ick",
4086         .clkdm_name = "core_l4_clkdm",
4087         .type = TI_CLK_GATE,
4088         .data = &sha12_ick_data,
4089 };
4090
4091 static struct ti_clk_gate emac_fck_data = {
4092         .parent = "rmii_ck",
4093         .bit_shift = 9,
4094         .reg = 0x59c,
4095         .module = TI_CLKM_SCRM,
4096 };
4097
4098 static struct ti_clk emac_fck = {
4099         .name = "emac_fck",
4100         .type = TI_CLK_GATE,
4101         .data = &emac_fck_data,
4102 };
4103
4104 static struct ti_clk_composite gpt10_fck_data = {
4105         .mux = &gpt10_mux_fck_data,
4106         .gate = &gpt10_gate_fck_data,
4107 };
4108
4109 static struct ti_clk gpt10_fck = {
4110         .name = "gpt10_fck",
4111         .type = TI_CLK_COMPOSITE,
4112         .data = &gpt10_fck_data,
4113 };
4114
4115 static struct ti_clk_gate wdt2_fck_data = {
4116         .parent = "wkup_32k_fck",
4117         .bit_shift = 5,
4118         .reg = 0xc00,
4119         .module = TI_CLKM_CM,
4120         .flags = CLKF_WAIT,
4121 };
4122
4123 static struct ti_clk wdt2_fck = {
4124         .name = "wdt2_fck",
4125         .clkdm_name = "wkup_clkdm",
4126         .type = TI_CLK_GATE,
4127         .data = &wdt2_fck_data,
4128 };
4129
4130 static struct ti_clk_gate cam_ick_data = {
4131         .parent = "l4_ick",
4132         .bit_shift = 0,
4133         .reg = 0xf10,
4134         .module = TI_CLKM_CM,
4135         .flags = CLKF_OMAP3 | CLKF_NO_WAIT | CLKF_INTERFACE,
4136 };
4137
4138 static struct ti_clk cam_ick = {
4139         .name = "cam_ick",
4140         .clkdm_name = "cam_clkdm",
4141         .type = TI_CLK_GATE,
4142         .data = &cam_ick_data,
4143 };
4144
4145 static struct ti_clk_gate ssi_ick_3430es2_data = {
4146         .parent = "ssi_l4_ick",
4147         .bit_shift = 0,
4148         .reg = 0xa10,
4149         .module = TI_CLKM_CM,
4150         .flags = CLKF_SSI | CLKF_OMAP3 | CLKF_INTERFACE,
4151 };
4152
4153 static struct ti_clk ssi_ick_3430es2 = {
4154         .name = "ssi_ick",
4155         .clkdm_name = "core_l4_clkdm",
4156         .type = TI_CLK_GATE,
4157         .data = &ssi_ick_3430es2_data,
4158 };
4159
4160 static struct ti_clk_gate gpio4_ick_data = {
4161         .parent = "per_l4_ick",
4162         .bit_shift = 15,
4163         .reg = 0x1010,
4164         .module = TI_CLKM_CM,
4165         .flags = CLKF_OMAP3 | CLKF_INTERFACE,
4166 };
4167
4168 static struct ti_clk gpio4_ick = {
4169         .name = "gpio4_ick",
4170         .clkdm_name = "per_clkdm",
4171         .type = TI_CLK_GATE,
4172         .data = &gpio4_ick_data,
4173 };
4174
4175 static struct ti_clk_gate wdt1_ick_data = {
4176         .parent = "wkup_l4_ick",
4177         .bit_shift = 4,
4178         .reg = 0xc10,
4179         .module = TI_CLKM_CM,
4180         .flags = CLKF_OMAP3 | CLKF_INTERFACE,
4181 };
4182
4183 static struct ti_clk wdt1_ick = {
4184         .name = "wdt1_ick",
4185         .clkdm_name = "wkup_clkdm",
4186         .type = TI_CLK_GATE,
4187         .data = &wdt1_ick_data,
4188 };
4189
4190 static struct ti_clk_gate rng_ick_data = {
4191         .parent = "security_l4_ick2",
4192         .bit_shift = 2,
4193         .reg = 0xa14,
4194         .module = TI_CLKM_CM,
4195         .flags = CLKF_OMAP3 | CLKF_INTERFACE,
4196 };
4197
4198 static struct ti_clk rng_ick = {
4199         .name = "rng_ick",
4200         .type = TI_CLK_GATE,
4201         .data = &rng_ick_data,
4202 };
4203
4204 static struct ti_clk_gate icr_ick_data = {
4205         .parent = "core_l4_ick",
4206         .bit_shift = 29,
4207         .reg = 0xa10,
4208         .module = TI_CLKM_CM,
4209         .flags = CLKF_OMAP3 | CLKF_INTERFACE,
4210 };
4211
4212 static struct ti_clk icr_ick = {
4213         .name = "icr_ick",
4214         .clkdm_name = "core_l4_clkdm",
4215         .type = TI_CLK_GATE,
4216         .data = &icr_ick_data,
4217 };
4218
4219 static struct ti_clk_gate sgx_ick_data = {
4220         .parent = "l3_ick",
4221         .bit_shift = 0,
4222         .reg = 0xb10,
4223         .module = TI_CLKM_CM,
4224         .flags = CLKF_WAIT,
4225 };
4226
4227 static struct ti_clk sgx_ick = {
4228         .name = "sgx_ick",
4229         .clkdm_name = "sgx_clkdm",
4230         .type = TI_CLK_GATE,
4231         .data = &sgx_ick_data,
4232 };
4233
4234 static struct ti_clk_divider sys_clkout2_data = {
4235         .parent = "clkout2_src_ck",
4236         .bit_shift = 3,
4237         .max_div = 64,
4238         .reg = 0xd70,
4239         .module = TI_CLKM_CM,
4240         .flags = CLKF_INDEX_POWER_OF_TWO,
4241 };
4242
4243 static struct ti_clk sys_clkout2 = {
4244         .name = "sys_clkout2",
4245         .type = TI_CLK_DIVIDER,
4246         .data = &sys_clkout2_data,
4247 };
4248
4249 static struct ti_clk_alias omap34xx_omap36xx_clks[] = {
4250         CLK(NULL, "security_l4_ick2", &security_l4_ick2),
4251         CLK(NULL, "aes1_ick", &aes1_ick),
4252         CLK("omap_rng", "ick", &rng_ick),
4253         CLK("omap3-rom-rng", "ick", &rng_ick),
4254         CLK(NULL, "sha11_ick", &sha11_ick),
4255         CLK(NULL, "des1_ick", &des1_ick),
4256         CLK(NULL, "cam_mclk", &cam_mclk),
4257         CLK(NULL, "cam_ick", &cam_ick),
4258         CLK(NULL, "csi2_96m_fck", &csi2_96m_fck),
4259         CLK(NULL, "security_l3_ick", &security_l3_ick),
4260         CLK(NULL, "pka_ick", &pka_ick),
4261         CLK(NULL, "icr_ick", &icr_ick),
4262         CLK(NULL, "des2_ick", &des2_ick),
4263         CLK(NULL, "mspro_ick", &mspro_ick),
4264         CLK(NULL, "mailboxes_ick", &mailboxes_ick),
4265         CLK(NULL, "ssi_l4_ick", &ssi_l4_ick),
4266         CLK(NULL, "sr1_fck", &sr1_fck),
4267         CLK(NULL, "sr2_fck", &sr2_fck),
4268         CLK(NULL, "sr_l4_ick", &sr_l4_ick),
4269         CLK(NULL, "dpll2_fck", &dpll2_fck),
4270         CLK(NULL, "dpll2_ck", &dpll2_ck),
4271         CLK(NULL, "dpll2_m2_ck", &dpll2_m2_ck),
4272         CLK(NULL, "iva2_ck", &iva2_ck),
4273         CLK(NULL, "modem_fck", &modem_fck),
4274         CLK(NULL, "sad2d_ick", &sad2d_ick),
4275         CLK(NULL, "mad2d_ick", &mad2d_ick),
4276         CLK(NULL, "mspro_fck", &mspro_fck),
4277         { NULL },
4278 };
4279
4280 static struct ti_clk_alias omap36xx_omap3430es2plus_clks[] = {
4281         CLK(NULL, "ssi_ssr_fck", &ssi_ssr_fck_3430es2),
4282         CLK(NULL, "ssi_sst_fck", &ssi_sst_fck_3430es2),
4283         CLK("musb-omap2430", "ick", &hsotgusb_ick_3430es2),
4284         CLK(NULL, "hsotgusb_ick", &hsotgusb_ick_3430es2),
4285         CLK(NULL, "ssi_ick", &ssi_ick_3430es2),
4286         CLK(NULL, "sys_d2_ck", &sys_d2_ck),
4287         CLK(NULL, "omap_96m_d2_fck", &omap_96m_d2_fck),
4288         CLK(NULL, "omap_96m_d4_fck", &omap_96m_d4_fck),
4289         CLK(NULL, "omap_96m_d8_fck", &omap_96m_d8_fck),
4290         CLK(NULL, "omap_96m_d10_fck", &omap_96m_d10_fck),
4291         CLK(NULL, "dpll5_m2_d4_ck", &dpll5_m2_d4_ck),
4292         CLK(NULL, "dpll5_m2_d8_ck", &dpll5_m2_d8_ck),
4293         CLK(NULL, "dpll5_m2_d16_ck", &dpll5_m2_d16_ck),
4294         CLK(NULL, "dpll5_m2_d20_ck", &dpll5_m2_d20_ck),
4295         CLK(NULL, "usim_fck", &usim_fck),
4296         CLK(NULL, "usim_ick", &usim_ick),
4297         { NULL },
4298 };
4299
4300 static struct ti_clk_alias omap3xxx_clks[] = {
4301         CLK(NULL, "apb_pclk", &dummy_apb_pclk),
4302         CLK(NULL, "omap_32k_fck", &omap_32k_fck),
4303         CLK(NULL, "virt_12m_ck", &virt_12m_ck),
4304         CLK(NULL, "virt_13m_ck", &virt_13m_ck),
4305         CLK(NULL, "virt_19200000_ck", &virt_19200000_ck),
4306         CLK(NULL, "virt_26000000_ck", &virt_26000000_ck),
4307         CLK(NULL, "virt_38_4m_ck", &virt_38_4m_ck),
4308         CLK(NULL, "virt_16_8m_ck", &virt_16_8m_ck),
4309         CLK(NULL, "osc_sys_ck", &osc_sys_ck),
4310         CLK("twl", "fck", &osc_sys_ck),
4311         CLK(NULL, "sys_ck", &sys_ck),
4312         CLK(NULL, "timer_sys_ck", &sys_ck),
4313         CLK(NULL, "dpll4_ck", &dpll4_ck),
4314         CLK(NULL, "dpll4_m2_ck", &dpll4_m2_ck),
4315         CLK(NULL, "dpll4_m2x2_mul_ck", &dpll4_m2x2_mul_ck),
4316         CLK(NULL, "dpll4_m2x2_ck", &dpll4_m2x2_ck),
4317         CLK(NULL, "omap_96m_alwon_fck", &omap_96m_alwon_fck),
4318         CLK(NULL, "dpll3_ck", &dpll3_ck),
4319         CLK(NULL, "dpll3_m3_ck", &dpll3_m3_ck),
4320         CLK(NULL, "dpll3_m3x2_mul_ck", &dpll3_m3x2_mul_ck),
4321         CLK(NULL, "dpll3_m3x2_ck", &dpll3_m3x2_ck),
4322         CLK("etb", "emu_core_alwon_ck", &emu_core_alwon_ck),
4323         CLK(NULL, "sys_altclk", &sys_altclk),
4324         CLK(NULL, "sys_clkout1", &sys_clkout1),
4325         CLK(NULL, "dpll3_m2_ck", &dpll3_m2_ck),
4326         CLK(NULL, "core_ck", &core_ck),
4327         CLK(NULL, "dpll1_fck", &dpll1_fck),
4328         CLK(NULL, "dpll1_ck", &dpll1_ck),
4329         CLK(NULL, "cpufreq_ck", &dpll1_ck),
4330         CLK(NULL, "dpll1_x2_ck", &dpll1_x2_ck),
4331         CLK(NULL, "dpll1_x2m2_ck", &dpll1_x2m2_ck),
4332         CLK(NULL, "dpll3_x2_ck", &dpll3_x2_ck),
4333         CLK(NULL, "dpll3_m2x2_ck", &dpll3_m2x2_ck),
4334         CLK(NULL, "dpll4_x2_ck", &dpll4_x2_ck),
4335         CLK(NULL, "cm_96m_fck", &cm_96m_fck),
4336         CLK(NULL, "omap_96m_fck", &omap_96m_fck),
4337         CLK(NULL, "dpll4_m3_ck", &dpll4_m3_ck),
4338         CLK(NULL, "dpll4_m3x2_mul_ck", &dpll4_m3x2_mul_ck),
4339         CLK(NULL, "dpll4_m3x2_ck", &dpll4_m3x2_ck),
4340         CLK(NULL, "omap_54m_fck", &omap_54m_fck),
4341         CLK(NULL, "cm_96m_d2_fck", &cm_96m_d2_fck),
4342         CLK(NULL, "omap_48m_fck", &omap_48m_fck),
4343         CLK(NULL, "omap_12m_fck", &omap_12m_fck),
4344         CLK(NULL, "dpll4_m4_ck", &dpll4_m4_ck),
4345         CLK(NULL, "dpll4_m4x2_mul_ck", &dpll4_m4x2_mul_ck),
4346         CLK(NULL, "dpll4_m4x2_ck", &dpll4_m4x2_ck),
4347         CLK(NULL, "dpll4_m5_ck", &dpll4_m5_ck),
4348         CLK(NULL, "dpll4_m5x2_mul_ck", &dpll4_m5x2_mul_ck),
4349         CLK(NULL, "dpll4_m5x2_ck", &dpll4_m5x2_ck),
4350         CLK(NULL, "dpll4_m6_ck", &dpll4_m6_ck),
4351         CLK(NULL, "dpll4_m6x2_mul_ck", &dpll4_m6x2_mul_ck),
4352         CLK(NULL, "dpll4_m6x2_ck", &dpll4_m6x2_ck),
4353         CLK("etb", "emu_per_alwon_ck", &emu_per_alwon_ck),
4354         CLK(NULL, "clkout2_src_ck", &clkout2_src_ck),
4355         CLK(NULL, "sys_clkout2", &sys_clkout2),
4356         CLK(NULL, "corex2_fck", &corex2_fck),
4357         CLK(NULL, "mpu_ck", &mpu_ck),
4358         CLK(NULL, "arm_fck", &arm_fck),
4359         CLK("etb", "emu_mpu_alwon_ck", &emu_mpu_alwon_ck),
4360         CLK(NULL, "l3_ick", &l3_ick),
4361         CLK(NULL, "l4_ick", &l4_ick),
4362         CLK(NULL, "rm_ick", &rm_ick),
4363         CLK(NULL, "timer_32k_ck", &omap_32k_fck),
4364         CLK(NULL, "gpt10_fck", &gpt10_fck),
4365         CLK(NULL, "gpt11_fck", &gpt11_fck),
4366         CLK(NULL, "core_96m_fck", &core_96m_fck),
4367         CLK(NULL, "mmchs2_fck", &mmchs2_fck),
4368         CLK(NULL, "mmchs1_fck", &mmchs1_fck),
4369         CLK(NULL, "i2c3_fck", &i2c3_fck),
4370         CLK(NULL, "i2c2_fck", &i2c2_fck),
4371         CLK(NULL, "i2c1_fck", &i2c1_fck),
4372         CLK(NULL, "core_48m_fck", &core_48m_fck),
4373         CLK(NULL, "mcspi4_fck", &mcspi4_fck),
4374         CLK(NULL, "mcspi3_fck", &mcspi3_fck),
4375         CLK(NULL, "mcspi2_fck", &mcspi2_fck),
4376         CLK(NULL, "mcspi1_fck", &mcspi1_fck),
4377         CLK(NULL, "uart2_fck", &uart2_fck),
4378         CLK(NULL, "uart1_fck", &uart1_fck),
4379         CLK(NULL, "core_12m_fck", &core_12m_fck),
4380         CLK("omap_hdq.0", "fck", &hdq_fck),
4381         CLK(NULL, "hdq_fck", &hdq_fck),
4382         CLK(NULL, "core_l3_ick", &core_l3_ick),
4383         CLK(NULL, "sdrc_ick", &sdrc_ick),
4384         CLK(NULL, "gpmc_fck", &gpmc_fck),
4385         CLK(NULL, "core_l4_ick", &core_l4_ick),
4386         CLK("omap_hsmmc.1", "ick", &mmchs2_ick),
4387         CLK("omap_hsmmc.0", "ick", &mmchs1_ick),
4388         CLK(NULL, "mmchs2_ick", &mmchs2_ick),
4389         CLK(NULL, "mmchs1_ick", &mmchs1_ick),
4390         CLK("omap_hdq.0", "ick", &hdq_ick),
4391         CLK(NULL, "hdq_ick", &hdq_ick),
4392         CLK("omap2_mcspi.4", "ick", &mcspi4_ick),
4393         CLK("omap2_mcspi.3", "ick", &mcspi3_ick),
4394         CLK("omap2_mcspi.2", "ick", &mcspi2_ick),
4395         CLK("omap2_mcspi.1", "ick", &mcspi1_ick),
4396         CLK(NULL, "mcspi4_ick", &mcspi4_ick),
4397         CLK(NULL, "mcspi3_ick", &mcspi3_ick),
4398         CLK(NULL, "mcspi2_ick", &mcspi2_ick),
4399         CLK(NULL, "mcspi1_ick", &mcspi1_ick),
4400         CLK("omap_i2c.3", "ick", &i2c3_ick),
4401         CLK("omap_i2c.2", "ick", &i2c2_ick),
4402         CLK("omap_i2c.1", "ick", &i2c1_ick),
4403         CLK(NULL, "i2c3_ick", &i2c3_ick),
4404         CLK(NULL, "i2c2_ick", &i2c2_ick),
4405         CLK(NULL, "i2c1_ick", &i2c1_ick),
4406         CLK(NULL, "uart2_ick", &uart2_ick),
4407         CLK(NULL, "uart1_ick", &uart1_ick),
4408         CLK(NULL, "gpt11_ick", &gpt11_ick),
4409         CLK(NULL, "gpt10_ick", &gpt10_ick),
4410         CLK(NULL, "mcbsp5_ick", &mcbsp5_ick),
4411         CLK(NULL, "mcbsp1_ick", &mcbsp1_ick),
4412         CLK(NULL, "omapctrl_ick", &omapctrl_ick),
4413         CLK(NULL, "dss_tv_fck", &dss_tv_fck),
4414         CLK(NULL, "dss_96m_fck", &dss_96m_fck),
4415         CLK(NULL, "dss2_alwon_fck", &dss2_alwon_fck),
4416         CLK(NULL, "init_60m_fclk", &dummy_ck),
4417         CLK(NULL, "gpt1_fck", &gpt1_fck),
4418         CLK(NULL, "aes2_ick", &aes2_ick),
4419         CLK(NULL, "wkup_32k_fck", &wkup_32k_fck),
4420         CLK(NULL, "gpio1_dbck", &gpio1_dbck),
4421         CLK(NULL, "sha12_ick", &sha12_ick),
4422         CLK(NULL, "wdt2_fck", &wdt2_fck),
4423         CLK(NULL, "wkup_l4_ick", &wkup_l4_ick),
4424         CLK("omap_wdt", "ick", &wdt2_ick),
4425         CLK(NULL, "wdt2_ick", &wdt2_ick),
4426         CLK(NULL, "wdt1_ick", &wdt1_ick),
4427         CLK(NULL, "gpio1_ick", &gpio1_ick),
4428         CLK(NULL, "omap_32ksync_ick", &omap_32ksync_ick),
4429         CLK(NULL, "gpt12_ick", &gpt12_ick),
4430         CLK(NULL, "gpt1_ick", &gpt1_ick),
4431         CLK(NULL, "per_96m_fck", &per_96m_fck),
4432         CLK(NULL, "per_48m_fck", &per_48m_fck),
4433         CLK(NULL, "uart3_fck", &uart3_fck),
4434         CLK(NULL, "gpt2_fck", &gpt2_fck),
4435         CLK(NULL, "gpt3_fck", &gpt3_fck),
4436         CLK(NULL, "gpt4_fck", &gpt4_fck),
4437         CLK(NULL, "gpt5_fck", &gpt5_fck),
4438         CLK(NULL, "gpt6_fck", &gpt6_fck),
4439         CLK(NULL, "gpt7_fck", &gpt7_fck),
4440         CLK(NULL, "gpt8_fck", &gpt8_fck),
4441         CLK(NULL, "gpt9_fck", &gpt9_fck),
4442         CLK(NULL, "per_32k_alwon_fck", &per_32k_alwon_fck),
4443         CLK(NULL, "gpio6_dbck", &gpio6_dbck),
4444         CLK(NULL, "gpio5_dbck", &gpio5_dbck),
4445         CLK(NULL, "gpio4_dbck", &gpio4_dbck),
4446         CLK(NULL, "gpio3_dbck", &gpio3_dbck),
4447         CLK(NULL, "gpio2_dbck", &gpio2_dbck),
4448         CLK(NULL, "wdt3_fck", &wdt3_fck),
4449         CLK(NULL, "per_l4_ick", &per_l4_ick),
4450         CLK(NULL, "gpio6_ick", &gpio6_ick),
4451         CLK(NULL, "gpio5_ick", &gpio5_ick),
4452         CLK(NULL, "gpio4_ick", &gpio4_ick),
4453         CLK(NULL, "gpio3_ick", &gpio3_ick),
4454         CLK(NULL, "gpio2_ick", &gpio2_ick),
4455         CLK(NULL, "wdt3_ick", &wdt3_ick),
4456         CLK(NULL, "uart3_ick", &uart3_ick),
4457         CLK(NULL, "uart4_ick", &uart4_ick),
4458         CLK(NULL, "gpt9_ick", &gpt9_ick),
4459         CLK(NULL, "gpt8_ick", &gpt8_ick),
4460         CLK(NULL, "gpt7_ick", &gpt7_ick),
4461         CLK(NULL, "gpt6_ick", &gpt6_ick),
4462         CLK(NULL, "gpt5_ick", &gpt5_ick),
4463         CLK(NULL, "gpt4_ick", &gpt4_ick),
4464         CLK(NULL, "gpt3_ick", &gpt3_ick),
4465         CLK(NULL, "gpt2_ick", &gpt2_ick),
4466         CLK(NULL, "mcbsp_clks", &mcbsp_clks),
4467         CLK("omap-mcbsp.1", "ick", &mcbsp1_ick),
4468         CLK("omap-mcbsp.2", "ick", &mcbsp2_ick),
4469         CLK("omap-mcbsp.3", "ick", &mcbsp3_ick),
4470         CLK("omap-mcbsp.4", "ick", &mcbsp4_ick),
4471         CLK("omap-mcbsp.5", "ick", &mcbsp5_ick),
4472         CLK(NULL, "mcbsp1_ick", &mcbsp1_ick),
4473         CLK(NULL, "mcbsp2_ick", &mcbsp2_ick),
4474         CLK(NULL, "mcbsp3_ick", &mcbsp3_ick),
4475         CLK(NULL, "mcbsp4_ick", &mcbsp4_ick),
4476         CLK(NULL, "mcbsp5_ick", &mcbsp5_ick),
4477         CLK(NULL, "mcbsp1_fck", &mcbsp1_fck),
4478         CLK(NULL, "mcbsp2_fck", &mcbsp2_fck),
4479         CLK(NULL, "mcbsp3_fck", &mcbsp3_fck),
4480         CLK(NULL, "mcbsp4_fck", &mcbsp4_fck),
4481         CLK(NULL, "mcbsp5_fck", &mcbsp5_fck),
4482         CLK(NULL, "emu_src_mux_ck", &emu_src_mux_ck),
4483         CLK("etb", "emu_src_ck", &emu_src_ck),
4484         CLK(NULL, "emu_src_mux_ck", &emu_src_mux_ck),
4485         CLK(NULL, "emu_src_ck", &emu_src_ck),
4486         CLK(NULL, "pclk_fck", &pclk_fck),
4487         CLK(NULL, "pclkx2_fck", &pclkx2_fck),
4488         CLK(NULL, "atclk_fck", &atclk_fck),
4489         CLK(NULL, "traceclk_src_fck", &traceclk_src_fck),
4490         CLK(NULL, "traceclk_fck", &traceclk_fck),
4491         CLK(NULL, "secure_32k_fck", &secure_32k_fck),
4492         CLK(NULL, "gpt12_fck", &gpt12_fck),
4493         CLK(NULL, "wdt1_fck", &wdt1_fck),
4494         { NULL },
4495 };
4496
4497 static struct ti_clk_alias omap36xx_am35xx_omap3430es2plus_clks[] = {
4498         CLK(NULL, "dpll5_ck", &dpll5_ck),
4499         CLK(NULL, "dpll5_m2_ck", &dpll5_m2_ck),
4500         CLK(NULL, "core_d3_ck", &core_d3_ck),
4501         CLK(NULL, "core_d4_ck", &core_d4_ck),
4502         CLK(NULL, "core_d6_ck", &core_d6_ck),
4503         CLK(NULL, "omap_192m_alwon_fck", &omap_192m_alwon_fck),
4504         CLK(NULL, "core_d2_ck", &core_d2_ck),
4505         CLK(NULL, "corex2_d3_fck", &corex2_d3_fck),
4506         CLK(NULL, "corex2_d5_fck", &corex2_d5_fck),
4507         CLK(NULL, "sgx_fck", &sgx_fck),
4508         CLK(NULL, "sgx_ick", &sgx_ick),
4509         CLK(NULL, "cpefuse_fck", &cpefuse_fck),
4510         CLK(NULL, "ts_fck", &ts_fck),
4511         CLK(NULL, "usbtll_fck", &usbtll_fck),
4512         CLK(NULL, "usbtll_ick", &usbtll_ick),
4513         CLK("omap_hsmmc.2", "ick", &mmchs3_ick),
4514         CLK(NULL, "mmchs3_ick", &mmchs3_ick),
4515         CLK(NULL, "mmchs3_fck", &mmchs3_fck),
4516         CLK(NULL, "dss1_alwon_fck", &dss1_alwon_fck_3430es2),
4517         CLK("omapdss_dss", "ick", &dss_ick_3430es2),
4518         CLK(NULL, "dss_ick", &dss_ick_3430es2),
4519         CLK(NULL, "usbhost_120m_fck", &usbhost_120m_fck),
4520         CLK(NULL, "usbhost_48m_fck", &usbhost_48m_fck),
4521         CLK(NULL, "usbhost_ick", &usbhost_ick),
4522         { NULL },
4523 };
4524
4525 static struct ti_clk_alias omap3430es1_clks[] = {
4526         CLK(NULL, "gfx_l3_ck", &gfx_l3_ck),
4527         CLK(NULL, "gfx_l3_fck", &gfx_l3_fck),
4528         CLK(NULL, "gfx_l3_ick", &gfx_l3_ick),
4529         CLK(NULL, "gfx_cg1_ck", &gfx_cg1_ck),
4530         CLK(NULL, "gfx_cg2_ck", &gfx_cg2_ck),
4531         CLK(NULL, "d2d_26m_fck", &d2d_26m_fck),
4532         CLK(NULL, "fshostusb_fck", &fshostusb_fck),
4533         CLK(NULL, "ssi_ssr_fck", &ssi_ssr_fck_3430es1),
4534         CLK(NULL, "ssi_sst_fck", &ssi_sst_fck_3430es1),
4535         CLK("musb-omap2430", "ick", &hsotgusb_ick_3430es1),
4536         CLK(NULL, "hsotgusb_ick", &hsotgusb_ick_3430es1),
4537         CLK(NULL, "fac_ick", &fac_ick),
4538         CLK(NULL, "ssi_ick", &ssi_ick_3430es1),
4539         CLK(NULL, "usb_l4_ick", &usb_l4_ick),
4540         CLK(NULL, "dss1_alwon_fck", &dss1_alwon_fck_3430es1),
4541         CLK("omapdss_dss", "ick", &dss_ick_3430es1),
4542         CLK(NULL, "dss_ick", &dss_ick_3430es1),
4543         { NULL },
4544 };
4545
4546 static struct ti_clk_alias omap36xx_clks[] = {
4547         CLK(NULL, "uart4_fck", &uart4_fck),
4548         { NULL },
4549 };
4550
4551 static struct ti_clk_alias am35xx_clks[] = {
4552         CLK(NULL, "ipss_ick", &ipss_ick),
4553         CLK(NULL, "rmii_ck", &rmii_ck),
4554         CLK(NULL, "pclk_ck", &pclk_ck),
4555         CLK(NULL, "emac_ick", &emac_ick),
4556         CLK(NULL, "emac_fck", &emac_fck),
4557         CLK("davinci_emac.0", NULL, &emac_ick),
4558         CLK("davinci_mdio.0", NULL, &emac_fck),
4559         CLK("vpfe-capture", "master", &vpfe_ick),
4560         CLK("vpfe-capture", "slave", &vpfe_fck),
4561         CLK(NULL, "hsotgusb_ick", &hsotgusb_ick_am35xx),
4562         CLK(NULL, "hsotgusb_fck", &hsotgusb_fck_am35xx),
4563         CLK(NULL, "hecc_ck", &hecc_ck),
4564         CLK(NULL, "uart4_ick", &uart4_ick_am35xx),
4565         CLK(NULL, "uart4_fck", &uart4_fck_am35xx),
4566         { NULL },
4567 };
4568
4569 static struct ti_clk *omap36xx_clk_patches[] = {
4570         &dpll4_m3x2_ck_omap36xx,
4571         &dpll3_m3x2_ck_omap36xx,
4572         &dpll4_m6x2_ck_omap36xx,
4573         &dpll4_m2x2_ck_omap36xx,
4574         &dpll4_m5x2_ck_omap36xx,
4575         &dpll4_ck_omap36xx,
4576         NULL,
4577 };
4578
4579 static const char *enable_init_clks[] = {
4580         "sdrc_ick",
4581         "gpmc_fck",
4582         "omapctrl_ick",
4583 };
4584
4585 static void __init omap3_clk_legacy_common_init(void)
4586 {
4587         omap2_clk_disable_autoidle_all();
4588
4589         omap2_clk_enable_init_clocks(enable_init_clks,
4590                                      ARRAY_SIZE(enable_init_clks));
4591
4592         pr_info("Clocking rate (Crystal/Core/MPU): %ld.%01ld/%ld/%ld MHz\n",
4593                 (clk_get_rate(osc_sys_ck.clk) / 1000000),
4594                 (clk_get_rate(osc_sys_ck.clk) / 100000) % 10,
4595                 (clk_get_rate(core_ck.clk) / 1000000),
4596                 (clk_get_rate(arm_fck.clk) / 1000000));
4597 }
4598
4599 int __init omap3430es1_clk_legacy_init(void)
4600 {
4601         int r;
4602
4603         r = ti_clk_register_legacy_clks(omap3430es1_clks);
4604         r |= ti_clk_register_legacy_clks(omap34xx_omap36xx_clks);
4605         r |= ti_clk_register_legacy_clks(omap3xxx_clks);
4606
4607         omap3_clk_legacy_common_init();
4608
4609         return r;
4610 }
4611
4612 int __init omap3430_clk_legacy_init(void)
4613 {
4614         int r;
4615
4616         r = ti_clk_register_legacy_clks(omap34xx_omap36xx_clks);
4617         r |= ti_clk_register_legacy_clks(omap36xx_omap3430es2plus_clks);
4618         r |= ti_clk_register_legacy_clks(omap36xx_am35xx_omap3430es2plus_clks);
4619         r |= ti_clk_register_legacy_clks(omap3xxx_clks);
4620
4621         omap3_clk_legacy_common_init();
4622         omap3_clk_lock_dpll5();
4623
4624         return r;
4625 }
4626
4627 int __init omap36xx_clk_legacy_init(void)
4628 {
4629         int r;
4630
4631         ti_clk_patch_legacy_clks(omap36xx_clk_patches);
4632         r = ti_clk_register_legacy_clks(omap36xx_clks);
4633         r |= ti_clk_register_legacy_clks(omap36xx_omap3430es2plus_clks);
4634         r |= ti_clk_register_legacy_clks(omap34xx_omap36xx_clks);
4635         r |= ti_clk_register_legacy_clks(omap36xx_am35xx_omap3430es2plus_clks);
4636         r |= ti_clk_register_legacy_clks(omap3xxx_clks);
4637
4638         omap3_clk_legacy_common_init();
4639         omap3_clk_lock_dpll5();
4640
4641         return r;
4642 }
4643
4644 int __init am35xx_clk_legacy_init(void)
4645 {
4646         int r;
4647
4648         r = ti_clk_register_legacy_clks(am35xx_clks);
4649         r |= ti_clk_register_legacy_clks(omap36xx_am35xx_omap3430es2plus_clks);
4650         r |= ti_clk_register_legacy_clks(omap3xxx_clks);
4651
4652         omap3_clk_legacy_common_init();
4653         omap3_clk_lock_dpll5();
4654
4655         return r;
4656 }