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