95e06abf31777aae6b63d94e20e7cd865f233733
[firefly-linux-kernel-4.4.55.git] / arch / arm / boot / dts / rk3036-clocks.dtsi
1 /*
2  * Copyright (C) 2014 ROCKCHIP, Inc.
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 as published by
6  * the Free Software Foundation; either version 2 of the License, or
7  * (at your option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12  * GNU General Public License for more details.
13  */
14 #include <dt-bindings/clock/rockchip,rk3036.h>
15
16 /{
17
18         clocks {
19                 compatible = "rockchip,rk-clocks";
20                 #address-cells = <1>;
21                 #size-cells = <1>;
22                 ranges = <0x0  0x20000000  0x1f0>;
23
24                 fixed_rate_cons {
25                         compatible = "rockchip,rk-fixed-rate-cons";
26
27                         xin24m: xin24m {
28                                 compatible = "rockchip,rk-fixed-clock";
29                                 clock-output-names = "xin24m";
30                                 clock-frequency = <24000000>;
31                                 #clock-cells = <0>;
32                         };
33
34                         xin12m: xin12m {
35                                 compatible = "rockchip,rk-fixed-clock";
36                                 clocks = <&xin24m>;
37                                 clock-output-names = "xin12m";
38                                 clock-frequency = <12000000>;
39                                 #clock-cells = <0>;
40                         };
41
42                         rmii_clkin: rmii_clkin {
43                                 compatible = "rockchip,rk-fixed-clock";
44                                 clock-output-names = "rmii_clkin";
45                                 clock-frequency = <0>;
46                                 #clock-cells = <0>;
47                         };
48
49                         usb_480m: usb_480m {
50                                 compatible = "rockchip,rk-fixed-clock";
51                                 clock-output-names = "usb_480m";
52                                 clock-frequency = <480000000>;
53                                 #clock-cells = <0>;
54                         };
55
56                         i2s_clkin: i2s_clkin {
57                                 compatible = "rockchip,rk-fixed-clock";
58                                 clock-output-names = "i2s_clkin";
59                                 clock-frequency = <0>;
60                                 #clock-cells = <0>;
61                         };
62
63                         jtag_tck: jtag_tck {
64                                 compatible = "rockchip,rk-fixed-clock";
65                                 clock-output-names = "jtag_tck";
66                                 clock-frequency = <0>;
67                                 #clock-cells = <0>;
68                         };
69
70                         dummy: dummy {
71                                 compatible = "rockchip,rk-fixed-clock";
72                                 clock-output-names = "dummy";
73                                 clock-frequency = <0>;
74                                 #clock-cells = <0>;
75                         };
76
77                         dummy_cpll: dummy_cpll {
78                                 compatible = "rockchip,rk-fixed-clock";
79                                 clock-output-names = "dummy_cpll";
80                                 clock-frequency = <0>;
81                                 #clock-cells = <0>;
82                         };
83
84                 };
85
86                 fixed_factor_cons {
87                         compatible = "rockchip,rk-fixed-factor-cons";
88 /*
89                         otgphy0_12m: otgphy0_12m {
90                                 compatible = "rockchip,rk-fixed-factor-clock";
91                                 clocks = <&clk_gates1 5>;
92                                 clock-output-names = "otgphy0_12m";
93                                 clock-div = <1>;
94                                 clock-mult = <20>;
95                                 #clock-cells = <0>;
96                         };
97 */
98                         hclk_vcodec: hclk_vcodec {
99                                 compatible = "rockchip,rk-fixed-factor-clock";
100                                 clocks = <&aclk_vcodec_pre>;
101                                 clock-output-names = "hclk_vcodec";
102                                 clock-div = <4>;
103                                 clock-mult = <1>;
104                                 #clock-cells = <0>;
105                         };
106
107                 };
108
109                 clock_regs {
110                         compatible = "rockchip,rk-clock-regs";
111                         #address-cells = <1>;
112                         #size-cells = <1>;
113                         reg = <0x0000 0x01f0>;
114                         ranges;
115
116                         /* PLL control regs */
117                         pll_cons {
118                                 compatible = "rockchip,rk-pll-cons";
119                                 #address-cells = <1>;
120                                 #size-cells = <1>;
121                                 ranges ;
122
123                                 clk_apll: pll-clk@0000 {
124                                         compatible = "rockchip,rk3188-pll-clk";
125                                         reg = <0x0000 0x10>;
126                                         mode-reg = <0x0040 0>;
127                                         status-reg = <0x0004 10>;
128                                         clocks = <&xin24m>;
129                                         clock-output-names = "clk_apll";
130                                         rockchip,pll-type = <CLK_PLL_3036_APLL>;
131                                         #clock-cells = <0>;
132                                 };
133
134                                 clk_dpll: pll-clk@0010 {
135                                         compatible = "rockchip,rk3188-pll-clk";
136                                         reg = <0x0010 0x10>;
137                                         mode-reg = <0x0040 4>;
138                                         status-reg = <0x0014 10>;
139                                         clocks = <&xin24m>;
140                                         clock-output-names = "clk_dpll";
141                                         rockchip,pll-type = <CLK_PLL_3036PLUS_AUTO>;
142                                         #clock-cells = <0>;
143                                 };
144
145                                 clk_gpll: pll-clk@0030 {
146                                         compatible = "rockchip,rk3188-pll-clk";
147                                         reg = <0x0030 0x10>;
148                                         mode-reg = <0x0040 12>;
149                                         status-reg = <0x0034 10>;
150                                         clocks = <&xin24m>;
151                                         clock-output-names = "clk_gpll";
152                                         rockchip,pll-type = <CLK_PLL_3036PLUS_AUTO>;
153                                         #clock-cells = <0>;
154                                         #clock-init-cells = <1>;
155                                 };
156
157                         };
158
159                         /* Select control regs */
160                         clk_sel_cons {
161                                 compatible = "rockchip,rk-sel-cons";
162                                 #address-cells = <1>;
163                                 #size-cells = <1>;
164                                 ranges;
165
166                                 clk_sel_con0: sel-con@0044 {
167                                         compatible = "rockchip,rk3188-selcon";
168                                         reg = <0x0044 0x4>;
169                                         #address-cells = <1>;
170                                         #size-cells = <1>;
171
172                                         clk_core_div: clk_core_div {
173                                                 compatible = "rockchip,rk3188-div-con";
174                                                 rockchip,bits = <0 5>;
175                                                 clocks = <&clk_core>;
176                                                 clock-output-names = "clk_core";
177                                                 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
178                                                 #clock-cells = <0>;
179                                                 rockchip,clkops-idx = <CLKOPS_RATE_CORE>;
180                                                 rockchip,flags = <(CLK_GET_RATE_NOCACHE |
181                                                                         CLK_SET_RATE_NO_REPARENT)>;
182                                         };
183
184                                         /* reg[6:5]: reserved */
185
186                                         clk_core: clk_core_mux {
187                                                 compatible = "rockchip,rk3188-mux-con";
188                                                 rockchip,bits = <7 1>;
189                                                 clocks = <&clk_apll>, <&clk_gates0 6>;
190                                                 clock-output-names = "clk_core";
191                                                 #clock-cells = <0>;
192                                                 #clock-init-cells = <1>;
193                                         };
194
195                                         aclk_cpu_pre_div: aclk_cpu_pre_div {
196                                                 compatible = "rockchip,rk3188-div-con";
197                                                 rockchip,bits = <8 5>;
198                                                 clocks = <&aclk_cpu_pre>;
199                                                 clock-output-names = "aclk_cpu_pre";
200                                                 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
201                                                 #clock-cells = <0>;
202                                                 rockchip,clkops-idx =
203                                                         <CLKOPS_RATE_MUX_DIV>;
204                                                 rockchip,flags = <CLK_SET_RATE_NO_REPARENT>;
205                                         };
206
207                                         /* reg[13]: reserved */
208
209                                         aclk_cpu_pre: aclk_cpu_pre_mux {
210                                                 compatible = "rockchip,rk3188-mux-con";
211                                                 rockchip,bits = <14 2>;
212                                                 clocks = <&clk_apll>, <&clk_dpll>,<&clk_gpll>;
213                                                 clock-output-names = "aclk_cpu_pre";
214                                                 #clock-cells = <0>;
215                                                 #clock-init-cells = <1>;
216                                         };
217
218                                 };
219
220                                 clk_sel_con1: sel-con@0048 {
221                                         compatible = "rockchip,rk3188-selcon";
222                                         reg = <0x0048 0x4>;
223                                         #address-cells = <1>;
224                                         #size-cells = <1>;
225
226                                         pclk_dbg_div:  pclk_dbg_div {
227                                                 compatible = "rockchip,rk3188-div-con";
228                                                 rockchip,bits = <0 4>;
229                                                 clocks = <&clk_core>;
230                                                 clock-output-names = "pclk_dbg";
231                                                 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
232                                                 #clock-cells = <0>;
233                                                 rockchip,clkops-idx = <CLKOPS_RATE_CORE_CHILD>;
234                                         };
235
236                                         aclk_core_pre: aclk_core_pre_div {
237                                                 compatible = "rockchip,rk3188-div-con";
238                                                 rockchip,bits = <4 3>;
239                                                 clocks = <&clk_core>;
240                                                 clock-output-names = "aclk_core_pre";
241                                                 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
242                                                 #clock-cells = <0>;
243                                                 rockchip,clkops-idx = <CLKOPS_RATE_CORE_CHILD>;
244                                         };
245
246                                         /* reg[7]: reserved */
247
248                                         hclk_cpu_pre: hclk_cpu_pre_div {
249                                                 compatible = "rockchip,rk3188-div-con";
250                                                 rockchip,bits = <8 2>;
251                                                 clocks = <&aclk_cpu_pre>;
252                                                 clock-output-names = "hclk_cpu_pre";
253                                                 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
254                                                 #clock-cells = <0>;
255                                                 #clock-init-cells = <1>;
256                                         };
257
258                                         /* reg[11:10]: reserved */
259
260                                         pclk_cpu_pre: pclk_cpu_pre_div {
261                                                 compatible = "rockchip,rk3188-div-con";
262                                                 rockchip,bits = <12 3>;
263                                                 clocks = <&aclk_cpu_pre>;
264                                                 clock-output-names = "pclk_cpu_pre";
265                                                 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
266                                                 #clock-cells = <0>;
267                                                 #clock-init-cells = <1>;
268                                         };
269
270                                         /* reg[15]: reserved */
271                                 };
272
273                                 clk_sel_con2: sel-con@004c {
274                                         compatible = "rockchip,rk3188-selcon";
275                                         reg = <0x004c 0x4>;
276                                         #address-cells = <1>;
277                                         #size-cells = <1>;
278
279                                         /* reg[3:0]: reserved */
280
281                                         clk_timer0: clk_timer0_mux {
282                                                 compatible = "rockchip,rk3188-mux-con";
283                                                 rockchip,bits = <4 1>;
284                                                 clocks = <&xin24m>, <&aclk_peri_pre>;
285                                                 clock-output-names = "clk_timer0";
286                                                 #clock-cells = <0>;
287                                                 #clock-init-cells = <1>;
288                                         };
289
290                                         clk_timer1: clk_timer1_mux {
291                                                 compatible = "rockchip,rk3188-mux-con";
292                                                 rockchip,bits = <5 1>;
293                                                 clocks = <&xin24m>, <&aclk_peri_pre>;
294                                                 clock-output-names = "clk_timer1";
295                                                 #clock-cells = <0>;
296                                                 #clock-init-cells = <1>;
297                                         };
298
299                                         clk_timer2: clk_timer2_mux {
300                                                 compatible = "rockchip,rk3188-mux-con";
301                                                 rockchip,bits = <6 1>;
302                                                 clocks = <&xin24m>, <&aclk_peri_pre>;
303                                                 clock-output-names = "clk_timer2";
304                                                 #clock-cells = <0>;
305                                                 #clock-init-cells = <1>;
306                                         };
307
308                                         clk_timer3: clk_timer3_mux {
309                                                 compatible = "rockchip,rk3188-mux-con";
310                                                 rockchip,bits = <7 1>;
311                                                 clocks = <&xin24m>, <&aclk_peri_pre>;
312                                                 clock-output-names = "clk_timer3";
313                                                 #clock-cells = <0>;
314                                                 #clock-init-cells = <1>;
315                                         };
316
317                                         /* reg[15:8]: reserved */
318                                 };
319
320                                 clk_sel_con3: sel-con@0050 {
321                                         compatible = "rockchip,rk3188-selcon";
322                                         reg = <0x0050 0x4>;
323                                         #address-cells = <1>;
324                                         #size-cells = <1>;
325
326                                         clk_i2s_pll_div: clk_i2s_pll_div {
327                                                 compatible = "rockchip,rk3188-div-con";
328                                                 rockchip,bits = <0 7>;
329                                                 clocks = <&clk_i2s_pll>;
330                                                 clock-output-names = "clk_i2s_pll";
331                                                 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
332                                                 #clock-cells = <0>;
333                                                 rockchip,clkops-idx =
334                                                         <CLKOPS_RATE_MUX_DIV>;
335                                                 rockchip,flags = <CLK_SET_RATE_NO_REPARENT>;
336                                         };
337
338                                         /* reg[7]: reserved */
339
340                                         clk_i2s: clk_i2s_mux {
341                                                 compatible = "rockchip,rk3188-mux-con";
342                                                 rockchip,bits = <8 2>;
343                                                 clocks = <&clk_i2s_pll_div>, <&i2s_frac>, <&i2s_clkin>, <&xin12m>;
344                                                 clock-output-names = "clk_i2s";
345                                                 #clock-cells = <0>;
346                                                 rockchip,clkops-idx =
347                                                         <CLKOPS_RATE_RK3288_I2S>;
348                                                 rockchip,flags = <CLK_SET_RATE_PARENT>;
349                                         };
350
351                                         /* reg[11:10]: reserved */
352
353                                         clk_i2s_out: i2s_outclk_mux {
354                                                 compatible = "rockchip,rk3188-mux-con";
355                                                 rockchip,bits = <12 1>;
356                                                 clocks = <&xin12m>, <&clk_i2s>;
357                                                 clock-output-names = "i2s_clkout";
358                                                 #clock-cells = <0>;
359                                         };
360
361                                         /* reg[13]: reserved */
362
363                                         clk_i2s_pll: i2s_pll_mux {
364                                                 compatible = "rockchip,rk3188-mux-con";
365                                                 rockchip,bits = <14 2>;
366                                                 clocks = <&clk_apll>,<&clk_dpll>, <&clk_gpll>;
367                                                 clock-output-names = "clk_i2s_pll";
368                                                 #clock-cells = <0>;
369                                                 #clock-init-cells = <1>;
370                                         };
371
372                                 };
373
374                                 clk_sel_con5: sel-con@0058 {
375                                         compatible = "rockchip,rk3188-selcon";
376                                         reg = <0x0058 0x4>;
377                                         #address-cells = <1>;
378                                         #size-cells = <1>;
379
380                                         spdif_div: spdif_div {
381                                                 compatible = "rockchip,rk3188-div-con";
382                                                 rockchip,bits = <0 7>;
383                                                 clocks = <&clk_spdif_pll>;
384                                                 clock-output-names = "clk_spdif_pll";
385                                                 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
386                                                 #clock-cells = <0>;
387                                                 rockchip,clkops-idx =
388                                                         <CLKOPS_RATE_MUX_DIV>;
389                                                 rockchip,flags = <CLK_SET_RATE_NO_REPARENT>;
390                                         };
391
392                                         /* reg[7]: reserved */
393
394                                         clk_spdif: spdif_mux {
395                                                 compatible = "rockchip,rk3188-mux-con";
396                                                 rockchip,bits = <8 2>;
397                                                 clocks = <&spdif_div>, <&spdif_frac>, <&xin12m>;
398                                                 clock-output-names = "clk_spdif";
399                                                 #clock-cells = <0>;
400                                                 rockchip,clkops-idx =
401                                                         <CLKOPS_RATE_RK3288_I2S>;
402                                                 rockchip,flags = <CLK_SET_RATE_PARENT>;
403                                         };
404
405                                         clk_spdif_pll: spdif_pll_mux {
406                                                 compatible = "rockchip,rk3188-mux-con";
407                                                 rockchip,bits = <10 2>;
408                                                 clocks = <&clk_apll>,<&clk_dpll>, <&clk_gpll>;
409                                                 clock-output-names = "clk_spdif_pll";
410                                                 #clock-cells = <0>;
411                                                 #clock-init-cells = <1>;
412                                         };
413
414                                         /* reg[15:12]: reserved */
415                                 };
416
417                                 clk_sel_con7: sel-con@0060 {
418                                         compatible = "rockchip,rk3188-selcon";
419                                         reg = <0x0060 0x4>;
420                                         #address-cells = <1>;
421                                         #size-cells = <1>;
422
423                                         i2s_frac: i2s_frac {
424                                                 compatible = "rockchip,rk3188-frac-con";
425                                                 clocks = <&clk_i2s_pll>;
426                                                 clock-output-names = "i2s_frac";
427                                                 /* numerator    denominator */
428                                                 rockchip,bits = <0 32>;
429                                                 rockchip,clkops-idx =
430                                                         <CLKOPS_RATE_FRAC>;
431                                                 #clock-cells = <0>;
432                                         };
433                                 };
434
435                                 clk_sel_con9: sel-con@0068 {
436                                         compatible = "rockchip,rk3188-selcon";
437                                         reg = <0x0068 0x4>;
438                                         #address-cells = <1>;
439                                         #size-cells = <1>;
440
441                                         spdif_frac: spdif_frac {
442                                                 compatible = "rockchip,rk3188-frac-con";
443                                                 clocks = <&spdif_div>;
444                                                 clock-output-names = "spdif_frac";
445                                                 /* numerator    denominator */
446                                                 rockchip,bits = <0 32>;
447                                                 rockchip,clkops-idx =
448                                                         <CLKOPS_RATE_FRAC>;
449                                                 #clock-cells = <0>;
450                                         };
451                                 };
452
453                                 clk_sel_con10: sel-con@006c {
454                                         compatible = "rockchip,rk3188-selcon";
455                                         reg = <0x006c 0x4>;
456                                         #address-cells = <1>;
457                                         #size-cells = <1>;
458
459                                         aclk_peri_pre_div: aclk_peri_pre_div {
460                                                 compatible = "rockchip,rk3188-div-con";
461                                                 rockchip,bits = <0 5>;
462                                                 clocks = <&aclk_peri_pre>;
463                                                 clock-output-names = "aclk_peri_pre";
464                                                 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
465                                                 #clock-cells = <0>;
466                                                 rockchip,clkops-idx =
467                                                         <CLKOPS_RATE_MUX_DIV>;
468                                                 rockchip,flags = <CLK_SET_RATE_NO_REPARENT>;
469                                         };
470
471                                         /* reg[7:5]: reserved */
472
473                                         hclk_peri_pre: hclk_peri_pre_div {
474                                                 compatible = "rockchip,rk3188-div-con";
475                                                 rockchip,bits = <8 2>;
476                                                 clocks = <&aclk_peri_pre>;
477                                                 clock-output-names = "hclk_peri_pre";
478                                                 rockchip,div-type = <CLK_DIVIDER_USER_DEFINE>;
479                                                 rockchip,div-relations =
480                                                                 <0x0 1
481                                                                  0x1 2
482                                                                  0x2 4>;
483                                                 #clock-cells = <0>;
484                                                 #clock-init-cells = <1>;
485                                         };
486
487                                         /* reg[11:10]: reserved */
488
489                                         pclk_peri_pre: pclk_peri_div {
490                                                 compatible = "rockchip,rk3188-div-con";
491                                                 rockchip,bits = <12 2>;
492                                                 clocks = <&aclk_peri_pre>;
493                                                 clock-output-names = "pclk_peri_pre";
494                                                 rockchip,div-type = <CLK_DIVIDER_USER_DEFINE>;
495                                                 rockchip,div-relations =
496                                                                 <0x0 1
497                                                                  0x1 2
498                                                                  0x2 4
499                                                                  0x3 8>;
500                                                 #clock-cells = <0>;
501                                                 #clock-init-cells = <1>;
502                                         };
503
504                                         aclk_peri_pre: aclk_peri_pre_mux {
505                                                 compatible = "rockchip,rk3188-mux-con";
506                                                 rockchip,bits = <14 2>;
507                                                 clocks = <&clk_apll>,<&clk_dpll>, <&clk_gpll>;
508                                                 clock-output-names = "aclk_peri_pre";
509                                                 #clock-cells = <0>;
510                                                 #clock-init-cells = <1>;
511                                         };
512                                 };
513
514                                 clk_sel_con11: sel-con@0070 {
515                                         compatible = "rockchip,rk3188-selcon";
516                                         reg = <0x0070 0x4>;
517                                         #address-cells = <1>;
518                                         #size-cells = <1>;
519
520                                         clk_sdmmc0_div: clk_sdmmc0_div {
521                                                 compatible = "rockchip,rk3188-div-con";
522                                                 rockchip,bits = <0 6>;
523                                                 clocks = <&clk_sdmmc0>;
524                                                 clock-output-names = "clk_sdmmc0";
525                                                 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
526                                                 #clock-cells = <0>;
527                                                 rockchip,clkops-idx =
528                                                         <CLKOPS_RATE_MUX_EVENDIV>;
529                                         };
530
531                                         /* reg[7]: reserved */
532
533                                         clk_sdio_div: clk_sdio_div {
534                                                 compatible = "rockchip,rk3188-div-con";
535                                                 rockchip,bits = <8 7>;
536                                                 clocks = <&clk_sdio>;
537                                                 clock-output-names = "clk_sdio";
538                                                 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
539                                                 #clock-cells = <0>;
540                                                 rockchip,clkops-idx =
541                                                         <CLKOPS_RATE_MUX_EVENDIV>;
542                                         };
543
544                                         /* reg[15]: reserved */
545
546                                 };
547
548                                 clk_sel_con12: sel-con@0074 {
549                                         compatible = "rockchip,rk3188-selcon";
550                                         reg = <0x0074 0x4>;
551                                         #address-cells = <1>;
552                                         #size-cells = <1>;
553
554                                         clk_emmc_div: clk_emmc_div {
555                                                 compatible = "rockchip,rk3188-div-con";
556                                                 rockchip,bits = <0 7>;
557                                                 clocks = <&clk_emmc>;
558                                                 clock-output-names = "clk_emmc";
559                                                 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
560                                                 #clock-cells = <0>;
561                                                 rockchip,clkops-idx =
562                                                         <CLKOPS_RATE_MUX_EVENDIV>;
563                                         };
564
565                                         /* reg[7]: reserved */
566
567                                         clk_sdmmc0: clk_sdmmc0_mux {
568                                                 compatible = "rockchip,rk3188-mux-con";
569                                                 rockchip,bits = <8 2>;
570                                                 clocks = <&clk_apll>,<&clk_dpll>, <&clk_gpll>, <&xin24m>;
571                                                 clock-output-names = "clk_sdmmc0";
572                                                 #clock-cells = <0>;
573                                         };
574
575                                         clk_sdio: clk_sdio_mux {
576                                                 compatible = "rockchip,rk3188-mux-con";
577                                                 rockchip,bits = <10 2>;
578                                                 clocks = <&clk_apll>,<&clk_dpll>, <&clk_gpll>, <&xin24m>;
579                                                 clock-output-names = "clk_sdio";
580                                                 #clock-cells = <0>;
581                                         };
582
583                                         clk_emmc: clk_emmc_mux {
584                                                 compatible = "rockchip,rk3188-mux-con";
585                                                 rockchip,bits = <12 2>;
586                                                 clocks = <&clk_apll>,<&clk_dpll>, <&clk_gpll>, <&xin24m>;
587                                                 clock-output-names = "clk_emmc";
588                                                 #clock-cells = <0>;
589                                         };
590
591                                         /* reg[15:14]: reserved */
592                                 };
593
594                                 clk_sel_con13: sel-con@0078 {
595                                         compatible = "rockchip,rk3188-selcon";
596                                         reg = <0x0078 0x4>;
597                                         #address-cells = <1>;
598                                         #size-cells = <1>;
599
600                                         clk_uart0_div: clk_uart0_div {
601                                                 compatible = "rockchip,rk3188-div-con";
602                                                 rockchip,bits = <0 7>;
603                                                 clocks = <&clk_uart_pll>;
604                                                 clock-output-names = "clk_uart0_div";
605                                                 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
606                                                 #clock-cells = <0>;
607                                         };
608
609                                         /* reg[7]: reserved */
610
611                                         clk_uart0: clk_uart0_mux {
612                                                 compatible = "rockchip,rk3188-mux-con";
613                                                 rockchip,bits = <8 2>;
614                                                 clocks = <&clk_uart0_div>, <&uart0_frac>, <&xin24m>;
615                                                 clock-output-names = "clk_uart0";
616                                                 #clock-cells = <0>;
617                                                 rockchip,clkops-idx =
618                                                         <CLKOPS_RATE_RK3288_I2S>;
619                                                 rockchip,flags = <CLK_SET_RATE_PARENT>;
620                                         };
621
622                                         clk_uart_pll: clk_uart_pll_mux {
623                                                 compatible = "rockchip,rk3188-mux-con";
624                                                 rockchip,bits = <10 2>;
625                                                 clocks = <&clk_apll>,<&clk_dpll>, <&clk_gpll>, <&usb_480m>;
626                                                 clock-output-names = "clk_uart_pll";
627                                                 #clock-cells = <0>;
628                                                 #clock-init-cells = <1>;
629                                         };
630
631                                         /* reg[15:12]: reserved */
632
633                                 };
634
635                                 clk_sel_con14: sel-con@007c {
636                                         compatible = "rockchip,rk3188-selcon";
637                                         reg = <0x007c 0x4>;
638                                         #address-cells = <1>;
639                                         #size-cells = <1>;
640
641                                         clk_uart1_div: clk_uart1_div {
642                                                 compatible = "rockchip,rk3188-div-con";
643                                                 rockchip,bits = <0 7>;
644                                                 clocks = <&clk_uart_pll>;
645                                                 clock-output-names = "clk_uart1_div";
646                                                 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
647                                                 #clock-cells = <0>;
648                                         };
649
650                                         /* reg[7]: reserved */
651
652                                         clk_uart1: clk_uart1_mux {
653                                                 compatible = "rockchip,rk3188-mux-con";
654                                                 rockchip,bits = <8 2>;
655                                                 clocks = <&clk_uart1_div>, <&uart1_frac>, <&xin24m>;
656                                                 clock-output-names = "clk_uart1";
657                                                 #clock-cells = <0>;
658                                                 rockchip,clkops-idx =
659                                                         <CLKOPS_RATE_RK3288_I2S>;
660                                                 rockchip,flags = <CLK_SET_RATE_PARENT>;
661                                         };
662
663                                         /* reg[15:10]: reserved */
664                                 };
665
666                                 clk_sel_con15: sel-con@0080 {
667                                         compatible = "rockchip,rk3188-selcon";
668                                         reg = <0x0080 0x4>;
669                                         #address-cells = <1>;
670                                         #size-cells = <1>;
671
672                                         clk_uart2_div: clk_uart2_div {
673                                                 compatible = "rockchip,rk3188-div-con";
674                                                 rockchip,bits = <0 7>;
675                                                 clocks = <&clk_uart_pll>;
676                                                 clock-output-names = "clk_uart2_div";
677                                                 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
678                                                 #clock-cells = <0>;
679                                         };
680
681                                         /* reg[7]: reserved */
682
683                                         clk_uart2: clk_uart2_mux {
684                                                 compatible = "rockchip,rk3188-mux-con";
685                                                 rockchip,bits = <8 2>;
686                                                 clocks = <&clk_uart2_div>, <&uart2_frac>, <&xin24m>;
687                                                 clock-output-names = "clk_uart2";
688                                                 #clock-cells = <0>;
689                                                 rockchip,clkops-idx =
690                                                         <CLKOPS_RATE_RK3288_I2S>;
691                                                 rockchip,flags = <CLK_SET_RATE_PARENT>;
692                                         };
693
694                                         /* reg[15:10]: reserved */
695                                 };
696
697                                 clk_sel_con16: sel-con@0084 {
698                                         compatible = "rockchip,rk3188-selcon";
699                                         reg = <0x0084 0x4>;
700                                         #address-cells = <1>;
701                                         #size-cells = <1>;
702
703                                         clk_sfc: clk_sfc_mux {
704                                                 compatible = "rockchip,rk3188-mux-con";
705                                                 rockchip,bits = <0 2>;
706                                                 clocks = <&clk_apll>, <&clk_dpll>, <&clk_gpll>, <&xin24m>;
707                                                 clock-output-names = "clk_sfc";
708                                                 #clock-cells = <0>;
709                                         };
710
711                                         clk_sfc_div: clk_sfc_div {
712                                                 compatible = "rockchip,rk3188-div-con";
713                                                 rockchip,bits = <2 5>;
714                                                 clocks = <&clk_sfc>;
715                                                 clock-output-names = "clk_sfc";
716                                                 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
717                                                 #clock-cells = <0>;
718                                                 rockchip,clkops-idx =
719                                                         <CLKOPS_RATE_MUX_DIV>;
720                                         };
721
722                                         /* reg[7]: reserved */
723
724                                         clk_nandc: clk_nandc_mux {
725                                                 compatible = "rockchip,rk3188-mux-con";
726                                                 rockchip,bits = <8 2>;
727                                                 clocks = <&clk_apll>, <&clk_dpll>, <&clk_gpll>;
728                                                 clock-output-names = "clk_nandc";
729                                                 #clock-cells = <0>;
730                                         };
731
732                                         clk_nandc_div: clk_nandc_div {
733                                                 compatible = "rockchip,rk3188-div-con";
734                                                 rockchip,bits = <10 5>;
735                                                 clocks = <&clk_nandc>;
736                                                 clock-output-names = "clk_nandc";
737                                                 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
738                                                 #clock-cells = <0>;
739                                                 rockchip,clkops-idx =
740                                                         <CLKOPS_RATE_MUX_DIV>;
741                                         };
742
743                                         /* reg[31:15]: reserved */
744                                 };
745
746                                 clk_sel_con17: sel-con@0088 {
747                                         compatible = "rockchip,rk3188-selcon";
748                                         reg = <0x0088 0x4>;
749                                         #address-cells = <1>;
750                                         #size-cells = <1>;
751
752                                         uart0_frac: uart0_frac {
753                                                 compatible = "rockchip,rk3188-frac-con";
754                                                 clocks = <&clk_uart0_div>;
755                                                 clock-output-names = "uart0_frac";
756                                                 /* numerator    denominator */
757                                                 rockchip,bits = <0 32>;
758                                                 rockchip,clkops-idx =
759                                                         <CLKOPS_RATE_FRAC>;
760                                                 #clock-cells = <0>;
761                                         };
762                                 };
763
764                                 clk_sel_con18: sel-con@008c {
765                                         compatible = "rockchip,rk3188-selcon";
766                                         reg = <0x008c 0x4>;
767                                         #address-cells = <1>;
768                                         #size-cells = <1>;
769
770                                         uart1_frac: uart1_frac {
771                                                 compatible = "rockchip,rk3188-frac-con";
772                                                 clocks = <&clk_uart1_div>;
773                                                 clock-output-names = "uart1_frac";
774                                                 /* numerator    denominator */
775                                                 rockchip,bits = <0 32>;
776                                                 rockchip,clkops-idx =
777                                                         <CLKOPS_RATE_FRAC>;
778                                                 #clock-cells = <0>;
779                                         };
780                                 };
781
782                                 clk_sel_con19: sel-con@0090 {
783                                         compatible = "rockchip,rk3188-selcon";
784                                         reg = <0x0090 0x4>;
785                                         #address-cells = <1>;
786                                         #size-cells = <1>;
787
788                                         uart2_frac: uart2_frac {
789                                                 compatible = "rockchip,rk3188-frac-con";
790                                                 clocks = <&clk_uart2_div>;
791                                                 clock-output-names = "uart2_frac";
792                                                 /* numerator    denominator */
793                                                 rockchip,bits = <0 32>;
794                                                 rockchip,clkops-idx =
795                                                         <CLKOPS_RATE_FRAC>;
796                                                 #clock-cells = <0>;
797                                         };
798
799                                 };
800
801                                 clk_sel_con20: sel-con@0094 {
802                                         compatible = "rockchip,rk3188-selcon";
803                                         reg = <0x0094 0x4>;
804                                         #address-cells = <1>;
805                                         #size-cells = <1>;
806
807                                         clk_hevc_core: clk_hevc_core_mux {
808                                                 compatible = "rockchip,rk3188-mux-con";
809                                                 rockchip,bits = <0 2>;
810                                                 clocks = <&clk_apll>, <&clk_dpll>, <&clk_gpll>;
811                                                 clock-output-names = "clk_hevc_core";
812                                                 #clock-cells = <0>;
813                                                 #clock-init-cells = <1>;
814                                         };
815
816                                         clk_hevc_core_div: clk_hevc_core_div {
817                                                 compatible = "rockchip,rk3188-div-con";
818                                                 rockchip,bits = <2 5>;
819                                                 clocks = <&clk_hevc_core>;
820                                                 clock-output-names = "clk_hevc_core";
821                                                 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
822                                                 #clock-cells = <0>;
823                                                 rockchip,clkops-idx =
824                                                         <CLKOPS_RATE_MUX_DIV>;
825                                                 rockchip,flags = <CLK_SET_RATE_NO_REPARENT>;
826                                         };
827
828                                         /* reg[31:7]: reserved */
829
830                                 };
831
832                                 clk_sel_con21: sel-con@0098 {
833                                         compatible = "rockchip,rk3188-selcon";
834                                         reg = <0x0098 0x4>;
835                                         #address-cells = <1>;
836                                         #size-cells = <1>;
837
838                                         clk_mac_pll: clk_mac_pll_mux {
839                                                 compatible = "rockchip,rk3188-mux-con";
840                                                 rockchip,bits = <0 2>;
841                                                 clocks = <&clk_apll>, <&clk_dpll>, <&clk_gpll>;
842                                                 clock-output-names = "clk_mac_pll";
843                                                 #clock-cells = <0>;
844                                                 #clock-init-cells = <1>;
845                                         };
846
847                                         /* reg[2]: reserved */
848
849                                         clk_mac_ref: clk_mac_ref_mux {
850                                                 compatible = "rockchip,rk3188-mux-con";
851                                                 rockchip,bits = <3 1>;
852                                                 clocks = <&clk_mac_pll_div>, <&rmii_clkin>;
853                                                 clock-output-names = "clk_mac_ref";
854                                                 #clock-cells = <0>;
855                                                 rockchip,clkops-idx =
856                                                         <CLKOPS_RATE_MAC_REF>;
857                                                 rockchip,flags = <CLK_SET_RATE_PARENT>;
858                                                 #clock-init-cells = <1>;
859                                         };
860
861                                         clk_mac_pll_div: clk_mac_pll_div {
862                                                 compatible = "rockchip,rk3188-div-con";
863                                                 rockchip,bits = <4 5>;
864                                                 clocks = <&clk_mac_pll>;
865                                                 clock-output-names = "clk_mac_pll";
866                                                 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
867                                                 #clock-cells = <0>;
868                                                 rockchip,clkops-idx =
869                                                         <CLKOPS_RATE_MUX_DIV>;
870                                         };
871
872                                         clk_mac_ref_div: clk_mac_ref_div {
873                                                 compatible = "rockchip,rk3188-div-con";
874                                                 rockchip,bits = <9 5>;
875                                                 clocks = <&clk_mac_ref>;
876                                                 clock-output-names = "clk_mac";
877                                                 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
878                                                 #clock-cells = <0>;
879                                                 #clock-init-cells = <1>;
880                                         };
881
882                                         /* reg[15:14]: reserved */
883                                 };
884
885                                 clk_sel_con25: sel-con@00a8 {
886                                         compatible = "rockchip,rk3188-selcon";
887                                         reg = <0x00a8 0x4>;
888                                         #address-cells = <1>;
889                                         #size-cells = <1>;
890
891                                         clk_spi0_div: clk_spi0_div {
892                                                 compatible = "rockchip,rk3188-div-con";
893                                                 rockchip,bits = <0 7>;
894                                                 clocks = <&clk_spi0>;
895                                                 clock-output-names = "clk_spi0";
896                                                 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
897                                                 #clock-cells = <0>;
898                                                 rockchip,clkops-idx =
899                                                         <CLKOPS_RATE_MUX_DIV>;
900                                         };
901
902                                         /* reg[7]: reserved */
903
904                                         clk_spi0: clk_spi0_mux {
905                                                 compatible = "rockchip,rk3188-mux-con";
906                                                 rockchip,bits = <8 2>;
907                                                 clocks = <&clk_apll>, <&clk_dpll>,<&clk_gpll>;
908                                                 clock-output-names = "clk_spi0";
909                                                 #clock-cells = <0>;
910                                         };
911
912                                         /* reg[15:10]: reserved */
913
914                                 };
915
916                                 clk_sel_con26: sel-con@00ac {
917                                         compatible = "rockchip,rk3188-selcon";
918                                         reg = <0x00ac 0x4>;
919                                         #address-cells = <1>;
920                                         #size-cells = <1>;
921
922                                         ddr_div: ddr_div {
923                                                 compatible = "rockchip,rk3188-div-con";
924                                                 rockchip,bits = <0 2>;
925                                                 clocks = <&clk_ddr>;
926                                                 clock-output-names = "clk_ddr";
927                                                 rockchip,div-type = <CLK_DIVIDER_USER_DEFINE>;
928                                                 rockchip,div-relations =
929                                                                 <0x0 1
930                                                                  0x1 2
931                                                                  0x3 4>;
932                                                 #clock-cells = <0>;
933                                                 rockchip,flags = <(CLK_GET_RATE_NOCACHE |
934                                                                         CLK_SET_RATE_NO_REPARENT)>;
935                                                 rockchip,clkops-idx = <CLKOPS_RATE_DDR>;
936                                         };
937
938                                         /* reg[7:1]: reserved */
939
940                                         clk_ddr: ddr_clk_pll_mux {
941                                                 compatible = "rockchip,rk3188-mux-con";
942                                                 rockchip,bits = <8 1>;
943                                                 clocks = <&clk_dpll>, <&dummy>;
944                                                 clock-output-names = "clk_ddr";
945                                                 #clock-cells = <0>;
946                                         };
947
948                                         /* reg[15:9]: reserved */
949                                 };
950
951                                 clk_sel_con28: sel-con@00b4 {
952                                         compatible = "rockchip,rk3188-selcon";
953                                         reg = <0x00b4 0x4>;
954                                         #address-cells = <1>;
955                                         #size-cells = <1>;
956
957                                         dclk_lcdc1: dclk_lcdc1_mux {
958                                                 compatible = "rockchip,rk3188-mux-con";
959                                                 rockchip,bits = <0 2>;
960                                                 clocks = <&clk_apll>, <&clk_dpll>, <&clk_gpll>;
961                                                 clock-output-names = "dclk_lcdc1";
962                                                 #clock-cells = <0>;
963                                                 #clock-init-cells = <1>;
964                                         };
965
966                                         /* reg[7:2]: reserved */
967
968                                         dclk_lcdc1_div: dclk_lcdc1_div {
969                                                 compatible = "rockchip,rk3188-div-con";
970                                                 rockchip,bits = <8 8>;
971                                                 clocks = <&dclk_lcdc1>;
972                                                 clock-output-names = "dclk_lcdc1";
973                                                 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
974                                                 #clock-cells = <0>;
975                                                 rockchip,clkops-idx =
976                                                         <CLKOPS_RATE_MUX_DIV>;
977                                                 rockchip,flags = <CLK_SET_RATE_NO_REPARENT>;
978                                         };
979                                 };
980
981                                 clk_sel_con30: sel-con@00bc {
982                                         compatible = "rockchip,rk3188-selcon";
983                                         reg = <0x00bc 0x4>;
984                                         #address-cells = <1>;
985                                         #size-cells = <1>;
986
987                                         clk_testout_div: clk_testout_div {
988                                                 compatible = "rockchip,rk3188-div-con";
989                                                 rockchip,bits = <0 5>;
990                                                 clocks = <&dummy>;
991                                                 clock-output-names = "clk_testout";
992                                                 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
993                                                 #clock-cells = <0>;
994                                                 #clock-init-cells = <1>;
995                                         };
996
997                                         /* reg[7:5]: reserved */
998
999                                         hclk_vio_pre_div: hclk_vio_pre_div {
1000                                                 compatible = "rockchip,rk3188-div-con";
1001                                                 rockchip,bits = <8 5>;
1002                                                 clocks = <&hclk_vio_pre>;
1003                                                 clock-output-names = "hclk_vio_pre";
1004                                                 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
1005                                                 #clock-cells = <0>;
1006                                                 rockchip,clkops-idx =
1007                                                         <CLKOPS_RATE_MUX_DIV>;
1008                                                 rockchip,flags = <CLK_SET_RATE_NO_REPARENT>;
1009                                         };
1010
1011                                         /* reg[13]: reserved */
1012
1013                                         hclk_vio_pre: hclk_vio_pre_mux {
1014                                                 compatible = "rockchip,rk3188-mux-con";
1015                                                 rockchip,bits = <14 2>;
1016                                                 clocks = <&clk_apll>, <&clk_dpll>, <&clk_gpll>;
1017                                                 clock-output-names = "hclk_vio_pre";
1018                                                 #clock-cells = <0>;
1019                                                 #clock-init-cells = <1>;
1020                                         };
1021
1022                                 };
1023
1024                                 clk_sel_con31: sel-con@00c0 {
1025                                         compatible = "rockchip,rk3188-selcon";
1026                                         reg = <0x00c0 0x4>;
1027                                         #address-cells = <1>;
1028                                         #size-cells = <1>;
1029
1030                                         clk_hdmi: clk_hdmi_mux {
1031                                                 compatible = "rockchip,rk3188-mux-con";
1032                                                 rockchip,bits = <0 1>;
1033                                                 clocks = <&dclk_lcdc1_div>, <&dummy>;
1034                                                 clock-output-names = "clk_hdmi";
1035                                                 #clock-cells = <0>;
1036                                         };
1037
1038                                         /* reg[7:1]: reserved */
1039
1040                                         aclk_vio_pre_div: aclk_vio_pre_div {
1041                                                 compatible = "rockchip,rk3188-div-con";
1042                                                 rockchip,bits = <8 5>;
1043                                                 clocks = <&aclk_vio_pre>;
1044                                                 clock-output-names = "aclk_vio_pre";
1045                                                 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
1046                                                 #clock-cells = <0>;
1047                                                 rockchip,clkops-idx =
1048                                                         <CLKOPS_RATE_MUX_DIV>;
1049                                                 rockchip,flags = <CLK_SET_RATE_NO_REPARENT>;
1050                                         };
1051
1052                                         /* reg[13]: reserved */
1053
1054                                         aclk_vio_pre: aclk_vio_pre_mux {
1055                                                 compatible = "rockchip,rk3188-mux-con";
1056                                                 rockchip,bits = <14 2>;
1057                                                 clocks = <&clk_apll>, <&clk_dpll>, <&clk_gpll>;
1058                                                 clock-output-names = "aclk_vio_pre";
1059                                                 #clock-cells = <0>;
1060                                                 #clock-init-cells = <1>;
1061                                         };
1062
1063                                 };
1064
1065                                 clk_sel_con32: sel-con@00c4 {
1066                                         compatible = "rockchip,rk3188-selcon";
1067                                         reg = <0x00c4 0x4>;
1068                                         #address-cells = <1>;
1069                                         #size-cells = <1>;
1070
1071                                         /* reg[7:0]: reserved */
1072
1073                                         aclk_vcodec_pre_div: aclk_vcodec_pre_div {
1074                                                 compatible = "rockchip,rk3188-div-con";
1075                                                 rockchip,bits = <8 5>;
1076                                                 clocks = <&aclk_vcodec_pre>;
1077                                                 clock-output-names = "aclk_vcodec_pre";
1078                                                 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
1079                                                 #clock-cells = <0>;
1080                                                 rockchip,clkops-idx =
1081                                                         <CLKOPS_RATE_MUX_DIV>;
1082                                                 rockchip,flags = <CLK_SET_RATE_NO_REPARENT>;
1083                                         };
1084
1085                                         /* reg[13]: reserved */
1086
1087                                         aclk_vcodec_pre: aclk_vcodec_pre_mux {
1088                                                 compatible = "rockchip,rk3188-mux-con";
1089                                                 rockchip,bits = <14 2>;
1090                                                 clocks = <&clk_apll>, <&clk_dpll>, <&clk_gpll>;
1091                                                 clock-output-names = "aclk_vcodec_pre";
1092                                                 #clock-cells = <0>;
1093                                                 #clock-init-cells = <1>;
1094                                         };
1095                                 };
1096
1097                                 clk_sel_con34: sel-con@00cc {
1098                                         compatible = "rockchip,rk3188-selcon";
1099                                         reg = <0x00cc 0x4>;
1100                                         #address-cells = <1>;
1101                                         #size-cells = <1>;
1102
1103                                         clk_gpu_pre_div: clk_gpu_pre_div {
1104                                                 compatible = "rockchip,rk3188-div-con";
1105                                                 rockchip,bits = <0 5>;
1106                                                 clocks = <&clk_gpu_pre>;
1107                                                 clock-output-names = "clk_gpu_pre";
1108                                                 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
1109                                                 #clock-cells = <0>;
1110                                                 rockchip,clkops-idx =
1111                                                         <CLKOPS_RATE_MUX_DIV>;
1112                                                 rockchip,flags = <CLK_SET_RATE_PARENT_IN_ORDER>;
1113                                         };
1114
1115                                         /* reg[7:5]: reserved */
1116
1117                                         clk_gpu_pre: clk_gpu_pre_mux {
1118                                                 compatible = "rockchip,rk3188-mux-con";
1119                                                 rockchip,bits = <8 2>;
1120                                                 clocks = <&dummy>, <&dummy>, <&clk_gpll>;
1121                                                 clock-output-names = "clk_gpu_pre";
1122                                                 #clock-cells = <0>;
1123                                                 #clock-init-cells = <1>;
1124                                         };
1125
1126                                         /* reg[15:10]: reserved */
1127
1128                                 };
1129
1130                         };
1131
1132
1133                         /* Gate control regs */
1134                         clk_gate_cons {
1135                                 compatible = "rockchip,rk-gate-cons";
1136                                 #address-cells = <1>;
1137                                 #size-cells = <1>;
1138                                 ranges ;
1139
1140                                 clk_gates0: gate-clk@00d0{
1141                                         compatible = "rockchip,rk3188-gate-clk";
1142                                         reg = <0x00d0 0x4>;
1143                                         clocks =
1144                                                 <&clk_core>,            <&clk_gpll>,
1145                                                 <&clk_dpll>,    <&aclk_cpu_pre>,
1146
1147                                                 <&aclk_cpu_pre>,        <&aclk_cpu_pre>,
1148                                                 <&clk_gpll>,            <&clk_core>,
1149
1150                                                 <&clk_gpll>,    <&clk_i2s_pll>,
1151                                                 <&i2s_frac>,    <&hclk_vio_pre>,
1152
1153                                                 <&dummy>,               <&clk_i2s_out>,
1154                                                 <&clk_i2s>,             <&dummy>;
1155
1156                                         clock-output-names =
1157                                                 "pclk_dbg",                     "reserved",      /* do not use bit1 = "cpu_gpll" */
1158                                                 "reserved",             "aclk_cpu_pre",
1159
1160                                                 "hclk_cpu_pre",         "pclk_cpu_pre",
1161                                                 "reserved",             "aclk_core_pre",
1162
1163                                                 "reserved",             "clk_i2s_pll",
1164                                                 "i2s_frac",             "hclk_vio_pre",
1165
1166                                                 "clk_cryto",            "clk_i2s_out",
1167                                                 "clk_i2s",              "clk_testout";
1168                                         rockchip,suspend-clkgating-setting=<0x0 0x0>;
1169
1170                                         #clock-cells = <1>;
1171                                 };
1172
1173                                 clk_gates1: gate-clk@00d4{
1174                                         compatible = "rockchip,rk3188-gate-clk";
1175                                         reg = <0x00d4 0x4>;
1176                                         clocks =
1177                                                 <&clk_timer0>,          <&clk_timer1>,
1178                                                 <&dummy>,               <&jtag_tck>,
1179
1180                                                 <&aclk_vio_pre>,                <&xin12m>,
1181                                                 <&dummy>,               <&dummy>,
1182
1183                                                 <&clk_uart0_div>,               <&uart0_frac>,
1184                                                 <&clk_uart1_div>,               <&uart1_frac>,
1185
1186                                                 <&clk_uart2_div>,               <&uart2_frac>,
1187                                                 <&dummy>,               <&dummy>;
1188
1189                                         clock-output-names =
1190                                                 "clk_timer0",           "clk_timer1",
1191                                                 "reserved",             "clk_jatg",
1192
1193                                                 "aclk_vio_pre",         "clk_otgphy0",
1194                                                 "clk_otgphy1",                  "reserved",
1195
1196                                                 "clk_uart0_div",        "uart0_frac",
1197                                                 "clk_uart1_div",        "uart1_frac",
1198
1199                                                 "clk_uart2_div",        "uart2_frac",
1200                                                 "reserved",     "reserved";
1201
1202                                          rockchip,suspend-clkgating-setting=<0x0 0x0>;
1203                                         #clock-cells = <1>;
1204                                 };
1205
1206                                 clk_gates2: gate-clk@00d8 {
1207                                         compatible = "rockchip,rk3188-gate-clk";
1208                                         reg = <0x00d8 0x4>;
1209                                         clocks =
1210                                                 <&aclk_peri_pre>,               <&aclk_peri_pre>,
1211                                                 <&aclk_peri_pre>,               <&aclk_peri_pre>,
1212
1213                                                 <&clk_timer2>,          <&clk_timer3>,
1214                                                 <&clk_mac_ref>,         <&dummy>,
1215
1216                                                 <&dummy>,               <&clk_spi0>,
1217                                                 <&clk_spdif_pll>,               <&clk_sdmmc0>,
1218
1219                                                 <&spdif_frac>,          <&clk_sdio>,
1220                                                 <&clk_emmc>,            <&dummy>;
1221
1222                                         clock-output-names =
1223                                                 "aclk_peri",            "aclk_peri_pre",
1224                                                 "hclk_peri_pre",                "pclk_peri_pre",
1225
1226                                                 "clk_timer2",           "clk_timer3",
1227                                                 "clk_mac",              "reserved",
1228
1229                                                 "reserved",             "clk_spi0",
1230                                                 "clk_spdif_pll",                "clk_sdmmc0",
1231
1232                                                 "spdif_frac",           "clk_sdio",
1233                                                 "clk_emmc",             "reserved";
1234                                             rockchip,suspend-clkgating-setting=<0x0 0x0>;
1235
1236                                         #clock-cells = <1>;
1237                                 };
1238
1239                                 clk_gates3: gate-clk@00dc {
1240                                         compatible = "rockchip,rk3188-gate-clk";
1241                                         reg = <0x00dc 0x4>;
1242                                         clocks =
1243                                                 <&dummy>,               <&dummy>,
1244                                                 <&dclk_lcdc1>,          <&dummy>,
1245
1246                                                 <&dummy>,                       <&dummy>,
1247                                                 <&dummy>,               <&dummy>,
1248
1249                                                 <&pclk_cpu_pre>,                <&dummy>,
1250                                                 <&dummy>,               <&aclk_vcodec_pre>,
1251
1252                                                 <&aclk_vcodec_pre>,             <&clk_gpu_pre>,
1253                                                 <&hclk_peri_pre>,               <&dummy>;
1254
1255                                         clock-output-names =
1256                                                 "reserved",             "reserved",
1257                                                 "dclk_lcdc1",           "reserved",
1258
1259                                                 "reserved",             "reserved",
1260                                                 "reserved",             "reserved",
1261
1262                                                 "g_pclk_hdmi",          "reserved",
1263                                                 "reserved",             "aclk_vcodec_pre",
1264
1265                                                 "hclk_vcodec",          "clk_gpu_pre",
1266                                                 "g_hclk_sfc",           "reserved";
1267                                        rockchip,suspend-clkgating-setting=<0x0000 0x0000>;
1268
1269                                         #clock-cells = <1>;
1270                                 };
1271
1272                                 clk_gates4: gate-clk@00e0{
1273                                         compatible = "rockchip,rk3188-gate-clk";
1274                                         reg = <0x00e0 0x4>;
1275                                         clocks =
1276                                                 <&hclk_peri_pre>,               <&pclk_peri_pre>,
1277                                                 <&aclk_peri_pre>,               <&aclk_peri_pre>,
1278
1279                                                 <&dummy>,               <&dummy>,
1280                                                 <&dummy>,               <&dummy>,
1281
1282                                                 <&dummy>,               <&dummy>,
1283                                                 <&aclk_cpu_pre>,                <&dummy>,
1284
1285                                                 <&aclk_cpu_pre>,                <&dummy>,
1286                                                 <&dummy>,               <&dummy>;
1287
1288                                         clock-output-names =
1289                                                 "g_hp_axi_matrix",              "g_pp_axi_matrix",
1290                                                 "g_aclk_cpu_peri",              "g_ap_axi_matrix",
1291
1292                                                 "reserved",             "reserved",
1293                                                 "reserved",             "reserved",
1294
1295                                                 "reserved",             "reserved",
1296                                                 "g_aclk_strc_sys",              "reserved",
1297
1298                                                 /* Not use these ddr gates */
1299                                                 "g_aclk_intmem",                "reserved",
1300                                                 "reserved",             "reserved";
1301
1302                                         rockchip,suspend-clkgating-setting = <0x0000 0x0000>;
1303                                         #clock-cells = <1>;
1304                                 };
1305
1306                                 clk_gates5: gate-clk@00e4 {
1307                                         compatible = "rockchip,rk3188-gate-clk";
1308                                         reg = <0x00e4 0x4>;
1309                                         clocks =
1310                                                 <&dummy>,               <&aclk_peri_pre>,
1311                                                 <&pclk_peri_pre>,               <&dummy>,
1312
1313                                                 <&pclk_cpu_pre>,                <&dummy>,
1314                                                 <&hclk_cpu_pre>,                <&pclk_cpu_pre>,
1315
1316                                                 <&dummy>,               <&hclk_peri_pre>,
1317                                                 <&hclk_peri_pre>,               <&hclk_peri_pre>,
1318
1319                                                 <&dummy>,               <&hclk_peri_pre>,
1320                                                 <&pclk_cpu_pre>,                <&dummy>;
1321
1322                                         clock-output-names =
1323                                                 "reserved",             "g_aclk_dmac2",
1324                                                 "g_pclk_efuse", "reserved",
1325
1326                                                 "g_pclk_grf",           "reserved",
1327                                                 "g_hclk_rom",           "g_pclk_ddrupctl",
1328
1329                                                 "reserved",             "g_hclk_nandc",
1330                                                 "g_hclk_sdmmc0",                "g_hclk_sdio",
1331
1332                                                 "reserved",             "g_hclk_otg0",
1333                                                 "g_pclk_acodec",                "reserved";
1334
1335                                         rockchip,suspend-clkgating-setting = <0x0000 0x0000>;
1336
1337                                         #clock-cells = <1>;
1338                                 };
1339
1340                                 clk_gates6: gate-clk@00e8 {
1341                                         compatible = "rockchip,rk3188-gate-clk";
1342                                         reg = <0x00e8 0x4>;
1343                                         clocks =
1344                                                 <&dummy>,               <&dummy>,
1345                                                 <&dummy>,               <&dummy>,
1346
1347                                                 <&dummy>,               <&dummy>,
1348                                                 <&dummy>,               <&dummy>,
1349
1350                                                 <&dummy>,               <&dummy>,
1351                                                 <&dummy>,                       <&dummy>,
1352
1353                                                 <&hclk_vio_pre>,                <&aclk_vio_pre>,
1354                                                 <&dummy>,               <&dummy>;
1355
1356                                         clock-output-names =
1357                                                 "reserved",             "reserved",
1358                                                 "reserved",             "reserved",
1359
1360                                                 "reserved",             "reserved",
1361                                                 "reserved",             "reserved",
1362
1363                                                 "reserved",             "reserved",
1364                                                 "reserved",             "reserved",
1365
1366                                                 "g_hclk_vio_bus",               "g_aclk_vio",
1367                                                 "reserved",             "reserved";
1368
1369                                         rockchip,suspend-clkgating-setting = <0x0000 0x0000>;
1370
1371                                         #clock-cells = <1>;
1372                                 };
1373
1374                                 clk_gates7: gate-clk@00ec {
1375                                         compatible = "rockchip,rk3188-gate-clk";
1376                                         reg = <0x00ec 0x4>;
1377                                         clocks =
1378                                                 <&hclk_peri_pre>,               <&dummy>,
1379                                                 <&hclk_peri_pre>,               <&hclk_peri_pre>,
1380
1381                                                 <&dummy>,               <&dummy>,
1382                                                 <&dummy>,               <&pclk_peri_pre>,
1383
1384                                                 <&dummy>,               <&dummy>,
1385                                                 <&pclk_peri_pre>,               <&dummy>,
1386
1387                                                 <&pclk_peri_pre>,               <&dummy>,
1388                                                 <&dummy>,               <&pclk_peri_pre>;
1389
1390                                         clock-output-names =
1391                                                 "g_hclk_emmc",          "reserved",
1392                                                 "g_hclk_i2s",           "g_hclk_otg1",
1393
1394                                                 "reserved",             "reserved",
1395                                                 "reserved",             "g_pclk_timer0",
1396
1397                                                 "reserved",             "reserved",
1398                                                 "g_pclk_pwm",           "reserved",
1399
1400                                                 "g_pclk_spi",           "reserved",
1401                                                 "reserved",             "g_pclk_wdt";
1402
1403                                         rockchip,suspend-clkgating-setting = <0x0000 0x0000>;
1404
1405                                         #clock-cells = <1>;
1406                                 };
1407
1408                                 clk_gates8: gate-clk@00f0 {
1409                                         compatible = "rockchip,rk3188-gate-clk";
1410                                         reg = <0x00f0 0x4>;
1411                                         clocks =
1412                                                 <&pclk_peri_pre>,               <&pclk_peri_pre>,
1413                                                 <&pclk_peri_pre>,               <&dummy>,
1414
1415                                                 <&pclk_peri_pre>,               <&pclk_peri_pre>,
1416                                                 <&pclk_peri_pre>,               <&dummy>,
1417
1418                                                 <&dummy>,               <&pclk_peri_pre>,
1419                                                 <&pclk_peri_pre>,               <&pclk_peri_pre>,
1420
1421                                                 <&dummy>,               <&dummy>,
1422                                                 <&dummy>,               <&dummy>;
1423
1424                                         clock-output-names =
1425                                                 "g_pclk_uart0",         "g_pclk_uart1",
1426                                                 "g_pclk_uart2",         "reserved",
1427
1428                                                 "g_pclk_i2c0",          "g_pclk_i2c1",
1429                                                 "g_pclk_i2c2",          "reserved",
1430
1431                                                 "reserved",             "g_pclk_gpio0",
1432                                                 "g_pclk_gpio1",         "g_pclk_gpio2",
1433
1434                                                 "reserved",             "reserved",
1435                                                 "reserved",             "reserved";
1436
1437                                         rockchip,suspend-clkgating-setting=<0x0000 0x0000>;
1438                                         #clock-cells = <1>;
1439                                 };
1440
1441                                 clk_gates9: gate-clk@00f4 {
1442                                         compatible = "rockchip,rk3188-gate-clk";
1443                                         reg = <0x00f4 0x4>;
1444                                         clocks =
1445                                                 <&dummy>,               <&dummy>,
1446                                                 <&dummy>,               <&dummy>,
1447
1448                                                 <&dummy>,               <&hclk_vio_pre>,
1449                                                 <&aclk_vio_pre>,                <&dummy>,
1450
1451                                                 <&dummy>,               <&dummy>,
1452                                                 <&dummy>,               <&dummy>,
1453
1454                                                 <&dummy>,               <&hclk_peri_pre>,
1455                                                 <&hclk_peri_pre>,               <&aclk_peri_pre>;
1456
1457                                         clock-output-names =
1458                                                 "reserved",             "reserved",
1459                                                 "reserved",             "reserved",
1460
1461                                                 "reserved",             "g_hclk_lcdc",
1462                                                 "g_aclk_lcdc",          "reserved",
1463
1464                                                 "reserved",             "reserved",
1465                                                 "reserved",             "reserved",
1466
1467                                                 "reserved",             "g_hclk_usb_peri",
1468                                                 "g_hclk_pe_arbi",               "g_aclk_peri_niu";
1469
1470                                         rockchip,suspend-clkgating-setting=<0x0 0x0>;
1471
1472                                         #clock-cells = <1>;
1473                                 };
1474
1475                                 clk_gates10: gate-clk@00f8 {
1476                                         compatible = "rockchip,rk3188-gate-clk";
1477                                         reg = <0x00f8 0x4>;
1478                                         clocks =
1479                                                 <&xin24m>,              <&xin24m>,
1480                                                 <&xin24m>,              <&dummy>,
1481
1482                                                 <&clk_nandc>,           <&clk_sfc>,
1483                                                 <&clk_hevc_core>,               <&dummy>,
1484
1485                                                 <&clk_dpll>,            <&dummy>,
1486                                                 <&dummy>,               <&dummy>,
1487
1488                                                 <&dummy>,               <&dummy>,
1489                                                 <&dummy>,               <&dummy>;
1490
1491                                         clock-output-names =
1492                                                 "g_clk_pvtm_core",              "g_clk_pvtm_gpu",
1493                                                 "g_pvtm_video",         "reserved",
1494
1495                                                 "clk_nandc",            "clk_sfc",
1496                                                 "clk_hevc_core",                "reserved",
1497
1498                                                 "reserved",             "reserved",
1499                                                 "reserved",             "reserved",
1500
1501                                                 "reserved",             "reserved",
1502                                                 "reserved",             "reserved";
1503
1504                                         rockchip,suspend-clkgating-setting = <0x0 0x0>; /* pwm logic vol */
1505
1506                                         #clock-cells = <1>;
1507                                 };
1508
1509                         };
1510                 };
1511         };
1512 };