blob: 072c587b8a032c30f5a191cf1678042d4af0b191 [file] [log] [blame]
Srinivas Kandagatla15969b42013-06-25 12:15:23 +01001/*
2 * Copyright (C) 2013 STMicroelectronics R&D Limited
3 * <stlinux-devel@stlinux.com>
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License version 2 as
7 * published by the Free Software Foundation.
8 */
Gabriel FERNANDEZed3593f2014-05-20 15:22:00 +02009
Gabriel FERNANDEZ08488e22014-05-20 15:22:00 +020010#include <dt-bindings/clock/stih416-clks.h>
11
Srinivas Kandagatla15969b42013-06-25 12:15:23 +010012/ {
13 clocks {
Gabriel FERNANDEZ08488e22014-05-20 15:22:00 +020014 #address-cells = <1>;
15 #size-cells = <1>;
16 ranges;
Gabriel FERNANDEZed3593f2014-05-20 15:22:00 +020017
Srinivas Kandagatla15969b42013-06-25 12:15:23 +010018 /*
19 * Fixed 30MHz oscillator inputs to SoC
20 */
Gabriel FERNANDEZed3593f2014-05-20 15:22:00 +020021 clk_sysin: clk-sysin {
Srinivas Kandagatla15969b42013-06-25 12:15:23 +010022 #clock-cells = <0>;
23 compatible = "fixed-clock";
24 clock-frequency = <30000000>;
Srinivas Kandagatla15969b42013-06-25 12:15:23 +010025 };
26
27 /*
28 * ARM Peripheral clock for timers
29 */
30 arm_periph_clk: arm_periph_clk {
31 #clock-cells = <0>;
32 compatible = "fixed-clock";
33 clock-frequency = <600000000>;
34 };
35
Gabriel FERNANDEZ08488e22014-05-20 15:22:00 +020036 /*
37 * ClockGenAs on SASG2
38 */
39 clockgen-a@fee62000 {
40 reg = <0xfee62000 0xb48>;
41
42 clk_s_a0_pll: clk-s-a0-pll {
43 #clock-cells = <1>;
44 compatible = "st,clkgena-plls-c65";
45
46 clocks = <&clk_sysin>;
47
48 clock-output-names = "clk-s-a0-pll0-hs",
49 "clk-s-a0-pll0-ls",
50 "clk-s-a0-pll1";
51 };
52
53 clk_s_a0_osc_prediv: clk-s-a0-osc-prediv {
54 #clock-cells = <0>;
55 compatible = "st,clkgena-prediv-c65",
56 "st,clkgena-prediv";
57
58 clocks = <&clk_sysin>;
59
60 clock-output-names = "clk-s-a0-osc-prediv";
61 };
62
63 clk_s_a0_hs: clk-s-a0-hs {
64 #clock-cells = <1>;
65 compatible = "st,clkgena-divmux-c65-hs",
66 "st,clkgena-divmux";
67
68 clocks = <&clk_s_a0_osc_prediv>,
69 <&clk_s_a0_pll 0>, /* PLL0 HS */
70 <&clk_s_a0_pll 2>; /* PLL1 */
71
72 clock-output-names = "clk-s-fdma-0",
73 "clk-s-fdma-1",
74 ""; /* clk-s-jit-sense */
75 /* Fourth output unused */
76 };
77
78 clk_s_a0_ls: clk-s-a0-ls {
79 #clock-cells = <1>;
80 compatible = "st,clkgena-divmux-c65-ls",
81 "st,clkgena-divmux";
82
83 clocks = <&clk_s_a0_osc_prediv>,
84 <&clk_s_a0_pll 1>, /* PLL0 LS */
85 <&clk_s_a0_pll 2>; /* PLL1 */
86
87 clock-output-names = "clk-s-icn-reg-0",
88 "clk-s-icn-if-0",
89 "clk-s-icn-reg-lp-0",
90 "clk-s-emiss",
91 "clk-s-eth1-phy",
92 "clk-s-mii-ref-out";
93 /* Remaining outputs unused */
94 };
95 };
96
97 clockgen-a@fee81000 {
98 reg = <0xfee81000 0xb48>;
99
100 clk_s_a1_pll: clk-s-a1-pll {
101 #clock-cells = <1>;
102 compatible = "st,clkgena-plls-c65";
103
104 clocks = <&clk_sysin>;
105
106 clock-output-names = "clk-s-a1-pll0-hs",
107 "clk-s-a1-pll0-ls",
108 "clk-s-a1-pll1";
109 };
110
111 clk_s_a1_osc_prediv: clk-s-a1-osc-prediv {
112 #clock-cells = <0>;
113 compatible = "st,clkgena-prediv-c65",
114 "st,clkgena-prediv";
115
116 clocks = <&clk_sysin>;
117
118 clock-output-names = "clk-s-a1-osc-prediv";
119 };
120
121 clk_s_a1_hs: clk-s-a1-hs {
122 #clock-cells = <1>;
123 compatible = "st,clkgena-divmux-c65-hs",
124 "st,clkgena-divmux";
125
126 clocks = <&clk_s_a1_osc_prediv>,
127 <&clk_s_a1_pll 0>, /* PLL0 HS */
128 <&clk_s_a1_pll 2>; /* PLL1 */
129
130 clock-output-names = "", /* Reserved */
131 "", /* Reserved */
132 "clk-s-stac-phy",
133 "clk-s-vtac-tx-phy";
134 };
135
136 clk_s_a1_ls: clk-s-a1-ls {
137 #clock-cells = <1>;
138 compatible = "st,clkgena-divmux-c65-ls",
139 "st,clkgena-divmux";
140
141 clocks = <&clk_s_a1_osc_prediv>,
142 <&clk_s_a1_pll 1>, /* PLL0 LS */
143 <&clk_s_a1_pll 2>; /* PLL1 */
144
145 clock-output-names = "clk-s-icn-if-2",
146 "clk-s-card-mmc-0",
147 "clk-s-icn-if-1",
148 "clk-s-gmac0-phy",
149 "clk-s-nand-ctrl",
150 "", /* Reserved */
151 "clk-s-mii0-ref-out",
152 "clk-s-stac-sys",
153 "clk-s-card-mmc-1";
154 /* Remaining outputs unused */
155 };
156 };
157
158 /*
159 * ClockGenAs on MPE42
160 */
161 clockgen-a@fde12000 {
162 reg = <0xfde12000 0xb50>;
163
164 clk_m_a0_pll0: clk-m-a0-pll0 {
165 #clock-cells = <1>;
166 compatible = "st,plls-c32-a1x-0", "st,clkgen-plls-c32";
167
168 clocks = <&clk_sysin>;
169
170 clock-output-names = "clk-m-a0-pll0-phi0",
171 "clk-m-a0-pll0-phi1",
172 "clk-m-a0-pll0-phi2",
173 "clk-m-a0-pll0-phi3";
174 };
175
176 clk_m_a0_pll1: clk-m-a0-pll1 {
177 #clock-cells = <1>;
178 compatible = "st,plls-c32-a1x-1", "st,clkgen-plls-c32";
179
180 clocks = <&clk_sysin>;
181
182 clock-output-names = "clk-m-a0-pll1-phi0",
183 "clk-m-a0-pll1-phi1",
184 "clk-m-a0-pll1-phi2",
185 "clk-m-a0-pll1-phi3";
186 };
187
188 clk_m_a0_osc_prediv: clk-m-a0-osc-prediv {
189 #clock-cells = <0>;
190 compatible = "st,clkgena-prediv-c32",
191 "st,clkgena-prediv";
192
193 clocks = <&clk_sysin>;
194
195 clock-output-names = "clk-m-a0-osc-prediv";
196 };
197
198 clk_m_a0_div0: clk-m-a0-div0 {
199 #clock-cells = <1>;
200 compatible = "st,clkgena-divmux-c32-odf0",
201 "st,clkgena-divmux";
202
203 clocks = <&clk_m_a0_osc_prediv>,
204 <&clk_m_a0_pll0 0>, /* PLL0 PHI0 */
205 <&clk_m_a0_pll1 0>; /* PLL1 PHI0 */
206
207 clock-output-names = "", /* Unused */
208 "", /* Unused */
209 "clk-m-fdma-12",
210 "", /* Unused */
211 "clk-m-pp-dmu-0",
212 "clk-m-pp-dmu-1",
213 "clk-m-icm-lmi",
214 "clk-m-vid-dmu-0";
215 };
216
217 clk_m_a0_div1: clk-m-a0-div1 {
218 #clock-cells = <1>;
219 compatible = "st,clkgena-divmux-c32-odf1",
220 "st,clkgena-divmux";
221
222 clocks = <&clk_m_a0_osc_prediv>,
223 <&clk_m_a0_pll0 1>, /* PLL0 PHI1 */
224 <&clk_m_a0_pll1 1>; /* PLL1 PHI1 */
225
226 clock-output-names = "clk-m-vid-dmu-1",
227 "", /* Unused */
228 "clk-m-a9-ext2f",
229 "clk-m-st40rt",
230 "clk-m-st231-dmu-0",
231 "clk-m-st231-dmu-1",
232 "clk-m-st231-aud",
233 "clk-m-st231-gp-0";
234 };
235
236 clk_m_a0_div2: clk-m-a0-div2 {
237 #clock-cells = <1>;
238 compatible = "st,clkgena-divmux-c32-odf2",
239 "st,clkgena-divmux";
240
241 clocks = <&clk_m_a0_osc_prediv>,
242 <&clk_m_a0_pll0 2>, /* PLL0 PHI2 */
243 <&clk_m_a0_pll1 2>; /* PLL1 PHI2 */
244
245 clock-output-names = "clk-m-st231-gp-1",
246 "clk-m-icn-cpu",
247 "clk-m-icn-stac",
248 "clk-m-tx-icn-dmu-0",
249 "clk-m-tx-icn-dmu-1",
250 "clk-m-tx-icn-ts",
251 "clk-m-icn-vdp-0",
252 "clk-m-icn-vdp-1";
253 };
254
255 clk_m_a0_div3: clk-m-a0-div3 {
256 #clock-cells = <1>;
257 compatible = "st,clkgena-divmux-c32-odf3",
258 "st,clkgena-divmux";
259
260 clocks = <&clk_m_a0_osc_prediv>,
261 <&clk_m_a0_pll0 3>, /* PLL0 PHI3 */
262 <&clk_m_a0_pll1 3>; /* PLL1 PHI3 */
263
264 clock-output-names = "", /* Unused */
265 "", /* Unused */
266 "", /* Unused */
267 "", /* Unused */
268 "clk-m-icn-vp8",
269 "", /* Unused */
270 "clk-m-icn-reg-11",
271 "clk-m-a9-trace";
272 };
273 };
274
275 clockgen-a@fd6db000 {
276 reg = <0xfd6db000 0xb50>;
277
278 clk_m_a1_pll0: clk-m-a1-pll0 {
279 #clock-cells = <1>;
280 compatible = "st,plls-c32-a1x-0", "st,clkgen-plls-c32";
281
282 clocks = <&clk_sysin>;
283
284 clock-output-names = "clk-m-a1-pll0-phi0",
285 "clk-m-a1-pll0-phi1",
286 "clk-m-a1-pll0-phi2",
287 "clk-m-a1-pll0-phi3";
288 };
289
290 clk_m_a1_pll1: clk-m-a1-pll1 {
291 #clock-cells = <1>;
292 compatible = "st,plls-c32-a1x-1", "st,clkgen-plls-c32";
293
294 clocks = <&clk_sysin>;
295
296 clock-output-names = "clk-m-a1-pll1-phi0",
297 "clk-m-a1-pll1-phi1",
298 "clk-m-a1-pll1-phi2",
299 "clk-m-a1-pll1-phi3";
300 };
301
302 clk_m_a1_osc_prediv: clk-m-a1-osc-prediv {
303 #clock-cells = <0>;
304 compatible = "st,clkgena-prediv-c32",
305 "st,clkgena-prediv";
306
307 clocks = <&clk_sysin>;
308
309 clock-output-names = "clk-m-a1-osc-prediv";
310 };
311
312 clk_m_a1_div0: clk-m-a1-div0 {
313 #clock-cells = <1>;
314 compatible = "st,clkgena-divmux-c32-odf0",
315 "st,clkgena-divmux";
316
317 clocks = <&clk_m_a1_osc_prediv>,
318 <&clk_m_a1_pll0 0>, /* PLL0 PHI0 */
319 <&clk_m_a1_pll1 0>; /* PLL1 PHI0 */
320
321 clock-output-names = "", /* Unused */
322 "clk-m-fdma-10",
323 "clk-m-fdma-11",
324 "clk-m-hva-alt",
325 "clk-m-proc-sc",
326 "clk-m-tp",
327 "clk-m-rx-icn-dmu-0",
328 "clk-m-rx-icn-dmu-1";
329 };
330
331 clk_m_a1_div1: clk-m-a1-div1 {
332 #clock-cells = <1>;
333 compatible = "st,clkgena-divmux-c32-odf1",
334 "st,clkgena-divmux";
335
336 clocks = <&clk_m_a1_osc_prediv>,
337 <&clk_m_a1_pll0 1>, /* PLL0 PHI1 */
338 <&clk_m_a1_pll1 1>; /* PLL1 PHI1 */
339
340 clock-output-names = "clk-m-rx-icn-ts",
341 "clk-m-rx-icn-vdp-0",
342 "", /* Unused */
343 "clk-m-prv-t1-bus",
344 "clk-m-icn-reg-12",
345 "clk-m-icn-reg-10",
346 "", /* Unused */
347 "clk-m-icn-st231";
348 };
349
350 clk_m_a1_div2: clk-m-a1-div2 {
351 #clock-cells = <1>;
352 compatible = "st,clkgena-divmux-c32-odf2",
353 "st,clkgena-divmux";
354
355 clocks = <&clk_m_a1_osc_prediv>,
356 <&clk_m_a1_pll0 2>, /* PLL0 PHI2 */
357 <&clk_m_a1_pll1 2>; /* PLL1 PHI2 */
358
359 clock-output-names = "clk-m-fvdp-proc-alt",
360 "clk-m-icn-reg-13",
361 "clk-m-tx-icn-gpu",
362 "clk-m-rx-icn-gpu",
363 "", /* Unused */
364 "", /* Unused */
365 "", /* clk-m-apb-pm-12 */
366 ""; /* Unused */
367 };
368
369 clk_m_a1_div3: clk-m-a1-div3 {
370 #clock-cells = <1>;
371 compatible = "st,clkgena-divmux-c32-odf3",
372 "st,clkgena-divmux";
373
374 clocks = <&clk_m_a1_osc_prediv>,
375 <&clk_m_a1_pll0 3>, /* PLL0 PHI3 */
376 <&clk_m_a1_pll1 3>; /* PLL1 PHI3 */
377
378 clock-output-names = "", /* Unused */
379 "", /* Unused */
380 "", /* Unused */
381 "", /* Unused */
382 "", /* Unused */
383 "", /* Unused */
384 "", /* Unused */
385 ""; /* clk-m-gpu-alt */
386 };
387 };
388
389 clk_m_a9_ext2f_div2: clk-m-a9-ext2f-div2 {
390 #clock-cells = <0>;
391 compatible = "fixed-factor-clock";
392 clocks = <&clk_m_a0_div1 2>;
393 clock-div = <2>;
394 clock-mult = <1>;
395 };
396
397 clockgen-a@fd345000 {
398 reg = <0xfd345000 0xb50>;
399
400 clk_m_a2_pll0: clk-m-a2-pll0 {
401 #clock-cells = <1>;
402 compatible = "st,plls-c32-a1x-0", "st,clkgen-plls-c32";
403
404 clocks = <&clk_sysin>;
405
406 clock-output-names = "clk-m-a2-pll0-phi0",
407 "clk-m-a2-pll0-phi1",
408 "clk-m-a2-pll0-phi2",
409 "clk-m-a2-pll0-phi3";
410 };
411
412 clk_m_a2_pll1: clk-m-a2-pll1 {
413 #clock-cells = <1>;
414 compatible = "st,plls-c32-a1x-1", "st,clkgen-plls-c32";
415
416 clocks = <&clk_sysin>;
417
418 clock-output-names = "clk-m-a2-pll1-phi0",
419 "clk-m-a2-pll1-phi1",
420 "clk-m-a2-pll1-phi2",
421 "clk-m-a2-pll1-phi3";
422 };
423
424 clk_m_a2_osc_prediv: clk-m-a2-osc-prediv {
425 #clock-cells = <0>;
426 compatible = "st,clkgena-prediv-c32",
427 "st,clkgena-prediv";
428
429 clocks = <&clk_sysin>;
430
431 clock-output-names = "clk-m-a2-osc-prediv";
432 };
433
434 clk_m_a2_div0: clk-m-a2-div0 {
435 #clock-cells = <1>;
436 compatible = "st,clkgena-divmux-c32-odf0",
437 "st,clkgena-divmux";
438
439 clocks = <&clk_m_a2_osc_prediv>,
440 <&clk_m_a2_pll0 0>, /* PLL0 PHI0 */
441 <&clk_m_a2_pll1 0>; /* PLL1 PHI0 */
442
443 clock-output-names = "clk-m-vtac-main-phy",
444 "clk-m-vtac-aux-phy",
445 "clk-m-stac-phy",
446 "clk-m-stac-sys",
447 "", /* clk-m-mpestac-pg */
448 "", /* clk-m-mpestac-wc */
449 "", /* clk-m-mpevtacaux-pg*/
450 ""; /* clk-m-mpevtacmain-pg*/
451 };
452
453 clk_m_a2_div1: clk-m-a2-div1 {
454 #clock-cells = <1>;
455 compatible = "st,clkgena-divmux-c32-odf1",
456 "st,clkgena-divmux";
457
458 clocks = <&clk_m_a2_osc_prediv>,
459 <&clk_m_a2_pll0 1>, /* PLL0 PHI1 */
460 <&clk_m_a2_pll1 1>; /* PLL1 PHI1 */
461
462 clock-output-names = "", /* clk-m-mpevtacrx0-wc */
463 "", /* clk-m-mpevtacrx1-wc */
464 "clk-m-compo-main",
465 "clk-m-compo-aux",
466 "clk-m-bdisp-0",
467 "clk-m-bdisp-1",
468 "clk-m-icn-bdisp",
469 "clk-m-icn-compo";
470 };
471
472 clk_m_a2_div2: clk-m-a2-div2 {
473 #clock-cells = <1>;
474 compatible = "st,clkgena-divmux-c32-odf2",
475 "st,clkgena-divmux";
476
477 clocks = <&clk_m_a2_osc_prediv>,
478 <&clk_m_a2_pll0 2>, /* PLL0 PHI2 */
479 <&clk_m_a2_pll1 2>; /* PLL1 PHI2 */
480
481 clock-output-names = "clk-m-icn-vdp-2",
482 "", /* Unused */
483 "clk-m-icn-reg-14",
484 "clk-m-mdtp",
485 "clk-m-jpegdec",
486 "", /* Unused */
487 "clk-m-dcephy-impctrl",
488 ""; /* Unused */
489 };
490
491 clk_m_a2_div3: clk-m-a2-div3 {
492 #clock-cells = <1>;
493 compatible = "st,clkgena-divmux-c32-odf3",
494 "st,clkgena-divmux";
495
496 clocks = <&clk_m_a2_osc_prediv>,
497 <&clk_m_a2_pll0 3>, /* PLL0 PHI3 */
498 <&clk_m_a2_pll1 3>; /* PLL1 PHI3 */
499
500 clock-output-names = "", /* Unused */
501 ""; /* clk-m-apb-pm-11 */
502 /* Remaining outputs unused */
503 };
504 };
Srinivas Kandagatla15969b42013-06-25 12:15:23 +0100505 };
506};