2 * Copyright (C) 2014 ROCKCHIP, Inc.
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.
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.
14 #include <dt-bindings/clock/rockchip,rk312x.h>
19 compatible = "rockchip,rk-clocks";
22 ranges = <0x0 0x20000000 0x1f0>;
25 compatible = "rockchip,rk-fixed-rate-cons";
28 compatible = "rockchip,rk-fixed-clock";
29 clock-output-names = "xin24m";
30 clock-frequency = <24000000>;
35 compatible = "rockchip,rk-fixed-clock";
37 clock-output-names = "xin12m";
38 clock-frequency = <12000000>;
42 gmac_clkin: rmii_clkin {
43 compatible = "rockchip,rk-fixed-clock";
44 clock-output-names = "gmac_clkin";
45 clock-frequency = <0>;
50 compatible = "rockchip,rk-fixed-clock";
51 clock-output-names = "usb480m";
52 clock-frequency = <480000000>;
56 i2s_clkin: i2s_clkin {
57 compatible = "rockchip,rk-fixed-clock";
58 clock-output-names = "i2s_clkin";
59 clock-frequency = <0>;
64 compatible = "rockchip,rk-fixed-clock";
65 clock-output-names = "jtag_tck";
66 clock-frequency = <0>;
70 pclkin_cif: pclkin_cif {
71 compatible = "rockchip,rk-fixed-clock";
72 clock-output-names = "pclkin_cif";
73 clock-frequency = <0>;
77 clk_tsp_in: clk_tsp_in {
78 compatible = "rockchip,rk-fixed-clock";
79 clock-output-names = "clk_tsp_in";
80 clock-frequency = <0>;
86 compatible = "rockchip,rk-fixed-clock";
87 clock-output-names = "dummy";
88 clock-frequency = <0>;
92 dummy_cpll: dummy_cpll {
93 compatible = "rockchip,rk-fixed-clock";
94 clock-output-names = "dummy_cpll";
95 clock-frequency = <0>;
102 compatible = "rockchip,rk-fixed-factor-cons";
104 clk_gpll_div2: clk_gpll_div2 {
105 compatible = "rockchip,rk-fixed-factor-clock";
106 clocks = <&clk_gpll>;
107 clock-output-names = "clk_gpll_div2";
113 clk_gpll_div3: clk_gpll_div3 {
114 compatible = "rockchip,rk-fixed-factor-clock";
115 clocks = <&clk_gpll>;
116 clock-output-names = "clk_gpll_div3";
122 clk_pvtm_func: clk_pvtm_func {
123 compatible = "rockchip,rk-fixed-factor-clock";
125 clock-output-names = "clk_pvtm_func";
131 hclk_vepu: hclk_vepu {
132 compatible = "rockchip,rk-fixed-factor-clock";
133 clocks = <&clk_vepu>;
134 clock-output-names = "hclk_vepu";
140 hclk_vdpu: hclk_vdpu {
141 compatible = "rockchip,rk-fixed-factor-clock";
142 clocks = <&clk_vdpu>;
143 clock-output-names = "hclk_vdpu";
152 compatible = "rockchip,rk-clock-regs";
153 #address-cells = <1>;
155 reg = <0x0000 0x01f0>;
158 /* PLL control regs */
160 compatible = "rockchip,rk-pll-cons";
161 #address-cells = <1>;
165 clk_apll: pll-clk@0000 {
166 compatible = "rockchip,rk3188-pll-clk";
168 mode-reg = <0x0040 0>;
169 status-reg = <0x0004 10>;
171 clock-output-names = "clk_apll";
172 rockchip,pll-type = <CLK_PLL_3036_APLL>;
176 clk_dpll: pll-clk@0010 {
177 compatible = "rockchip,rk3188-pll-clk";
179 mode-reg = <0x0040 4>;
180 status-reg = <0x0014 10>;
182 clock-output-names = "clk_dpll";
183 rockchip,pll-type = <CLK_PLL_3036PLUS_AUTO>;
187 clk_cpll: pll-clk@0020 {
188 compatible = "rockchip,rk3188-pll-clk";
190 mode-reg = <0x0040 8>;
191 status-reg = <0x0024 10>;
193 clock-output-names = "clk_cpll";
194 rockchip,pll-type = <CLK_PLL_312XPLUS>;
198 clk_gpll: pll-clk@0030 {
199 compatible = "rockchip,rk3188-pll-clk";
201 mode-reg = <0x0040 12>;
202 status-reg = <0x0034 10>;
204 clock-output-names = "clk_gpll";
205 rockchip,pll-type = <CLK_PLL_3036PLUS_AUTO>;
207 #clock-init-cells = <1>;
212 /* Select control regs */
214 compatible = "rockchip,rk-sel-cons";
215 #address-cells = <1>;
219 clk_sel_con0: sel-con@0044 {
220 compatible = "rockchip,rk3188-selcon";
222 #address-cells = <1>;
225 clk_core_div: clk_core_div {
226 compatible = "rockchip,rk3188-div-con";
227 rockchip,bits = <0 5>;
228 clocks = <&clk_core>;
229 clock-output-names = "clk_core";
230 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
232 rockchip,clkops-idx = <CLKOPS_RATE_CORE>;
233 rockchip,flags = <(CLK_GET_RATE_NOCACHE |
234 CLK_SET_RATE_NO_REPARENT)>;
237 /* reg[6:5]: reserved */
239 clk_core: clk_core_mux {
240 compatible = "rockchip,rk3188-mux-con";
241 rockchip,bits = <7 1>;
242 clocks = <&clk_apll>, <&clk_gpll_div2>;
243 clock-output-names = "clk_core";
245 #clock-init-cells = <1>;
248 aclk_cpu_pre_div: aclk_cpu_pre_div {
249 compatible = "rockchip,rk3188-div-con";
250 rockchip,bits = <8 5>;
251 clocks = <&aclk_cpu_pre>;
252 clock-output-names = "aclk_cpu_pre";
253 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
255 rockchip,clkops-idx =
256 <CLKOPS_RATE_MUX_DIV>;
257 rockchip,flags = <CLK_SET_RATE_NO_REPARENT>;
260 aclk_cpu_pre: aclk_cpu_pre_mux {
261 compatible = "rockchip,rk3188-mux-con";
262 rockchip,bits = <13 2>;
263 clocks = <&clk_apll>, <&clk_gpll>,<&clk_gpll_div2>,<&clk_gpll_div3>;
264 clock-output-names = "aclk_cpu_pre";
266 #clock-init-cells = <1>;
269 /* reg[15]: reserved */
273 clk_sel_con1: sel-con@0048 {
274 compatible = "rockchip,rk3188-selcon";
276 #address-cells = <1>;
279 pclk_dbg_div: pclk_dbg_div {
280 compatible = "rockchip,rk3188-div-con";
281 rockchip,bits = <0 4>;
282 clocks = <&clk_core>;
283 clock-output-names = "pclk_dbg";
284 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
286 rockchip,clkops-idx = <CLKOPS_RATE_CORE_CHILD>;
289 aclk_core_pre: aclk_core_pre_div {
290 compatible = "rockchip,rk3188-div-con";
291 rockchip,bits = <4 3>;
292 clocks = <&clk_core>;
293 clock-output-names = "aclk_core_pre";
294 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
296 rockchip,clkops-idx = <CLKOPS_RATE_CORE_CHILD>;
299 /* reg[7]: reserved */
301 hclk_cpu_pre: hclk_cpu_pre_div {
302 compatible = "rockchip,rk3188-div-con";
303 rockchip,bits = <8 2>;
304 clocks = <&aclk_cpu_pre>;
305 clock-output-names = "hclk_cpu_pre";
306 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
308 #clock-init-cells = <1>;
311 /* reg[11:10]: reserved */
313 pclk_cpu_pre: pclk_cpu_pre_div {
314 compatible = "rockchip,rk3188-div-con";
315 rockchip,bits = <12 3>;
316 clocks = <&aclk_cpu_pre>;
317 clock-output-names = "pclk_cpu_pre";
318 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
320 #clock-init-cells = <1>;
323 /* reg[15]: reserved */
326 clk_sel_con2: sel-con@004c {
327 compatible = "rockchip,rk3188-selcon";
329 #address-cells = <1>;
332 clk_pvtm_div: clk_pvtm_div {
333 compatible = "rockchip,rk3188-mux-con";
334 rockchip,bits = <0 7>;
335 clocks = <&clk_pvtm_func>;
336 clock-output-names = "clk_pvtm";
337 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
339 #clock-init-cells = <1>;
342 /* reg[7]: reserved */
344 clk_nandc_div: clk_nandc_div {
345 compatible = "rockchip,rk3188-div-con";
346 rockchip,bits = <8 5>;
347 clocks = <&clk_nandc>;
348 clock-output-names = "clk_nandc";
349 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
351 rockchip,clkops-idx =
352 <CLKOPS_RATE_MUX_DIV>;
355 /* reg[13]: reserved */
357 clk_nandc: clk_nandc_mux {
358 compatible = "rockchip,rk3188-mux-con";
359 rockchip,bits = <14 2>;
360 clocks = <&clk_cpll>, <&clk_gpll>, <&clk_gpll_div2>;
361 clock-output-names = "clk_nandc";
367 clk_sel_con3: sel-con@0050 {
368 compatible = "rockchip,rk3188-selcon";
370 #address-cells = <1>;
373 clk_i2s_2ch_pll_div: clk_i2s_2ch_pll_div {
374 compatible = "rockchip,rk3188-div-con";
375 rockchip,bits = <0 7>;
376 clocks = <&clk_i2s_2ch_pll>;
377 clock-output-names = "clk_i2s_2ch_pll";
378 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
380 rockchip,clkops-idx =
381 <CLKOPS_RATE_MUX_DIV>;
382 rockchip,flags = <CLK_SET_RATE_NO_REPARENT>;
385 /* reg[7]: reserved */
387 clk_i2s_2ch: clk_i2s_2ch_mux {
388 compatible = "rockchip,rk3188-mux-con";
389 rockchip,bits = <8 2>;
390 clocks = <&clk_i2s_2ch_pll_div>, <&i2s_2ch_frac>, <&i2s_clkin>, <&xin12m>;
391 clock-output-names = "clk_i2s_2ch";
393 rockchip,clkops-idx =
394 <CLKOPS_RATE_RK3288_I2S>;
395 rockchip,flags = <CLK_SET_RATE_PARENT>;
398 /* reg[11:10]: reserved */
400 clk_i2s_2ch_out: clk_i2s_2ch_out_mux {
401 compatible = "rockchip,rk3188-mux-con";
402 rockchip,bits = <12 1>;
403 clocks = <&clk_i2s_2ch>, <&xin12m>;
404 clock-output-names = "i2s_clkout";
408 /* reg[13]: reserved */
410 clk_i2s_2ch_pll: i2s_2ch_pll_mux {
411 compatible = "rockchip,rk3188-mux-con";
412 rockchip,bits = <14 2>;
413 clocks = <&clk_cpll>,<&clk_gpll>, <&clk_gpll_div2>;
414 clock-output-names = "clk_i2s_2ch_pll";
416 #clock-init-cells = <1>;
421 clk_sel_con4: sel-con@0054 {
422 compatible = "rockchip,rk3188-selcon";
424 #address-cells = <1>;
427 clk_tsp_div: clk_tsp_div {
428 compatible = "rockchip,rk3188-div-con";
429 rockchip,bits = <0 5>;
431 clock-output-names = "clk_tsp";
432 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
434 rockchip,clkops-idx =
435 <CLKOPS_RATE_MUX_DIV>;
438 /* reg[5]: reserved */
440 clk_tsp: clk_tsp_mux {
441 compatible = "rockchip,rk3188-mux-con";
442 rockchip,bits = <6 2>;
443 clocks = <&clk_cpll>, <&clk_gpll>, <&clk_gpll_div2>;
444 clock-output-names = "clk_tsp";
446 #clock-init-cells = <1>;
449 clk_24m_div: clk_24m_div {
450 compatible = "rockchip,rk3188-div-con";
451 rockchip,bits = <8 5>;
453 clock-output-names = "clk_24m";
457 /* reg[15:13]: reserved */
462 clk_sel_con5: sel-con@0058 {
463 compatible = "rockchip,rk3188-selcon";
465 #address-cells = <1>;
468 clk_mac_pll_div: clk_mac_pll_div {
469 compatible = "rockchip,rk3188-div-con";
470 rockchip,bits = <0 5>;
471 clocks = <&clk_mac_pll>;
472 clock-output-names = "clk_mac_pll";
473 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
475 rockchip,clkops-idx =
476 <CLKOPS_RATE_MUX_DIV>;
479 /* reg[5]: reserved */
481 clk_mac_pll: clk_mac_pll_mux {
482 compatible = "rockchip,rk3188-mux-con";
483 rockchip,bits = <6 2>;
484 clocks = <&clk_cpll>, <&clk_gpll>, <&clk_gpll_div2>;
485 clock-output-names = "clk_mac_pll";
487 #clock-init-cells = <1>;
490 /* reg[14:8]: reserved */
492 clk_mac_ref: clk_mac_ref_mux {
493 compatible = "rockchip,rk3188-mux-con";
494 rockchip,bits = <15 1>;
495 clocks = <&clk_mac_pll_div>, <&gmac_clkin>;
496 clock-output-names = "clk_mac_ref";
498 rockchip,clkops-idx =
499 <CLKOPS_RATE_MAC_REF>;
500 rockchip,flags = <CLK_SET_RATE_PARENT>;
501 #clock-init-cells = <1>;
507 clk_sel_con6: sel-con@005c {
508 compatible = "rockchip,rk3188-selcon";
510 #address-cells = <1>;
513 spdif_div: spdif_div {
514 compatible = "rockchip,rk3188-div-con";
515 rockchip,bits = <0 7>;
516 clocks = <&clk_spdif_pll>;
517 clock-output-names = "clk_spdif_pll";
518 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
520 rockchip,clkops-idx =
521 <CLKOPS_RATE_MUX_DIV>;
522 rockchip,flags = <CLK_SET_RATE_NO_REPARENT>;
525 /* reg[7]: reserved */
527 clk_spdif: spdif_mux {
528 compatible = "rockchip,rk3188-mux-con";
529 rockchip,bits = <8 2>;
530 clocks = <&spdif_div>, <&spdif_frac>, <&xin12m>;
531 clock-output-names = "clk_spdif";
533 rockchip,clkops-idx =
534 <CLKOPS_RATE_RK3288_I2S>;
535 rockchip,flags = <CLK_SET_RATE_PARENT>;
538 /* reg[13:10]: reserved */
540 clk_spdif_pll: spdif_pll_mux {
541 compatible = "rockchip,rk3188-mux-con";
542 rockchip,bits = <14 2>;
543 clocks = <&clk_cpll>,<&clk_gpll>, <&clk_gpll_div2>;
544 clock-output-names = "clk_spdif_pll";
546 #clock-init-cells = <1>;
551 clk_sel_con7: sel-con@0060 {
552 compatible = "rockchip,rk3188-selcon";
554 #address-cells = <1>;
557 i2s_2ch_frac: i2s_2ch_frac {
558 compatible = "rockchip,rk3188-frac-con";
559 clocks = <&clk_i2s_2ch_pll>;
560 clock-output-names = "i2s_2ch_frac";
561 /* numerator denominator */
562 rockchip,bits = <0 32>;
563 rockchip,clkops-idx =
569 clk_sel_con8: sel-con@0064 {
570 compatible = "rockchip,rk3188-selcon";
572 #address-cells = <1>;
575 i2s_8ch_frac: i2s_8ch_frac {
576 compatible = "rockchip,rk3188-frac-con";
577 clocks = <&clk_i2s_8ch_pll>;
578 clock-output-names = "i2s_8ch_frac";
579 /* numerator denominator */
580 rockchip,bits = <0 32>;
581 rockchip,clkops-idx =
587 clk_sel_con9: sel-con@0068 {
588 compatible = "rockchip,rk3188-selcon";
590 #address-cells = <1>;
593 clk_i2s_8ch_pll_div: clk_i2s_8ch_pll_div {
594 compatible = "rockchip,rk3188-div-con";
595 rockchip,bits = <0 7>;
596 clocks = <&clk_i2s_8ch_pll>;
597 clock-output-names = "clk_i2s_8ch_pll";
598 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
600 rockchip,clkops-idx =
601 <CLKOPS_RATE_MUX_DIV>;
602 rockchip,flags = <CLK_SET_RATE_NO_REPARENT>;
605 /* reg[7]: reserved */
607 clk_i2s_8ch: clk_i2s_8ch_mux {
608 compatible = "rockchip,rk3188-mux-con";
609 rockchip,bits = <8 2>;
610 clocks = <&clk_i2s_8ch_pll_div>, <&i2s_8ch_frac>, <&i2s_clkin>, <&xin12m>;
611 clock-output-names = "clk_i2s_8ch";
613 rockchip,clkops-idx =
614 <CLKOPS_RATE_RK3288_I2S>;
615 rockchip,flags = <CLK_SET_RATE_PARENT>;
618 /* reg[13:10]: reserved */
620 clk_i2s_8ch_pll: i2s_8ch_pll_mux {
621 compatible = "rockchip,rk3188-mux-con";
622 rockchip,bits = <14 2>;
623 clocks = <&clk_cpll>,<&clk_gpll>, <&clk_gpll_div2>;
624 clock-output-names = "clk_i2s_8ch_pll";
626 #clock-init-cells = <1>;
631 clk_sel_con10: sel-con@006c {
632 compatible = "rockchip,rk3188-selcon";
634 #address-cells = <1>;
637 aclk_peri_pre_div: aclk_peri_pre_div {
638 compatible = "rockchip,rk3188-div-con";
639 rockchip,bits = <0 5>;
640 clocks = <&aclk_peri_pre>;
641 clock-output-names = "aclk_peri_pre";
642 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
644 rockchip,clkops-idx =
645 <CLKOPS_RATE_MUX_DIV>;
646 rockchip,flags = <CLK_SET_RATE_NO_REPARENT>;
649 /* reg[7:5]: reserved */
651 hclk_peri_pre: hclk_peri_pre_div {
652 compatible = "rockchip,rk3188-div-con";
653 rockchip,bits = <8 2>;
654 clocks = <&aclk_peri_pre>;
655 clock-output-names = "hclk_peri_pre";
656 rockchip,div-type = <CLK_DIVIDER_USER_DEFINE>;
657 rockchip,div-relations =
662 #clock-init-cells = <1>;
665 /* reg[11:10]: reserved */
667 pclk_peri_pre: pclk_peri_div {
668 compatible = "rockchip,rk3188-div-con";
669 rockchip,bits = <12 2>;
670 clocks = <&aclk_peri_pre>;
671 clock-output-names = "pclk_peri_pre";
672 rockchip,div-type = <CLK_DIVIDER_USER_DEFINE>;
673 rockchip,div-relations =
679 #clock-init-cells = <1>;
682 aclk_peri_pre: aclk_peri_pre_mux {
683 compatible = "rockchip,rk3188-mux-con";
684 rockchip,bits = <14 2>;
685 clocks = <&clk_gpll>,<&clk_cpll>,<&clk_gpll_div2>,<&clk_gpll_div3>;
686 clock-output-names = "aclk_peri_pre";
688 #clock-init-cells = <1>;
692 clk_sel_con11: sel-con@0070 {
693 compatible = "rockchip,rk3188-selcon";
695 #address-cells = <1>;
698 clk_sdmmc0_div: clk_sdmmc0_div {
699 compatible = "rockchip,rk3188-div-con";
700 rockchip,bits = <0 6>;
701 clocks = <&clk_sdmmc0>;
702 clock-output-names = "clk_sdmmc0";
703 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
705 rockchip,clkops-idx =
706 <CLKOPS_RATE_MUX_EVENDIV>;
709 clk_sdmmc0: clk_sdmmc0_mux {
710 compatible = "rockchip,rk3188-mux-con";
711 rockchip,bits = <6 2>;
712 clocks = <&clk_cpll>,<&clk_gpll>,<&clk_gpll_div2>,<&xin24m>;
713 clock-output-names = "clk_sdmmc0";
715 #clock-init-cells = <1>;
718 clk_sfc_div: clk_sfc_div {
719 compatible = "rockchip,rk3188-div-con";
720 rockchip,bits = <8 5>;
722 clock-output-names = "clk_sfc";
723 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
725 rockchip,clkops-idx =
726 <CLKOPS_RATE_MUX_EVENDIV>;
729 /* reg[13]: reserved */
731 clk_sfc: clk_sfc_mux {
732 compatible = "rockchip,rk3188-mux-con";
733 rockchip,bits = <14 2>;
734 clocks = <&clk_cpll>,<&clk_gpll>,<&clk_gpll_div2>,<&xin24m>;
735 clock-output-names = "clk_sfc";
737 #clock-init-cells = <1>;
742 clk_sel_con12: sel-con@0074 {
743 compatible = "rockchip,rk3188-selcon";
745 #address-cells = <1>;
748 clk_sdio_div: clk_sdio_div {
749 compatible = "rockchip,rk3188-div-con";
750 rockchip,bits = <0 6>;
751 clocks = <&clk_sdio>;
752 clock-output-names = "clk_sdio";
753 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
755 rockchip,clkops-idx =
756 <CLKOPS_RATE_MUX_EVENDIV>;
759 clk_sdio: clk_sdio_mux {
760 compatible = "rockchip,rk3188-mux-con";
761 rockchip,bits = <6 2>;
762 clocks = <&clk_cpll>,<&clk_gpll>, <&clk_gpll_div2>, <&xin24m>;
763 clock-output-names = "clk_sdio";
767 clk_emmc_div: clk_emmc_div {
768 compatible = "rockchip,rk3188-div-con";
769 rockchip,bits = <8 6>;
770 clocks = <&clk_emmc>;
771 clock-output-names = "clk_emmc";
772 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
774 rockchip,clkops-idx =
775 <CLKOPS_RATE_MUX_EVENDIV>;
778 clk_emmc: clk_emmc_mux {
779 compatible = "rockchip,rk3188-mux-con";
780 rockchip,bits = <14 2>;
781 clocks = <&clk_cpll>,<&clk_gpll>, <&clk_gpll_div2>, <&xin24m>;
782 clock-output-names = "clk_emmc";
788 clk_sel_con13: sel-con@0078 {
789 compatible = "rockchip,rk3188-selcon";
791 #address-cells = <1>;
794 clk_uart0_pll_div: clk_uart0_pll_div {
795 compatible = "rockchip,rk3188-div-con";
796 rockchip,bits = <0 7>;
797 clocks = <&clk_uart0_pll>;
798 clock-output-names = "clk_uart0_pll";
799 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
803 /* reg[7]: reserved */
805 clk_uart0: clk_uart0_mux {
806 compatible = "rockchip,rk3188-mux-con";
807 rockchip,bits = <8 2>;
808 clocks = <&clk_uart0_pll>, <&uart0_frac>, <&xin24m>;
809 clock-output-names = "clk_uart0";
811 rockchip,clkops-idx =
812 <CLKOPS_RATE_RK3288_I2S>;
813 rockchip,flags = <CLK_SET_RATE_PARENT>;
816 /* reg[11:10]: reserved */
818 clk_uart0_pll: clk_uart0_pll_mux {
819 compatible = "rockchip,rk3188-mux-con";
820 rockchip,bits = <12 2>;
821 clocks = <&clk_cpll>,<&clk_gpll>, <&clk_gpll_div2>, <&usb480m>;
822 clock-output-names = "clk_uart0_pll";
824 #clock-init-cells = <1>;
827 clk_uart2_pll: clk_uart2_pll_mux {
828 compatible = "rockchip,rk3188-mux-con";
829 rockchip,bits = <14 2>;
830 clocks = <&clk_cpll>,<&clk_gpll>, <&clk_gpll_div2>, <&usb480m>;
831 clock-output-names = "clk_uart2_pll";
833 #clock-init-cells = <1>;
838 clk_sel_con14: sel-con@007c {
839 compatible = "rockchip,rk3188-selcon";
841 #address-cells = <1>;
844 clk_uart1_div: clk_uart1_div {
845 compatible = "rockchip,rk3188-div-con";
846 rockchip,bits = <0 7>;
847 clocks = <&clk_uart2_pll>;
848 clock-output-names = "clk_uart1_div";
849 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
853 /* reg[7]: reserved */
855 clk_uart1: clk_uart1_mux {
856 compatible = "rockchip,rk3188-mux-con";
857 rockchip,bits = <8 2>;
858 clocks = <&clk_uart1_div>, <&uart1_frac>, <&xin24m>;
859 clock-output-names = "clk_uart1";
861 rockchip,clkops-idx =
862 <CLKOPS_RATE_RK3288_I2S>;
863 rockchip,flags = <CLK_SET_RATE_PARENT>;
866 /* reg[15:10]: reserved */
869 clk_sel_con15: sel-con@0080 {
870 compatible = "rockchip,rk3188-selcon";
872 #address-cells = <1>;
875 clk_uart2_div: clk_uart2_div {
876 compatible = "rockchip,rk3188-div-con";
877 rockchip,bits = <0 7>;
878 clocks = <&clk_uart2_pll>;
879 clock-output-names = "clk_uart2_div";
880 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
884 /* reg[7]: reserved */
886 clk_uart2: clk_uart2_mux {
887 compatible = "rockchip,rk3188-mux-con";
888 rockchip,bits = <8 2>;
889 clocks = <&clk_uart2_div>, <&uart2_frac>, <&xin24m>;
890 clock-output-names = "clk_uart2";
892 rockchip,clkops-idx =
893 <CLKOPS_RATE_RK3288_I2S>;
894 rockchip,flags = <CLK_SET_RATE_PARENT>;
897 /* reg[15:10]: reserved */
900 clk_sel_con17: sel-con@0088 {
901 compatible = "rockchip,rk3188-selcon";
903 #address-cells = <1>;
906 uart0_frac: uart0_frac {
907 compatible = "rockchip,rk3188-frac-con";
908 clocks = <&clk_uart0_pll>;
909 clock-output-names = "uart0_frac";
910 /* numerator denominator */
911 rockchip,bits = <0 32>;
912 rockchip,clkops-idx =
918 clk_sel_con18: sel-con@008c {
919 compatible = "rockchip,rk3188-selcon";
921 #address-cells = <1>;
924 uart1_frac: uart1_frac {
925 compatible = "rockchip,rk3188-frac-con";
926 clocks = <&clk_uart1_div>;
927 clock-output-names = "uart1_frac";
928 /* numerator denominator */
929 rockchip,bits = <0 32>;
930 rockchip,clkops-idx =
936 clk_sel_con19: sel-con@0090 {
937 compatible = "rockchip,rk3188-selcon";
939 #address-cells = <1>;
942 uart2_frac: uart2_frac {
943 compatible = "rockchip,rk3188-frac-con";
944 clocks = <&clk_uart2_div>;
945 clock-output-names = "uart2_frac";
946 /* numerator denominator */
947 rockchip,bits = <0 32>;
948 rockchip,clkops-idx =
955 clk_sel_con20: sel-con@0094 {
956 compatible = "rockchip,rk3188-selcon";
958 #address-cells = <1>;
961 spdif_frac: spdif_frac {
962 compatible = "rockchip,rk3188-frac-con";
963 clocks = <&spdif_div>;
964 clock-output-names = "spdif_frac";
965 /* numerator denominator */
966 rockchip,bits = <0 32>;
967 rockchip,clkops-idx =
974 clk_sel_con23: sel-con@00a0 {
975 compatible = "rockchip,rk3188-selcon";
977 #address-cells = <1>;
980 dclk_ebc: dclk_ebc_mux {
981 compatible = "rockchip,rk3188-mux-con";
982 rockchip,bits = <0 2>;
983 clocks = <&clk_cpll>,<&clk_gpll>, <&clk_gpll_div2>;
984 clock-output-names = "dclk_ebc";
988 /* reg[7:2]: reserved */
990 dclk_ebc_div: dclk_ebc_div {
991 compatible = "rockchip,rk3188-div-con";
992 rockchip,bits = <8 8>;
993 clocks = <&dclk_ebc>;
994 clock-output-names = "dclk_ebc";
995 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
997 rockchip,clkops-idx =
998 <CLKOPS_RATE_MUX_DIV>;
1003 clk_sel_con24: sel-con@00a4 {
1004 compatible = "rockchip,rk3188-selcon";
1006 #address-cells = <1>;
1009 clk_crypto_div: clk_crypto_div {
1010 compatible = "rockchip,rk3188-div-con";
1011 rockchip,bits = <0 2>;
1012 clocks = <&aclk_cpu_pre>;
1013 clock-output-names = "clk_crypto";
1014 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
1016 #clock-init-cells = <1>;
1019 /* reg[7:2]: reserved */
1021 clk_saradc: clk_saradc_div {
1022 compatible = "rockchip,rk3188-div-con";
1023 rockchip,bits = <8 8>;
1025 clock-output-names = "clk_saradc";
1026 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
1028 #clock-init-cells = <1>;
1033 clk_sel_con25: sel-con@00a8 {
1034 compatible = "rockchip,rk3188-selcon";
1036 #address-cells = <1>;
1039 clk_spi0_div: clk_spi0_div {
1040 compatible = "rockchip,rk3188-div-con";
1041 rockchip,bits = <0 7>;
1042 clocks = <&clk_spi0>;
1043 clock-output-names = "clk_spi0";
1044 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
1046 rockchip,clkops-idx =
1047 <CLKOPS_RATE_MUX_DIV>;
1050 /* reg[7]: reserved */
1052 clk_spi0: clk_spi0_mux {
1053 compatible = "rockchip,rk3188-mux-con";
1054 rockchip,bits = <8 2>;
1055 clocks = <&clk_cpll>, <&clk_gpll>,<&clk_gpll_div2>;
1056 clock-output-names = "clk_spi0";
1060 /* reg[15:10]: reserved */
1064 clk_sel_con26: sel-con@00ac {
1065 compatible = "rockchip,rk3188-selcon";
1067 #address-cells = <1>;
1071 compatible = "rockchip,rk3188-div-con";
1072 rockchip,bits = <0 2>;
1073 clocks = <&clk_ddr>;
1074 clock-output-names = "clk_ddr";
1075 rockchip,div-type = <CLK_DIVIDER_USER_DEFINE>;
1076 rockchip,div-relations =
1081 rockchip,flags = <(CLK_GET_RATE_NOCACHE |
1082 CLK_SET_RATE_NO_REPARENT)>;
1083 rockchip,clkops-idx = <CLKOPS_RATE_DDR>;
1086 /* reg[7:2]: reserved */
1088 clk_ddr: ddr_clk_pll_mux {
1089 compatible = "rockchip,rk3188-mux-con";
1090 rockchip,bits = <8 1>;
1091 clocks = <&clk_dpll>, <&clk_gpll_div2>;
1092 clock-output-names = "clk_ddr";
1096 /* reg[15:9]: reserved */
1099 clk_sel_con27: sel-con@00b0 {
1100 compatible = "rockchip,rk3188-selcon";
1102 #address-cells = <1>;
1105 dclk_lcdc0: dclk_lcdc0_mux {
1106 compatible = "rockchip,rk3188-mux-con";
1107 rockchip,bits = <0 2>;
1108 clocks = <&clk_cpll>, <&clk_gpll>, <&clk_gpll_div2>, <&clk_gpll_div3>;
1109 clock-output-names = "dclk_lcdc0";
1111 #clock-init-cells = <1>;
1114 /* reg[7:2]: reserved */
1116 dclk_lcdc0_div: dclk_lcdc0_div {
1117 compatible = "rockchip,rk3188-div-con";
1118 rockchip,bits = <8 8>;
1119 clocks = <&dclk_lcdc0>;
1120 clock-output-names = "dclk_lcdc0";
1121 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
1123 rockchip,clkops-idx =
1124 <CLKOPS_RATE_MUX_DIV>;
1125 rockchip,flags = <CLK_SET_RATE_NO_REPARENT>;
1129 clk_sel_con28: sel-con@00b4 {
1130 compatible = "rockchip,rk3188-selcon";
1132 #address-cells = <1>;
1135 sclk_lcdc0: sclk_lcdc0_mux {
1136 compatible = "rockchip,rk3188-mux-con";
1137 rockchip,bits = <0 2>;
1138 clocks = <&clk_cpll>, <&clk_gpll>, <&clk_gpll_div2>, <&clk_gpll_div3>;
1139 clock-output-names = "sclk_lcdc0";
1141 #clock-init-cells = <1>;
1144 /* reg[7:2]: reserved */
1146 sclk_lcdc0_div: sclk_lcdc0_div {
1147 compatible = "rockchip,rk3188-div-con";
1148 rockchip,bits = <8 8>;
1149 clocks = <&sclk_lcdc0>;
1150 clock-output-names = "sclk_lcdc0";
1151 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
1153 rockchip,clkops-idx =
1154 <CLKOPS_RATE_MUX_DIV>;
1155 rockchip,flags = <CLK_SET_RATE_NO_REPARENT>;
1159 clk_sel_con29: sel-con@00b8 {
1160 compatible = "rockchip,rk3188-selcon";
1162 #address-cells = <1>;
1165 clk_cif_pll: clk_cif_pll_mux {
1166 compatible = "rockchip,rk3188-mux-con";
1167 rockchip,bits = <0 2>;
1168 clocks = <&clk_cpll>, <&clk_gpll>, <&clk_gpll_div2>, <&usb480m>;
1169 clock-output-names = "clk_cif_pll";
1171 #clock-init-cells = <1>;
1174 clk_cif_out_div: clk_cif_out_div {
1175 compatible = "rockchip,rk3188-div-con";
1176 rockchip,bits = <2 5>;
1177 clocks = <&clk_cif_out>;
1178 clock-output-names = "clk_cif_out";
1179 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
1181 rockchip,clkops-idx =
1182 <CLKOPS_RATE_MUX_DIV>;
1183 rockchip,flags = <CLK_SET_RATE_NO_REPARENT>;
1186 clk_cif_out: clk_cif_out_mux {
1187 compatible = "rockchip,rk3188-mux-con";
1188 rockchip,bits = <7 1>;
1189 clocks = <&clk_cif_pll>, <&xin24m>;
1190 clock-output-names = "clk_cif_out";
1192 #clock-init-cells = <1>;
1195 pclk_pmu_pre: pclk_pmu_pre_div {
1196 compatible = "rockchip,rk3188-div-con";
1197 rockchip,bits = <8 6>;
1198 clocks = <&clk_cpll>;
1199 clock-output-names = "pclk_pmu_pre";
1200 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
1202 #clock-init-cells = <1>;
1205 /* reg[15:14]: reserved */
1208 clk_sel_con30: sel-con@00bc {
1209 compatible = "rockchip,rk3188-selcon";
1211 #address-cells = <1>;
1214 clk_testout_div: clk_testout_div {
1215 compatible = "rockchip,rk3188-div-con";
1216 rockchip,bits = <0 5>;
1218 clock-output-names = "clk_testout";
1219 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
1221 #clock-init-cells = <1>;
1224 /* reg[6:5]: reserved */
1226 clk_cif0_in: clk_cif0_in_mux {
1227 compatible = "rockchip,rk3188-mux-con";
1228 rockchip,bits = <7 1>;
1229 clocks = <&pclkin_cif>, <&dummy>;
1230 clock-output-names = "clk_cif0_in";
1232 #clock-init-cells = <1>;
1235 hclk_vio_pre_div: hclk_vio_pre_div {
1236 compatible = "rockchip,rk3188-div-con";
1237 rockchip,bits = <8 5>;
1238 clocks = <&hclk_vio_pre>;
1239 clock-output-names = "hclk_vio_pre";
1240 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
1242 rockchip,clkops-idx =
1243 <CLKOPS_RATE_MUX_DIV>;
1244 rockchip,flags = <CLK_SET_RATE_NO_REPARENT>;
1247 /* reg[13]: reserved */
1249 hclk_vio_pre: hclk_vio_pre_mux {
1250 compatible = "rockchip,rk3188-mux-con";
1251 rockchip,bits = <14 2>;
1252 clocks = <&clk_cpll>, <&clk_gpll>, <&clk_gpll_div2>, <&usb480m>;
1253 clock-output-names = "hclk_vio_pre";
1255 #clock-init-cells = <1>;
1260 clk_sel_con31: sel-con@00c0 {
1261 compatible = "rockchip,rk3188-selcon";
1263 #address-cells = <1>;
1266 aclk_vio0_pre_div: aclk_vio0_pre_div {
1267 compatible = "rockchip,rk3188-div-con";
1268 rockchip,bits = <0 5>;
1269 clocks = <&aclk_vio0_pre>;
1270 clock-output-names = "aclk_vio0_pre";
1271 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
1273 rockchip,clkops-idx =
1274 <CLKOPS_RATE_MUX_DIV>;
1275 rockchip,flags = <CLK_SET_RATE_NO_REPARENT>;
1278 aclk_vio0_pre: aclk_vio0_pre_mux {
1279 compatible = "rockchip,rk3188-mux-con";
1280 rockchip,bits = <5 3>;
1281 clocks = <&clk_cpll>, <&clk_gpll>, <&clk_gpll_div2>, <&clk_gpll_div3>, <&usb480m>;
1282 clock-output-names = "aclk_vio0_pre";
1284 #clock-init-cells = <1>;
1287 aclk_vio1_pre_div: aclk_vio1_pre_div {
1288 compatible = "rockchip,rk3188-div-con";
1289 rockchip,bits = <8 5>;
1290 clocks = <&aclk_vio1_pre>;
1291 clock-output-names = "aclk_vio1_pre";
1292 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
1294 rockchip,clkops-idx =
1295 <CLKOPS_RATE_MUX_DIV>;
1296 rockchip,flags = <CLK_SET_RATE_NO_REPARENT>;
1299 aclk_vio1_pre: aclk_vio1_pre_mux {
1300 compatible = "rockchip,rk3188-mux-con";
1301 rockchip,bits = <13 3>;
1302 clocks = <&clk_cpll>, <&clk_gpll>, <&clk_gpll_div2>, <&clk_gpll_div3>, <&usb480m>;
1303 clock-output-names = "aclk_vio1_pre";
1305 #clock-init-cells = <1>;
1310 clk_sel_con32: sel-con@00c4 {
1311 compatible = "rockchip,rk3188-selcon";
1313 #address-cells = <1>;
1316 clk_vepu_div: clk_vepu_div {
1317 compatible = "rockchip,rk3188-div-con";
1318 rockchip,bits = <0 5>;
1319 clocks = <&clk_vepu>;
1320 clock-output-names = "clk_vepu";
1321 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
1323 rockchip,clkops-idx =
1324 <CLKOPS_RATE_MUX_DIV>;
1327 clk_vepu: clk_vepu_mux {
1328 compatible = "rockchip,rk3188-mux-con";
1329 rockchip,bits = <5 3>;
1330 clocks = <&clk_cpll>, <&clk_gpll>, <&clk_gpll_div2>, <&clk_gpll_div3>, <&usb480m>;
1331 clock-output-names = "clk_vepu";
1333 #clock-init-cells = <1>;
1336 clk_vdpu_div: clk_vdpu_div {
1337 compatible = "rockchip,rk3188-div-con";
1338 rockchip,bits = <8 5>;
1339 clocks = <&clk_vdpu>;
1340 clock-output-names = "clk_vdpu";
1341 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
1343 rockchip,clkops-idx =
1344 <CLKOPS_RATE_MUX_DIV>;
1347 clk_vdpu: clk_vdpu_mux {
1348 compatible = "rockchip,rk3188-mux-con";
1349 rockchip,bits = <13 3>;
1350 clocks = <&clk_cpll>, <&clk_gpll>, <&clk_gpll_div2>, <&clk_gpll_div3>, <&usb480m>;
1351 clock-output-names = "clk_vdpu";
1353 #clock-init-cells = <1>;
1358 clk_sel_con34: sel-con@00cc {
1359 compatible = "rockchip,rk3188-selcon";
1361 #address-cells = <1>;
1364 clk_gpu_pre_div: clk_gpu_pre_div {
1365 compatible = "rockchip,rk3188-div-con";
1366 rockchip,bits = <0 5>;
1367 clocks = <&clk_gpu_pre>;
1368 clock-output-names = "clk_gpu_pre";
1369 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
1371 rockchip,clkops-idx =
1372 <CLKOPS_RATE_MUX_DIV>;
1373 rockchip,flags = <CLK_SET_RATE_PARENT_IN_ORDER>;
1376 clk_gpu_pre: clk_gpu_pre_mux {
1377 compatible = "rockchip,rk3188-mux-con";
1378 rockchip,bits = <5 3>;
1379 clocks = <&clk_cpll>, <&clk_gpll>, <&clk_gpll_div2>, <&clk_gpll_div3>, <&usb480m>;
1380 clock-output-names = "clk_gpu_pre";
1382 #clock-init-cells = <1>;
1385 clk_hevc_core_div: clk_hevc_core_div {
1386 compatible = "rockchip,rk3188-div-con";
1387 rockchip,bits = <8 5>;
1388 clocks = <&clk_hevc_core>;
1389 clock-output-names = "clk_hevc_core";
1390 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
1392 rockchip,clkops-idx =
1393 <CLKOPS_RATE_MUX_DIV>;
1396 clk_hevc_core: clk_hevc_core_mux {
1397 compatible = "rockchip,rk3188-mux-con";
1398 rockchip,bits = <13 3>;
1399 clocks = <&clk_cpll>, <&clk_gpll>, <&clk_gpll_div2>, <&clk_gpll_div3>, <&usb480m>;
1400 clock-output-names = "clk_hevc_core";
1402 #clock-init-cells = <1>;
1410 /* Gate control regs */
1412 compatible = "rockchip,rk-gate-cons";
1413 #address-cells = <1>;
1417 clk_gates0: gate-clk@00d0{
1418 compatible = "rockchip,rk3188-gate-clk";
1421 <&clk_core>, <&dummy>,
1422 <&dummy>, <&aclk_cpu_pre>,
1424 <&aclk_cpu_pre>, <&aclk_cpu_pre>,
1425 <&dummy>, <&clk_core>,
1427 <&dummy>, <&clk_i2s_2ch_pll>,
1428 <&i2s_2ch_frac>, <&hclk_vio_pre>,
1430 <&aclk_cpu_pre>, <&clk_i2s_2ch_out>,
1431 <&clk_i2s_2ch>, <&dummy>;
1433 clock-output-names =
1434 "pclk_dbg", "aclk_cpu_pre", /*clk_cpu_cpll*/
1435 "clk_ddr", "aclk_cpu_pre",
1437 "hclk_cpu_pre", "pclk_cpu_pre",
1438 "clk_core", "aclk_core_pre",
1440 "reserved", "clk_i2s_2ch_pll",
1441 "i2s_2ch_frac", "hclk_vio_pre",
1443 "clk_crypto", "clk_i2s_2ch_out",
1444 "clk_i2s_2ch", "clk_testout";
1445 rockchip,suspend-clkgating-setting=<0x0 0x0>;
1450 clk_gates1: gate-clk@00d4{
1451 compatible = "rockchip,rk3188-gate-clk";
1454 <&clk_cpll>, <&dummy>,
1455 <&dummy>, <&jtag_tck>,
1457 <&aclk_vio1_pre>, <&xin12m>,
1458 <&xin12m>, <&clk_mac_pll>,
1460 <&clk_uart0_pll>, <&uart0_frac>,
1461 <&clk_uart1_div>, <&uart1_frac>,
1463 <&clk_uart2_div>, <&uart2_frac>,
1464 <&clk_tsp>, <&dummy>;
1466 clock-output-names =
1467 "pclk_pmu_pre", "reserved",
1468 "reserved", "clk_jtag",
1470 "aclk_vio1_pre", "clk_otgphy0",
1471 "clk_otgphy1", "clk_mac_pll",
1473 "clk_uart0_pll", "uart0_frac",
1474 "clk_uart1_div", "uart1_frac",
1476 "clk_uart2_div", "uart2_frac",
1477 "clk_tsp", "reserved";
1479 rockchip,suspend-clkgating-setting=<0x0 0x0>;
1483 clk_gates2: gate-clk@00d8 {
1484 compatible = "rockchip,rk3188-gate-clk";
1487 <&dummy>, <&aclk_peri_pre>,
1488 <&aclk_peri_pre>, <&aclk_peri_pre>,
1490 <&clk_mac_ref>, <&clk_mac_ref>,
1491 <&clk_mac_ref>, <&clk_mac_ref>,
1493 <&clk_saradc>, <&clk_spi0>,
1494 <&clk_spdif_pll>, <&clk_sdmmc0>,
1496 <&spdif_frac>, <&clk_sdio>,
1497 <&clk_emmc>, <&xin24m>;
1498 clock-output-names =
1499 "aclk_peri_pre", "aclk_peri_pre",
1500 "hclk_peri_pre", "pclk_peri_pre",
1502 "clk_mac_ref", "clk_mac_refout",
1503 "clk_mac_rx", "clk_mac_tx",
1505 "clk_saradc", "clk_spi0",
1506 "clk_spdif_pll", "clk_sdmmc0",
1508 "spdif_frac", "clk_sdio",
1509 "clk_emmc", "clk_mipi_24m";
1510 rockchip,suspend-clkgating-setting=<0x0 0x0>;
1515 clk_gates3: gate-clk@00dc {
1516 compatible = "rockchip,rk3188-gate-clk";
1519 <&aclk_vio0_pre>, <&dclk_lcdc0>,
1520 <&sclk_lcdc0>, <&pclkin_cif>,
1522 <&dclk_ebc>, <&hclk_cpu_pre>,
1523 <&hclk_peri_pre>, <&clk_cif_pll>,
1525 <&pclk_cpu_pre>, <&clk_vepu>,
1526 <&clk_hevc_core>, <&clk_vdpu>,
1528 <&hclk_vdpu>, <&clk_gpu_pre>,
1529 <&aclk_peri_pre>, <&clk_sfc>;
1531 clock-output-names =
1532 "aclk_vio0_pre", "dclk_lcdc0",
1533 "sclk_lcdc0", "pclkin_cif",
1535 "dclk_ebc", "g_hclk_crypto",
1536 "g_hclk_em_peri", "clk_cif_pll",
1538 "g_pclk_hdmi", "clk_vepu",
1539 "clk_hevc_core", "clk_vdpu",
1541 "hclk_vdpu", "clk_gpu_pre",
1542 "g_hclk_gps", "clk_sfc";
1543 rockchip,suspend-clkgating-setting=<0x0000 0x0000>;
1548 clk_gates4: gate-clk@00e0{
1549 compatible = "rockchip,rk3188-gate-clk";
1552 <&hclk_peri_pre>, <&pclk_peri_pre>,
1553 <&aclk_peri_pre>, <&aclk_peri_pre>,
1555 <&clk_i2s_8ch_pll>, <&i2s_8ch_frac>,
1556 <&clk_i2s_8ch>, <&dummy>,
1559 <&aclk_cpu_pre>, <&dummy>,
1561 <&aclk_cpu_pre>, <&dummy>,
1564 clock-output-names =
1565 "g_hp_axi_matrix", "g_pp_axi_matrix",
1566 "g_aclk_cpu_peri", "g_ap_axi_matrix",
1568 "clk_i2s_8ch_pll", "i2s_8ch_frac",
1569 "clk_i2s_8ch", "reserved",
1571 "reserved", "reserved",
1572 "g_aclk_strc_sys", "reserved",
1574 /* Not use these ddr gates */
1575 "g_aclk_intmem", "reserved",
1576 "reserved", "reserved";
1578 rockchip,suspend-clkgating-setting = <0x0000 0x0000>;
1582 clk_gates5: gate-clk@00e4 {
1583 compatible = "rockchip,rk3188-gate-clk";
1586 <&pclk_cpu_pre>, <&aclk_peri_pre>,
1587 <&pclk_peri_pre>, <&dummy>,
1589 <&pclk_cpu_pre>, <&dummy>,
1590 <&hclk_cpu_pre>, <&pclk_cpu_pre>,
1592 <&dummy>, <&hclk_peri_pre>,
1593 <&hclk_peri_pre>, <&hclk_peri_pre>,
1595 <&dummy>, <&hclk_peri_pre>,
1596 <&pclk_cpu_pre>, <&dummy>;
1598 clock-output-names =
1599 "g_pclk_mipiphy", "g_aclk_dmac",
1600 "g_pclk_efuse", "reserved",
1602 "g_pclk_grf", "reserved",
1603 "g_hclk_rom", "g_pclk_ddrupctl",
1605 "reserved", "g_hclk_nandc",
1606 "g_hclk_sdmmc0", "g_hclk_sdio",
1608 "reserved", "g_hclk_otg0",
1609 "g_pclk_acodec", "reserved";
1611 rockchip,suspend-clkgating-setting = <0x0000 0x0000>;
1616 clk_gates6: gate-clk@00e8 {
1617 compatible = "rockchip,rk3188-gate-clk";
1620 <&aclk_vio0_pre>, <&hclk_vio_pre>,
1623 <&hclk_vio_pre>, <&aclk_vio0_pre>,
1627 <&hclk_vio_pre>, <&aclk_vio0_pre>,
1629 <&hclk_vio_pre>, <&aclk_vio0_pre>,
1632 clock-output-names =
1633 "g_aclk_lcdc0", "g_hclk_lcdc0",
1634 "reserved", "reserved",
1636 "g_hclk_cif", "g_aclk_cif",
1637 "reserved", "reserved",
1639 "reserved", "reserved",
1640 "g_hclk_rga", "g_aclk_rga",
1642 "g_hclk_vio_bus", "g_aclk_vio",
1643 "reserved", "reserved";
1645 rockchip,suspend-clkgating-setting = <0x0000 0x0000>;
1650 clk_gates7: gate-clk@00ec {
1651 compatible = "rockchip,rk3188-gate-clk";
1654 <&hclk_peri_pre>, <&hclk_peri_pre>,
1655 <&hclk_peri_pre>, <&hclk_peri_pre>,
1657 <&hclk_peri_pre>, <&dummy>,
1658 <&dummy>, <&pclk_peri_pre>,
1661 <&pclk_peri_pre>, <&dummy>,
1663 <&pclk_peri_pre>, <&dummy>,
1664 <&pclk_peri_pre>, <&pclk_peri_pre>;
1666 clock-output-names =
1667 "g_hclk_emmc", "g_hclk_sfc",
1668 "g_hclk_i2s_2ch", "g_hclk_host",
1670 "g_hclk_i2s_8ch", "reserved",
1671 "reserved", "g_pclk_timer",
1673 "reserved", "reserved",
1674 "g_pclk_pwm", "reserved",
1676 "g_pclk_spi0", "reserved",
1677 "g_pclk_saradc", "g_pclk_wdt";
1679 rockchip,suspend-clkgating-setting = <0x0000 0x0000>;
1684 clk_gates8: gate-clk@00f0 {
1685 compatible = "rockchip,rk3188-gate-clk";
1688 <&pclk_peri_pre>, <&pclk_peri_pre>,
1689 <&pclk_peri_pre>, <&dummy>,
1691 <&pclk_peri_pre>, <&pclk_peri_pre>,
1692 <&pclk_peri_pre>, <&pclk_peri_pre>,
1694 <&dummy>, <&pclk_peri_pre>,
1695 <&pclk_peri_pre>, <&pclk_peri_pre>,
1697 <&pclk_peri_pre>, <&dummy>,
1700 clock-output-names =
1701 "g_pclk_uart0", "g_pclk_uart1",
1702 "g_pclk_uart2", "reserved",
1704 "g_pclk_i2c0", "g_pclk_i2c1",
1705 "g_pclk_i2c2", "g_pclk_i2c3",
1707 "reserved", "g_pclk_gpio0",
1708 "g_pclk_gpio1", "g_pclk_gpio2",
1710 "g_pclk_gpio3", "reserved",
1711 "reserved", "reserved";
1713 rockchip,suspend-clkgating-setting=<0x0000 0x0000>;
1717 clk_gates9: gate-clk@00f4 {
1718 compatible = "rockchip,rk3188-gate-clk";
1722 <&pclk_pmu_pre>, <&pclk_pmu_pre>,
1724 <&dummy>, <&hclk_vio_pre>,
1725 <&hclk_vio_pre>, <&hclk_vio_pre>,
1727 <&aclk_vio1_pre>, <&hclk_vio_pre>,
1728 <&aclk_vio1_pre>, <&dummy>,
1730 <&pclk_peri_pre>, <&hclk_peri_pre>,
1731 <&hclk_peri_pre>, <&aclk_peri_pre>;
1733 clock-output-names =
1734 "reserved", "reserved",
1735 "g_pclk_pmu", "g_pclk_pmu_noc",
1737 "reserved", "g_hclk_vio_h2p",
1738 "g_pclk_mipi", "g_hclk_iep",
1740 "g_aclk_iep", "g_hclk_ebc",
1741 "g_aclk_vio1_niu", "reserved",
1743 "g_pclk_sim_card", "g_hclk_usb_peri",
1744 "g_hclk_pe_arbi", "g_aclk_peri_niu";
1746 rockchip,suspend-clkgating-setting=<0x0 0x0>;
1751 clk_gates10: gate-clk@00f8 {
1752 compatible = "rockchip,rk3188-gate-clk";
1755 <&xin24m>, <&xin24m>,
1756 <&xin24m>, <&xin24m>,
1758 <&xin24m>, <&xin24m>,
1759 <&xin24m>, <&xin24m>,
1761 <&xin24m>, <&hclk_peri_pre>,
1762 <&aclk_peri_pre>, <&pclk_peri_pre>,
1764 <&hclk_peri_pre>, <&clk_tsp_in>,
1765 <&hclk_peri_pre>, <&clk_nandc>;
1767 clock-output-names =
1768 "clk_pvtm_core", "clk_pvtm_gpu",
1769 "clk_pvtm_func", "clk_timer0",
1771 "clk_timer1", "clk_timer2",
1772 "clk_timer3", "clk_timer4",
1774 "clk_timer5", "g_hclk_spdif",
1775 "g_aclk_gmac", "g_pclk_gmac",
1777 "g_hclk_tsp", "g_clkin0_tsp",
1778 "g_hclk_usbhost", "clk_nandc";
1780 rockchip,suspend-clkgating-setting = <0x0 0x0>; /* pwm logic vol */