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: gmac_clkin {
43 compatible = "rockchip,rk-fixed-clock";
44 clock-output-names = "gmac_clkin";
45 clock-frequency = <125000000>;
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 g_clk_pvtm_func: g_clk_pvtm_func {
123 compatible = "rockchip,rk-fixed-factor-clock";
125 clock-output-names = "g_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";
149 pclkin_cif_inv: pclkin_cif_inv {
150 compatible = "rockchip,rk-fixed-factor-clock";
151 clocks = <&clk_gates3 3>;
152 clock-output-names = "pclkin_cif_inv";
161 compatible = "rockchip,rk-pd-cons";
164 compatible = "rockchip,rk-pd-clock";
165 clock-output-names = "pd_gpu";
166 rockchip,pd-id = <CLK_PD_GPU>;
171 compatible = "rockchip,rk-pd-clock";
172 clock-output-names = "pd_video";
173 rockchip,pd-id = <CLK_PD_VIDEO>;
178 compatible = "rockchip,rk-pd-clock";
179 clock-output-names = "pd_vio";
180 rockchip,pd-id = <CLK_PD_VIO>;
185 compatible = "rockchip,rk-pd-clock";
187 clock-output-names = "pd_vop";
188 rockchip,pd-id = <CLK_PD_VIRT>;
193 compatible = "rockchip,rk-pd-clock";
195 clock-output-names = "pd_vip";
196 rockchip,pd-id = <CLK_PD_VIRT>;
201 compatible = "rockchip,rk-pd-clock";
203 clock-output-names = "pd_iep";
204 rockchip,pd-id = <CLK_PD_VIRT>;
209 compatible = "rockchip,rk-pd-clock";
211 clock-output-names = "pd_rga";
212 rockchip,pd-id = <CLK_PD_VIRT>;
217 compatible = "rockchip,rk-pd-clock";
219 clock-output-names = "pd_ebc";
220 rockchip,pd-id = <CLK_PD_VIRT>;
224 pd_mipidsi: pd_mipidsi {
225 compatible = "rockchip,rk-pd-clock";
227 clock-output-names = "pd_mipidsi";
228 rockchip,pd-id = <CLK_PD_VIRT>;
233 compatible = "rockchip,rk-pd-clock";
235 clock-output-names = "pd_hdmi";
236 rockchip,pd-id = <CLK_PD_VIRT>;
244 compatible = "rockchip,rk-clock-regs";
245 #address-cells = <1>;
247 reg = <0x0000 0x01f0>;
250 /* PLL control regs */
252 compatible = "rockchip,rk-pll-cons";
253 #address-cells = <1>;
257 clk_apll: pll-clk@0000 {
258 compatible = "rockchip,rk3188-pll-clk";
260 mode-reg = <0x0040 0>;
261 status-reg = <0x0004 10>;
263 clock-output-names = "clk_apll";
264 rockchip,pll-type = <CLK_PLL_3036_APLL>;
268 clk_dpll: pll-clk@0010 {
269 compatible = "rockchip,rk3188-pll-clk";
271 mode-reg = <0x0040 4>;
272 status-reg = <0x0014 10>;
274 clock-output-names = "clk_dpll";
275 rockchip,pll-type = <CLK_PLL_3036PLUS_AUTO>;
279 clk_cpll: pll-clk@0020 {
280 compatible = "rockchip,rk3188-pll-clk";
282 mode-reg = <0x0040 8>;
283 status-reg = <0x0024 10>;
285 clock-output-names = "clk_cpll";
286 rockchip,pll-type = <CLK_PLL_312XPLUS>;
288 #clock-init-cells = <1>;
291 clk_gpll: pll-clk@0030 {
292 compatible = "rockchip,rk3188-pll-clk";
294 mode-reg = <0x0040 12>;
295 status-reg = <0x0034 10>;
297 clock-output-names = "clk_gpll";
298 rockchip,pll-type = <CLK_PLL_3036PLUS_AUTO>;
300 #clock-init-cells = <1>;
305 /* Select control regs */
307 compatible = "rockchip,rk-sel-cons";
308 #address-cells = <1>;
312 clk_sel_con0: sel-con@0044 {
313 compatible = "rockchip,rk3188-selcon";
315 #address-cells = <1>;
318 clk_core_div: clk_core_div {
319 compatible = "rockchip,rk3188-div-con";
320 rockchip,bits = <0 5>;
321 clocks = <&clk_core>;
322 clock-output-names = "clk_core";
323 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
325 rockchip,clkops-idx = <CLKOPS_RATE_CORE>;
326 rockchip,flags = <(CLK_GET_RATE_NOCACHE |
327 CLK_SET_RATE_NO_REPARENT)>;
330 /* reg[6:5]: reserved */
332 clk_core: clk_core_mux {
333 compatible = "rockchip,rk3188-mux-con";
334 rockchip,bits = <7 1>;
335 clocks = <&clk_apll>, <&clk_gpll_div2>;
336 clock-output-names = "clk_core";
338 #clock-init-cells = <1>;
341 aclk_cpu_div: aclk_cpu_div {
342 compatible = "rockchip,rk3188-div-con";
343 rockchip,bits = <8 5>;
344 clocks = <&aclk_cpu>;
345 clock-output-names = "aclk_cpu";
346 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
348 rockchip,clkops-idx =
349 <CLKOPS_RATE_MUX_DIV>;
350 rockchip,flags = <CLK_SET_RATE_NO_REPARENT>;
353 aclk_cpu: aclk_cpu_mux {
354 compatible = "rockchip,rk3188-mux-con";
355 rockchip,bits = <13 2>;
356 clocks = <&clk_apll>, <&clk_gpll>,<&clk_gpll_div2>,<&clk_gpll_div3>;
357 clock-output-names = "aclk_cpu";
359 #clock-init-cells = <1>;
362 /* reg[15]: reserved */
366 clk_sel_con1: sel-con@0048 {
367 compatible = "rockchip,rk3188-selcon";
369 #address-cells = <1>;
372 pclk_dbg_div: pclk_dbg_div {
373 compatible = "rockchip,rk3188-div-con";
374 rockchip,bits = <0 4>;
375 clocks = <&clk_core>;
376 clock-output-names = "pclk_dbg";
377 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
379 rockchip,clkops-idx = <CLKOPS_RATE_CORE_CHILD>;
382 aclk_core_pre: aclk_core_pre_div {
383 compatible = "rockchip,rk3188-div-con";
384 rockchip,bits = <4 3>;
385 clocks = <&clk_core>;
386 clock-output-names = "aclk_core_pre";
387 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
389 rockchip,clkops-idx = <CLKOPS_RATE_CORE_CHILD>;
392 /* reg[7]: reserved */
394 hclk_cpu_pre: hclk_cpu_pre_div {
395 compatible = "rockchip,rk3188-div-con";
396 rockchip,bits = <8 2>;
397 clocks = <&aclk_cpu>;
398 clock-output-names = "hclk_cpu_pre";
399 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
401 #clock-init-cells = <1>;
404 /* reg[11:10]: reserved */
406 pclk_cpu_pre: pclk_cpu_pre_div {
407 compatible = "rockchip,rk3188-div-con";
408 rockchip,bits = <12 3>;
409 clocks = <&aclk_cpu>;
410 clock-output-names = "pclk_cpu_pre";
411 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
413 #clock-init-cells = <1>;
416 /* reg[15]: reserved */
419 clk_sel_con2: sel-con@004c {
420 compatible = "rockchip,rk3188-selcon";
422 #address-cells = <1>;
425 clk_pvtm_div: clk_pvtm_div {
426 compatible = "rockchip,rk3188-mux-con";
427 rockchip,bits = <0 7>;
428 clocks = <&g_clk_pvtm_func>;
429 clock-output-names = "clk_pvtm";
430 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
432 #clock-init-cells = <1>;
435 /* reg[7]: reserved */
437 clk_nandc_div: clk_nandc_div {
438 compatible = "rockchip,rk3188-div-con";
439 rockchip,bits = <8 5>;
440 clocks = <&clk_nandc>;
441 clock-output-names = "clk_nandc";
442 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
444 rockchip,clkops-idx =
445 <CLKOPS_RATE_MUX_DIV>;
448 /* reg[13]: reserved */
450 clk_nandc: clk_nandc_mux {
451 compatible = "rockchip,rk3188-mux-con";
452 rockchip,bits = <14 2>;
453 clocks = <&clk_cpll>, <&clk_gpll>, <&clk_gpll_div2>;
454 clock-output-names = "clk_nandc";
456 #clock-init-cells = <1>;
461 clk_sel_con3: sel-con@0050 {
462 compatible = "rockchip,rk3188-selcon";
464 #address-cells = <1>;
467 clk_i2s_2ch_pll_div: clk_i2s_2ch_pll_div {
468 compatible = "rockchip,rk3188-div-con";
469 rockchip,bits = <0 7>;
470 clocks = <&clk_i2s_2ch_pll>;
471 clock-output-names = "clk_i2s_2ch_pll";
472 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
474 rockchip,clkops-idx =
475 <CLKOPS_RATE_MUX_DIV>;
476 rockchip,flags = <CLK_SET_RATE_NO_REPARENT>;
479 /* reg[7]: reserved */
481 clk_i2s_2ch: clk_i2s_2ch_mux {
482 compatible = "rockchip,rk3188-mux-con";
483 rockchip,bits = <8 2>;
484 clocks = <&clk_i2s_2ch_pll_div>, <&i2s_2ch_frac>, <&i2s_clkin>, <&xin12m>;
485 clock-output-names = "clk_i2s_2ch";
487 rockchip,clkops-idx =
488 <CLKOPS_RATE_RK3288_I2S>;
489 rockchip,flags = <CLK_SET_RATE_PARENT>;
492 /* reg[11:10]: reserved */
494 clk_i2s_2ch_out: clk_i2s_2ch_out_mux {
495 compatible = "rockchip,rk3188-mux-con";
496 rockchip,bits = <12 1>;
497 clocks = <&clk_i2s_2ch>, <&xin12m>;
498 clock-output-names = "i2s_clkout";
502 /* reg[13]: reserved */
504 clk_i2s_2ch_pll: i2s_2ch_pll_mux {
505 compatible = "rockchip,rk3188-mux-con";
506 rockchip,bits = <14 2>;
507 clocks = <&clk_cpll>,<&clk_gpll>, <&clk_gpll_div2>;
508 clock-output-names = "clk_i2s_2ch_pll";
510 #clock-init-cells = <1>;
515 clk_sel_con4: sel-con@0054 {
516 compatible = "rockchip,rk3188-selcon";
518 #address-cells = <1>;
521 clk_tsp_div: clk_tsp_div {
522 compatible = "rockchip,rk3188-div-con";
523 rockchip,bits = <0 5>;
525 clock-output-names = "clk_tsp";
526 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
528 rockchip,clkops-idx =
529 <CLKOPS_RATE_MUX_DIV>;
532 /* reg[5]: reserved */
534 clk_tsp: clk_tsp_mux {
535 compatible = "rockchip,rk3188-mux-con";
536 rockchip,bits = <6 2>;
537 clocks = <&clk_cpll>, <&clk_gpll>, <&clk_gpll_div2>;
538 clock-output-names = "clk_tsp";
540 #clock-init-cells = <1>;
543 clk_24m_div: clk_24m_div {
544 compatible = "rockchip,rk3188-div-con";
545 rockchip,bits = <8 5>;
547 clock-output-names = "clk_24m";
548 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
552 /* reg[15:13]: reserved */
557 clk_sel_con5: sel-con@0058 {
558 compatible = "rockchip,rk3188-selcon";
560 #address-cells = <1>;
563 clk_mac_pll_div: clk_mac_pll_div {
564 compatible = "rockchip,rk3188-div-con";
565 rockchip,bits = <0 5>;
566 clocks = <&clk_mac_pll>;
567 clock-output-names = "clk_mac_pll";
568 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
570 rockchip,clkops-idx =
571 <CLKOPS_RATE_MUX_DIV>;
572 #clock-init-cells = <1>;
575 /* reg[5]: reserved */
577 clk_mac_pll: clk_mac_pll_mux {
578 compatible = "rockchip,rk3188-mux-con";
579 rockchip,bits = <6 2>;
580 clocks = <&clk_cpll>, <&clk_gpll>, <&clk_gpll_div2>;
581 clock-output-names = "clk_mac_pll";
583 #clock-init-cells = <1>;
586 /* reg[14:8]: reserved */
588 clk_mac_ref: clk_mac_ref_mux {
589 compatible = "rockchip,rk3188-mux-con";
590 rockchip,bits = <15 1>;
591 clocks = <&clk_mac_pll_div>, <&gmac_clkin>;
592 clock-output-names = "clk_mac_ref";
594 rockchip,clkops-idx =
595 <CLKOPS_RATE_MAC_REF>;
596 rockchip,flags = <CLK_SET_RATE_PARENT>;
597 #clock-init-cells = <1>;
603 clk_sel_con6: sel-con@005c {
604 compatible = "rockchip,rk3188-selcon";
606 #address-cells = <1>;
609 spdif_div: spdif_div {
610 compatible = "rockchip,rk3188-div-con";
611 rockchip,bits = <0 7>;
612 clocks = <&clk_spdif_pll>;
613 clock-output-names = "clk_spdif_pll";
614 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
616 rockchip,clkops-idx =
617 <CLKOPS_RATE_MUX_DIV>;
618 rockchip,flags = <CLK_SET_RATE_NO_REPARENT>;
621 /* reg[7]: reserved */
623 clk_spdif: spdif_mux {
624 compatible = "rockchip,rk3188-mux-con";
625 rockchip,bits = <8 2>;
626 clocks = <&spdif_div>, <&spdif_frac>, <&xin12m>;
627 clock-output-names = "clk_spdif";
629 rockchip,clkops-idx =
630 <CLKOPS_RATE_RK3288_I2S>;
631 rockchip,flags = <CLK_SET_RATE_PARENT>;
634 /* reg[13:10]: reserved */
636 clk_spdif_pll: spdif_pll_mux {
637 compatible = "rockchip,rk3188-mux-con";
638 rockchip,bits = <14 2>;
639 clocks = <&clk_cpll>,<&clk_gpll>, <&clk_gpll_div2>;
640 clock-output-names = "clk_spdif_pll";
642 #clock-init-cells = <1>;
647 clk_sel_con7: sel-con@0060 {
648 compatible = "rockchip,rk3188-selcon";
650 #address-cells = <1>;
653 i2s_2ch_frac: i2s_2ch_frac {
654 compatible = "rockchip,rk3188-frac-con";
655 clocks = <&clk_i2s_2ch_pll>;
656 clock-output-names = "i2s_2ch_frac";
657 /* numerator denominator */
658 rockchip,bits = <0 32>;
659 rockchip,clkops-idx =
665 clk_sel_con8: sel-con@0064 {
666 compatible = "rockchip,rk3188-selcon";
668 #address-cells = <1>;
671 i2s_8ch_frac: i2s_8ch_frac {
672 compatible = "rockchip,rk3188-frac-con";
673 clocks = <&clk_i2s_8ch_pll>;
674 clock-output-names = "i2s_8ch_frac";
675 /* numerator denominator */
676 rockchip,bits = <0 32>;
677 rockchip,clkops-idx =
683 clk_sel_con9: sel-con@0068 {
684 compatible = "rockchip,rk3188-selcon";
686 #address-cells = <1>;
689 clk_i2s_8ch_pll_div: clk_i2s_8ch_pll_div {
690 compatible = "rockchip,rk3188-div-con";
691 rockchip,bits = <0 7>;
692 clocks = <&clk_i2s_8ch_pll>;
693 clock-output-names = "clk_i2s_8ch_pll";
694 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
696 rockchip,clkops-idx =
697 <CLKOPS_RATE_MUX_DIV>;
698 rockchip,flags = <CLK_SET_RATE_NO_REPARENT>;
701 /* reg[7]: reserved */
703 clk_i2s_8ch: clk_i2s_8ch_mux {
704 compatible = "rockchip,rk3188-mux-con";
705 rockchip,bits = <8 2>;
706 clocks = <&clk_i2s_8ch_pll_div>, <&i2s_8ch_frac>, <&i2s_clkin>, <&xin12m>;
707 clock-output-names = "clk_i2s_8ch";
709 rockchip,clkops-idx =
710 <CLKOPS_RATE_RK3288_I2S>;
711 rockchip,flags = <CLK_SET_RATE_PARENT>;
714 /* reg[13:10]: reserved */
716 clk_i2s_8ch_pll: i2s_8ch_pll_mux {
717 compatible = "rockchip,rk3188-mux-con";
718 rockchip,bits = <14 2>;
719 clocks = <&clk_cpll>,<&clk_gpll>, <&clk_gpll_div2>;
720 clock-output-names = "clk_i2s_8ch_pll";
722 #clock-init-cells = <1>;
727 clk_sel_con10: sel-con@006c {
728 compatible = "rockchip,rk3188-selcon";
730 #address-cells = <1>;
733 aclk_peri_div: aclk_peri_div {
734 compatible = "rockchip,rk3188-div-con";
735 rockchip,bits = <0 5>;
736 clocks = <&aclk_peri>;
737 clock-output-names = "aclk_peri";
738 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
740 rockchip,clkops-idx =
741 <CLKOPS_RATE_MUX_DIV>;
742 rockchip,flags = <CLK_SET_RATE_NO_REPARENT>;
745 /* reg[7:5]: reserved */
747 hclk_peri_pre: hclk_peri_pre_div {
748 compatible = "rockchip,rk3188-div-con";
749 rockchip,bits = <8 2>;
750 clocks = <&aclk_peri>;
751 clock-output-names = "hclk_peri_pre";
752 rockchip,div-type = <CLK_DIVIDER_USER_DEFINE>;
753 rockchip,div-relations =
758 #clock-init-cells = <1>;
761 /* reg[11:10]: reserved */
763 pclk_peri_pre: pclk_peri_div {
764 compatible = "rockchip,rk3188-div-con";
765 rockchip,bits = <12 2>;
766 clocks = <&aclk_peri>;
767 clock-output-names = "pclk_peri_pre";
768 rockchip,div-type = <CLK_DIVIDER_USER_DEFINE>;
769 rockchip,div-relations =
775 #clock-init-cells = <1>;
778 aclk_peri: aclk_peri_mux {
779 compatible = "rockchip,rk3188-mux-con";
780 rockchip,bits = <14 2>;
781 clocks = <&clk_gpll>,<&clk_cpll>,<&clk_gpll_div2>,<&clk_gpll_div3>;
782 clock-output-names = "aclk_peri";
784 #clock-init-cells = <1>;
788 clk_sel_con11: sel-con@0070 {
789 compatible = "rockchip,rk3188-selcon";
791 #address-cells = <1>;
794 clk_sdmmc0_div: clk_sdmmc0_div {
795 compatible = "rockchip,rk3188-div-con";
796 rockchip,bits = <0 6>;
797 clocks = <&clk_sdmmc0>;
798 clock-output-names = "clk_sdmmc0";
799 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
801 rockchip,clkops-idx =
802 <CLKOPS_RATE_MUX_EVENDIV>;
805 clk_sdmmc0: clk_sdmmc0_mux {
806 compatible = "rockchip,rk3188-mux-con";
807 rockchip,bits = <6 2>;
808 clocks = <&clk_cpll>,<&clk_gpll>,<&clk_gpll_div2>,<&xin24m>;
809 clock-output-names = "clk_sdmmc0";
811 #clock-init-cells = <1>;
814 clk_sfc_div: clk_sfc_div {
815 compatible = "rockchip,rk3188-div-con";
816 rockchip,bits = <8 5>;
818 clock-output-names = "clk_sfc";
819 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
821 rockchip,clkops-idx =
822 <CLKOPS_RATE_MUX_EVENDIV>;
825 /* reg[13]: reserved */
827 clk_sfc: clk_sfc_mux {
828 compatible = "rockchip,rk3188-mux-con";
829 rockchip,bits = <14 2>;
830 clocks = <&clk_cpll>,<&clk_gpll>,<&clk_gpll_div2>,<&xin24m>;
831 clock-output-names = "clk_sfc";
833 #clock-init-cells = <1>;
838 clk_sel_con12: sel-con@0074 {
839 compatible = "rockchip,rk3188-selcon";
841 #address-cells = <1>;
844 clk_sdio_div: clk_sdio_div {
845 compatible = "rockchip,rk3188-div-con";
846 rockchip,bits = <0 6>;
847 clocks = <&clk_sdio>;
848 clock-output-names = "clk_sdio";
849 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
851 rockchip,clkops-idx =
852 <CLKOPS_RATE_MUX_EVENDIV>;
855 clk_sdio: clk_sdio_mux {
856 compatible = "rockchip,rk3188-mux-con";
857 rockchip,bits = <6 2>;
858 clocks = <&clk_cpll>,<&clk_gpll>, <&clk_gpll_div2>, <&xin24m>;
859 clock-output-names = "clk_sdio";
861 #clock-init-cells = <1>;
864 clk_emmc_div: clk_emmc_div {
865 compatible = "rockchip,rk3188-div-con";
866 rockchip,bits = <8 6>;
867 clocks = <&clk_emmc>;
868 clock-output-names = "clk_emmc";
869 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
871 rockchip,clkops-idx =
872 <CLKOPS_RATE_MUX_EVENDIV>;
875 clk_emmc: clk_emmc_mux {
876 compatible = "rockchip,rk3188-mux-con";
877 rockchip,bits = <14 2>;
878 clocks = <&clk_cpll>,<&clk_gpll>, <&clk_gpll_div2>, <&xin24m>;
879 clock-output-names = "clk_emmc";
881 #clock-init-cells = <1>;
886 clk_sel_con13: sel-con@0078 {
887 compatible = "rockchip,rk3188-selcon";
889 #address-cells = <1>;
892 clk_uart0_pll_div: clk_uart0_pll_div {
893 compatible = "rockchip,rk3188-div-con";
894 rockchip,bits = <0 7>;
895 clocks = <&clk_uart0_pll>;
896 clock-output-names = "clk_uart0_pll";
897 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
901 /* reg[7]: reserved */
903 clk_uart0: clk_uart0_mux {
904 compatible = "rockchip,rk3188-mux-con";
905 rockchip,bits = <8 2>;
906 clocks = <&clk_uart0_pll>, <&uart0_frac>, <&xin24m>;
907 clock-output-names = "clk_uart0";
909 rockchip,clkops-idx =
910 <CLKOPS_RATE_RK3288_I2S>;
911 rockchip,flags = <CLK_SET_RATE_PARENT>;
914 /* reg[11:10]: reserved */
916 clk_uart0_pll: clk_uart0_pll_mux {
917 compatible = "rockchip,rk3188-mux-con";
918 rockchip,bits = <12 2>;
919 clocks = <&clk_cpll>,<&clk_gpll>, <&clk_gpll_div2>, <&usb480m>;
920 clock-output-names = "clk_uart0_pll";
922 #clock-init-cells = <1>;
925 clk_uart2_pll: clk_uart2_pll_mux {
926 compatible = "rockchip,rk3188-mux-con";
927 rockchip,bits = <14 2>;
928 clocks = <&clk_cpll>,<&clk_gpll>, <&clk_gpll_div2>, <&usb480m>;
929 clock-output-names = "clk_uart2_pll";
931 #clock-init-cells = <1>;
936 clk_sel_con14: sel-con@007c {
937 compatible = "rockchip,rk3188-selcon";
939 #address-cells = <1>;
942 clk_uart1_div: clk_uart1_div {
943 compatible = "rockchip,rk3188-div-con";
944 rockchip,bits = <0 7>;
945 clocks = <&clk_uart2_pll>;
946 clock-output-names = "clk_uart1_div";
947 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
951 /* reg[7]: reserved */
953 clk_uart1: clk_uart1_mux {
954 compatible = "rockchip,rk3188-mux-con";
955 rockchip,bits = <8 2>;
956 clocks = <&clk_uart1_div>, <&uart1_frac>, <&xin24m>;
957 clock-output-names = "clk_uart1";
959 rockchip,clkops-idx =
960 <CLKOPS_RATE_RK3288_I2S>;
961 rockchip,flags = <CLK_SET_RATE_PARENT>;
964 /* reg[15:10]: reserved */
967 clk_sel_con15: sel-con@0080 {
968 compatible = "rockchip,rk3188-selcon";
970 #address-cells = <1>;
973 clk_uart2_div: clk_uart2_div {
974 compatible = "rockchip,rk3188-div-con";
975 rockchip,bits = <0 7>;
976 clocks = <&clk_uart2_pll>;
977 clock-output-names = "clk_uart2_div";
978 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
982 /* reg[7]: reserved */
984 clk_uart2: clk_uart2_mux {
985 compatible = "rockchip,rk3188-mux-con";
986 rockchip,bits = <8 2>;
987 clocks = <&clk_uart2_div>, <&uart2_frac>, <&xin24m>;
988 clock-output-names = "clk_uart2";
990 rockchip,clkops-idx =
991 <CLKOPS_RATE_RK3288_I2S>;
992 rockchip,flags = <CLK_SET_RATE_PARENT>;
995 /* reg[15:10]: reserved */
998 clk_sel_con17: sel-con@0088 {
999 compatible = "rockchip,rk3188-selcon";
1001 #address-cells = <1>;
1004 uart0_frac: uart0_frac {
1005 compatible = "rockchip,rk3188-frac-con";
1006 clocks = <&clk_uart0_pll>;
1007 clock-output-names = "uart0_frac";
1008 /* numerator denominator */
1009 rockchip,bits = <0 32>;
1010 rockchip,clkops-idx =
1016 clk_sel_con18: sel-con@008c {
1017 compatible = "rockchip,rk3188-selcon";
1019 #address-cells = <1>;
1022 uart1_frac: uart1_frac {
1023 compatible = "rockchip,rk3188-frac-con";
1024 clocks = <&clk_uart1_div>;
1025 clock-output-names = "uart1_frac";
1026 /* numerator denominator */
1027 rockchip,bits = <0 32>;
1028 rockchip,clkops-idx =
1034 clk_sel_con19: sel-con@0090 {
1035 compatible = "rockchip,rk3188-selcon";
1037 #address-cells = <1>;
1040 uart2_frac: uart2_frac {
1041 compatible = "rockchip,rk3188-frac-con";
1042 clocks = <&clk_uart2_div>;
1043 clock-output-names = "uart2_frac";
1044 /* numerator denominator */
1045 rockchip,bits = <0 32>;
1046 rockchip,clkops-idx =
1053 clk_sel_con20: sel-con@0094 {
1054 compatible = "rockchip,rk3188-selcon";
1056 #address-cells = <1>;
1059 spdif_frac: spdif_frac {
1060 compatible = "rockchip,rk3188-frac-con";
1061 clocks = <&spdif_div>;
1062 clock-output-names = "spdif_frac";
1063 /* numerator denominator */
1064 rockchip,bits = <0 32>;
1065 rockchip,clkops-idx =
1072 clk_sel_con23: sel-con@00a0 {
1073 compatible = "rockchip,rk3188-selcon";
1075 #address-cells = <1>;
1078 dclk_ebc: dclk_ebc_mux {
1079 compatible = "rockchip,rk3188-mux-con";
1080 rockchip,bits = <0 2>;
1081 clocks = <&clk_cpll>,<&clk_gpll>, <&clk_gpll_div2>;
1082 clock-output-names = "dclk_ebc";
1084 #clock-init-cells = <1>;
1087 /* reg[7:2]: reserved */
1089 dclk_ebc_div: dclk_ebc_div {
1090 compatible = "rockchip,rk3188-div-con";
1091 rockchip,bits = <8 8>;
1092 clocks = <&dclk_ebc>;
1093 clock-output-names = "dclk_ebc";
1094 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
1096 rockchip,clkops-idx =
1097 <CLKOPS_RATE_MUX_DIV>;
1102 clk_sel_con24: sel-con@00a4 {
1103 compatible = "rockchip,rk3188-selcon";
1105 #address-cells = <1>;
1108 clk_crypto_div: clk_crypto_div {
1109 compatible = "rockchip,rk3188-div-con";
1110 rockchip,bits = <0 2>;
1111 clocks = <&aclk_cpu>;
1112 clock-output-names = "clk_crypto";
1113 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
1115 #clock-init-cells = <1>;
1118 /* reg[7:2]: reserved */
1120 clk_saradc: clk_saradc_div {
1121 compatible = "rockchip,rk3188-div-con";
1122 rockchip,bits = <8 8>;
1124 clock-output-names = "clk_saradc";
1125 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
1127 #clock-init-cells = <1>;
1132 clk_sel_con25: sel-con@00a8 {
1133 compatible = "rockchip,rk3188-selcon";
1135 #address-cells = <1>;
1138 clk_spi0_div: clk_spi0_div {
1139 compatible = "rockchip,rk3188-div-con";
1140 rockchip,bits = <0 7>;
1141 clocks = <&clk_spi0>;
1142 clock-output-names = "clk_spi0";
1143 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
1145 rockchip,clkops-idx =
1146 <CLKOPS_RATE_MUX_DIV>;
1149 /* reg[7]: reserved */
1151 clk_spi0: clk_spi0_mux {
1152 compatible = "rockchip,rk3188-mux-con";
1153 rockchip,bits = <8 2>;
1154 clocks = <&clk_cpll>, <&clk_gpll>,<&clk_gpll_div2>;
1155 clock-output-names = "clk_spi0";
1159 /* reg[15:10]: reserved */
1163 clk_sel_con26: sel-con@00ac {
1164 compatible = "rockchip,rk3188-selcon";
1166 #address-cells = <1>;
1170 compatible = "rockchip,rk3188-div-con";
1171 rockchip,bits = <0 2>;
1172 clocks = <&clk_ddr>;
1173 clock-output-names = "clk_ddr";
1174 rockchip,div-type = <CLK_DIVIDER_USER_DEFINE>;
1175 rockchip,div-relations =
1180 rockchip,flags = <(CLK_GET_RATE_NOCACHE |
1181 CLK_SET_RATE_NO_REPARENT)>;
1182 rockchip,clkops-idx = <CLKOPS_RATE_DDR>;
1185 /* reg[7:2]: reserved */
1187 clk_ddr: ddr_clk_pll_mux {
1188 compatible = "rockchip,rk3188-mux-con";
1189 rockchip,bits = <8 1>;
1190 clocks = <&clk_dpll>, <&dummy>;
1191 clock-output-names = "clk_ddr";
1195 /* reg[15:9]: reserved */
1198 clk_sel_con27: sel-con@00b0 {
1199 compatible = "rockchip,rk3188-selcon";
1201 #address-cells = <1>;
1204 dclk_lcdc0: dclk_lcdc0_mux {
1205 compatible = "rockchip,rk3188-mux-con";
1206 rockchip,bits = <0 2>;
1207 clocks = <&clk_cpll>, <&clk_gpll>, <&clk_gpll_div2>, <&clk_gpll_div3>;
1208 clock-output-names = "dclk_lcdc0";
1210 #clock-init-cells = <1>;
1213 /* reg[7:2]: reserved */
1215 dclk_lcdc0_div: dclk_lcdc0_div {
1216 compatible = "rockchip,rk3188-div-con";
1217 rockchip,bits = <8 8>;
1218 clocks = <&dclk_lcdc0>;
1219 clock-output-names = "dclk_lcdc0";
1220 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
1222 rockchip,clkops-idx =
1223 <CLKOPS_RATE_MUX_DIV>;
1224 rockchip,flags = <CLK_SET_RATE_NO_REPARENT>;
1228 clk_sel_con28: sel-con@00b4 {
1229 compatible = "rockchip,rk3188-selcon";
1231 #address-cells = <1>;
1234 sclk_lcdc0: sclk_lcdc0_mux {
1235 compatible = "rockchip,rk3188-mux-con";
1236 rockchip,bits = <0 2>;
1237 clocks = <&clk_cpll>, <&clk_gpll>, <&clk_gpll_div2>, <&clk_gpll_div3>;
1238 clock-output-names = "sclk_lcdc0";
1240 #clock-init-cells = <1>;
1243 /* reg[7:2]: reserved */
1245 sclk_lcdc0_div: sclk_lcdc0_div {
1246 compatible = "rockchip,rk3188-div-con";
1247 rockchip,bits = <8 8>;
1248 clocks = <&sclk_lcdc0>;
1249 clock-output-names = "sclk_lcdc0";
1250 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
1252 rockchip,clkops-idx =
1253 <CLKOPS_RATE_MUX_DIV>;
1254 rockchip,flags = <CLK_SET_RATE_NO_REPARENT>;
1258 clk_sel_con29: sel-con@00b8 {
1259 compatible = "rockchip,rk3188-selcon";
1261 #address-cells = <1>;
1264 clk_cif_pll: clk_cif_pll_mux {
1265 compatible = "rockchip,rk3188-mux-con";
1266 rockchip,bits = <0 2>;
1267 clocks = <&clk_cpll>, <&clk_gpll>, <&clk_gpll_div2>, <&usb480m>;
1268 clock-output-names = "clk_cif_pll";
1270 #clock-init-cells = <1>;
1273 clk_cif_out_div: clk_cif_out_div {
1274 compatible = "rockchip,rk3188-div-con";
1275 rockchip,bits = <2 5>;
1276 clocks = <&clk_cif_out>;
1277 clock-output-names = "clk_cif_out";
1278 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
1280 rockchip,clkops-idx =
1281 <CLKOPS_RATE_MUX_DIV>;
1282 rockchip,flags = <CLK_SET_RATE_NO_REPARENT>;
1285 clk_cif_out: clk_cif_out_mux {
1286 compatible = "rockchip,rk3188-mux-con";
1287 rockchip,bits = <7 1>;
1288 clocks = <&clk_cif_pll>, <&xin24m>;
1289 clock-output-names = "clk_cif_out";
1291 #clock-init-cells = <1>;
1294 pclk_pmu_pre: pclk_pmu_pre_div {
1295 compatible = "rockchip,rk3188-div-con";
1296 rockchip,bits = <8 6>;
1297 clocks = <&clk_cpll>;
1298 clock-output-names = "pclk_pmu_pre";
1299 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
1301 #clock-init-cells = <1>;
1304 /* reg[15:14]: reserved */
1307 clk_sel_con30: sel-con@00bc {
1308 compatible = "rockchip,rk3188-selcon";
1310 #address-cells = <1>;
1313 clk_testout_div: clk_testout_div {
1314 compatible = "rockchip,rk3188-div-con";
1315 rockchip,bits = <0 5>;
1317 clock-output-names = "clk_testout";
1318 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
1320 #clock-init-cells = <1>;
1323 /* reg[6:5]: reserved */
1325 clk_cif0_in: clk_cif0_in_mux {
1326 compatible = "rockchip,rk3188-mux-con";
1327 rockchip,bits = <7 1>;
1328 clocks = <&pclkin_cif>, <&pclkin_cif_inv>;
1329 clock-output-names = "clk_cif0_in";
1331 #clock-init-cells = <1>;
1334 hclk_vio_pre_div: hclk_vio_pre_div {
1335 compatible = "rockchip,rk3188-div-con";
1336 rockchip,bits = <8 5>;
1337 clocks = <&hclk_vio_pre>;
1338 clock-output-names = "hclk_vio_pre";
1339 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
1341 rockchip,clkops-idx =
1342 <CLKOPS_RATE_MUX_DIV>;
1343 rockchip,flags = <CLK_SET_RATE_NO_REPARENT>;
1346 /* reg[13]: reserved */
1348 hclk_vio_pre: hclk_vio_pre_mux {
1349 compatible = "rockchip,rk3188-mux-con";
1350 rockchip,bits = <14 2>;
1351 clocks = <&clk_cpll>, <&clk_gpll>, <&clk_gpll_div2>, <&usb480m>;
1352 clock-output-names = "hclk_vio_pre";
1354 #clock-init-cells = <1>;
1359 clk_sel_con31: sel-con@00c0 {
1360 compatible = "rockchip,rk3188-selcon";
1362 #address-cells = <1>;
1365 aclk_vio0_pre_div: aclk_vio0_pre_div {
1366 compatible = "rockchip,rk3188-div-con";
1367 rockchip,bits = <0 5>;
1368 clocks = <&aclk_vio0_pre>;
1369 clock-output-names = "aclk_vio0_pre";
1370 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
1372 rockchip,clkops-idx =
1373 <CLKOPS_RATE_MUX_DIV>;
1374 rockchip,flags = <CLK_SET_RATE_NO_REPARENT>;
1377 aclk_vio0_pre: aclk_vio0_pre_mux {
1378 compatible = "rockchip,rk3188-mux-con";
1379 rockchip,bits = <5 3>;
1380 clocks = <&clk_cpll>, <&clk_gpll>, <&clk_gpll_div2>, <&clk_gpll_div3>, <&usb480m>;
1381 clock-output-names = "aclk_vio0_pre";
1383 #clock-init-cells = <1>;
1386 aclk_vio1_pre_div: aclk_vio1_pre_div {
1387 compatible = "rockchip,rk3188-div-con";
1388 rockchip,bits = <8 5>;
1389 clocks = <&aclk_vio1_pre>;
1390 clock-output-names = "aclk_vio1_pre";
1391 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
1393 rockchip,clkops-idx =
1394 <CLKOPS_RATE_MUX_DIV>;
1395 rockchip,flags = <CLK_SET_RATE_NO_REPARENT>;
1398 aclk_vio1_pre: aclk_vio1_pre_mux {
1399 compatible = "rockchip,rk3188-mux-con";
1400 rockchip,bits = <13 3>;
1401 clocks = <&clk_cpll>, <&clk_gpll>, <&clk_gpll_div2>, <&clk_gpll_div3>, <&usb480m>;
1402 clock-output-names = "aclk_vio1_pre";
1404 #clock-init-cells = <1>;
1409 clk_sel_con32: sel-con@00c4 {
1410 compatible = "rockchip,rk3188-selcon";
1412 #address-cells = <1>;
1415 clk_vepu_div: clk_vepu_div {
1416 compatible = "rockchip,rk3188-div-con";
1417 rockchip,bits = <0 5>;
1418 clocks = <&clk_vepu>;
1419 clock-output-names = "clk_vepu";
1420 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
1422 rockchip,clkops-idx =
1423 <CLKOPS_RATE_MUX_DIV>;
1424 rockchip,flags = <CLK_SET_RATE_NO_REPARENT>;
1427 clk_vepu: clk_vepu_mux {
1428 compatible = "rockchip,rk3188-mux-con";
1429 rockchip,bits = <5 3>;
1430 clocks = <&clk_cpll>, <&clk_gpll>, <&clk_gpll_div2>, <&clk_gpll_div3>, <&usb480m>;
1431 clock-output-names = "clk_vepu";
1433 #clock-init-cells = <1>;
1436 clk_vdpu_div: clk_vdpu_div {
1437 compatible = "rockchip,rk3188-div-con";
1438 rockchip,bits = <8 5>;
1439 clocks = <&clk_vdpu>;
1440 clock-output-names = "clk_vdpu";
1441 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
1443 rockchip,clkops-idx =
1444 <CLKOPS_RATE_MUX_DIV>;
1445 rockchip,flags = <CLK_SET_RATE_NO_REPARENT>;
1448 clk_vdpu: clk_vdpu_mux {
1449 compatible = "rockchip,rk3188-mux-con";
1450 rockchip,bits = <13 3>;
1451 clocks = <&clk_cpll>, <&clk_gpll>, <&clk_gpll_div2>, <&clk_gpll_div3>, <&usb480m>;
1452 clock-output-names = "clk_vdpu";
1454 #clock-init-cells = <1>;
1459 clk_sel_con34: sel-con@00cc {
1460 compatible = "rockchip,rk3188-selcon";
1462 #address-cells = <1>;
1465 clk_gpu_div: clk_gpu_div {
1466 compatible = "rockchip,rk3188-div-con";
1467 rockchip,bits = <0 5>;
1468 clocks = <&clk_gpu>;
1469 clock-output-names = "clk_gpu";
1470 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
1472 rockchip,clkops-idx =
1473 <CLKOPS_RATE_MUX_DIV>;
1474 rockchip,flags = <CLK_SET_RATE_PARENT_IN_ORDER>;
1477 clk_gpu: clk_gpu_mux {
1478 compatible = "rockchip,rk3188-mux-con";
1479 rockchip,bits = <5 3>;
1480 clocks = <&dummy_cpll>, <&clk_gpll>, <&clk_gpll_div2>, <&clk_gpll_div3>, <&usb480m>;
1481 clock-output-names = "clk_gpu";
1483 #clock-init-cells = <1>;
1486 clk_hevc_core_div: clk_hevc_core_div {
1487 compatible = "rockchip,rk3188-div-con";
1488 rockchip,bits = <8 5>;
1489 clocks = <&clk_hevc_core>;
1490 clock-output-names = "clk_hevc_core";
1491 rockchip,div-type = <CLK_DIVIDER_PLUS_ONE>;
1493 rockchip,clkops-idx =
1494 <CLKOPS_RATE_MUX_DIV>;
1495 rockchip,flags = <CLK_SET_RATE_NO_REPARENT>;
1498 clk_hevc_core: clk_hevc_core_mux {
1499 compatible = "rockchip,rk3188-mux-con";
1500 rockchip,bits = <13 3>;
1501 clocks = <&clk_cpll>, <&clk_gpll>, <&clk_gpll_div2>, <&clk_gpll_div3>, <&usb480m>;
1502 clock-output-names = "clk_hevc_core";
1504 #clock-init-cells = <1>;
1512 /* Gate control regs */
1514 compatible = "rockchip,rk-gate-cons";
1515 #address-cells = <1>;
1519 clk_gates0: gate-clk@00d0{
1520 compatible = "rockchip,rk3188-gate-clk";
1523 <&clk_core>, <&dummy>,
1524 <&dummy>, <&aclk_cpu>,
1526 <&aclk_cpu>, <&aclk_cpu>,
1527 <&dummy>, <&clk_core>,
1529 <&dummy>, <&clk_i2s_2ch_pll>,
1530 <&i2s_2ch_frac>, <&hclk_vio_pre>,
1532 <&aclk_cpu>, <&clk_i2s_2ch_out>,
1533 <&clk_i2s_2ch>, <&dummy>;
1535 clock-output-names =
1536 "pclk_dbg", "aclk_cpu", /*clk_cpu_cpll*/
1537 "reserved", "aclk_cpu_pre",
1539 "hclk_cpu_pre", "pclk_cpu_pre",
1540 "clk_core", "aclk_core_pre",
1542 "reserved", "clk_i2s_2ch_pll",
1543 "i2s_2ch_frac", "hclk_vio_pre",
1545 "clk_crypto", "clk_i2s_2ch_out",
1546 "clk_i2s_2ch", "clk_testout";
1547 rockchip,suspend-clkgating-setting=<0x11ff 0x0>;
1552 clk_gates1: gate-clk@00d4{
1553 compatible = "rockchip,rk3188-gate-clk";
1556 <&clk_cpll>, <&dummy>,
1557 <&dummy>, <&jtag_tck>,
1559 <&aclk_vio1_pre>, <&xin12m>,
1560 <&xin12m>, <&clk_mac_pll>,
1562 <&clk_uart0_pll>, <&uart0_frac>,
1563 <&clk_uart1_div>, <&uart1_frac>,
1565 <&clk_uart2_div>, <&uart2_frac>,
1566 <&clk_tsp>, <&dummy>;
1568 clock-output-names =
1569 "pclk_pmu_pre", "reserved",
1570 "reserved", "clk_jtag",
1572 "aclk_vio1_pre", "clk_otgphy0",
1573 "clk_otgphy1", "clk_mac_pll",
1575 "clk_uart0_pll", "uart0_frac",
1576 "clk_uart1_div", "uart1_frac",
1578 "clk_uart2_div", "uart2_frac",
1579 "clk_tsp", "reserved";
1581 rockchip,suspend-clkgating-setting=<0x000f 0x0>;
1585 clk_gates2: gate-clk@00d8 {
1586 compatible = "rockchip,rk3188-gate-clk";
1589 <&aclk_peri>, <&aclk_peri>,
1590 <&aclk_peri>, <&aclk_peri>,
1592 <&clk_mac_ref>, <&clk_mac_ref>,
1593 <&clk_mac_ref>, <&clk_mac_ref>,
1595 <&clk_saradc>, <&clk_spi0>,
1596 <&clk_spdif_pll>, <&clk_sdmmc0>,
1598 <&spdif_frac>, <&clk_sdio>,
1599 <&clk_emmc>, <&xin24m>;
1600 clock-output-names =
1601 "aclk_peri", "aclk_peri_pre",
1602 "hclk_peri_pre", "pclk_peri_pre",
1604 "clk_mac_ref", "clk_mac_refout",
1605 "clk_mac_rx", "clk_mac_tx",
1607 "clk_saradc", "clk_spi0",
1608 "clk_spdif_pll", "clk_sdmmc0",
1610 "spdif_frac", "clk_sdio",
1611 "clk_emmc", "clk_mipi_24m";
1612 rockchip,suspend-clkgating-setting=<0x000f 0x0>;
1617 clk_gates3: gate-clk@00dc {
1618 compatible = "rockchip,rk3188-gate-clk";
1621 <&aclk_vio0_pre>, <&dclk_lcdc0>,
1622 <&sclk_lcdc0>, <&pclkin_cif>,
1624 <&dclk_ebc>, <&hclk_cpu_pre>,
1625 <&hclk_peri_pre>, <&clk_cif_pll>,
1627 <&pclk_cpu_pre>, <&clk_vepu>,
1628 <&clk_hevc_core>, <&clk_vdpu>,
1630 <&hclk_vdpu>, <&clk_gpu>,
1631 <&aclk_peri>, <&clk_sfc>;
1633 clock-output-names =
1634 "aclk_vio0_pre", "dclk_lcdc0",
1635 "sclk_lcdc0", "pclkin_cif",
1637 "dclk_ebc", "g_hclk_crypto",
1638 "g_hclk_em_peri", "clk_cif_pll",
1640 "g_pclk_hdmi", "clk_vepu",
1641 "clk_hevc_core", "clk_vdpu",
1643 "hclk_vdpu", "clk_gpu",
1644 "g_hclk_gps", "clk_sfc";
1645 rockchip,suspend-clkgating-setting=<0x0060 0x0000>;
1650 clk_gates4: gate-clk@00e0{
1651 compatible = "rockchip,rk3188-gate-clk";
1654 <&hclk_peri_pre>, <&pclk_peri_pre>,
1655 <&aclk_peri>, <&aclk_peri>,
1657 <&clk_i2s_8ch_pll>, <&i2s_8ch_frac>,
1658 <&clk_i2s_8ch>, <&dummy>,
1661 <&aclk_cpu>, <&dummy>,
1663 <&aclk_cpu>, <&dummy>,
1666 clock-output-names =
1667 "g_hp_axi_matrix", "g_pp_axi_matrix",
1668 "g_aclk_cpu_peri", "g_ap_axi_matrix",
1670 "clk_i2s_8ch_pll", "i2s_8ch_frac",
1671 "clk_i2s_8ch", "reserved",
1673 "reserved", "reserved",
1674 "g_aclk_strc_sys", "reserved",
1676 /* Not use these ddr gates */
1677 "g_aclk_intmem", "reserved",
1678 "reserved", "reserved";
1680 rockchip,suspend-clkgating-setting = <0xff8f 0x0000>;
1684 clk_gates5: gate-clk@00e4 {
1685 compatible = "rockchip,rk3188-gate-clk";
1688 <&pclk_cpu_pre>, <&aclk_peri>,
1689 <&pclk_peri_pre>, <&dummy>,
1691 <&pclk_cpu_pre>, <&dummy>,
1692 <&hclk_cpu_pre>, <&pclk_cpu_pre>,
1694 <&dummy>, <&hclk_peri_pre>,
1695 <&hclk_peri_pre>, <&hclk_peri_pre>,
1697 <&dummy>, <&hclk_peri_pre>,
1698 <&pclk_cpu_pre>, <&dummy>;
1700 clock-output-names =
1701 "g_pclk_mipiphy", "g_aclk_dmac",
1702 "g_pclk_efuse", "reserved",
1704 "g_pclk_grf", "reserved",
1705 "g_hclk_rom", "g_pclk_ddrupctl",
1707 "reserved", "g_hclk_nandc",
1708 "g_hclk_sdmmc0", "g_hclk_sdio",
1710 "reserved", "g_hclk_otg0",
1711 "g_pclk_acodec", "reserved";
1713 rockchip,suspend-clkgating-setting = <0x00f0 0x0000>;
1718 clk_gates6: gate-clk@00e8 {
1719 compatible = "rockchip,rk3188-gate-clk";
1722 <&aclk_vio0_pre>, <&hclk_vio_pre>,
1725 <&hclk_vio_pre>, <&aclk_vio0_pre>,
1729 <&hclk_vio_pre>, <&aclk_vio0_pre>,
1731 <&hclk_vio_pre>, <&aclk_vio0_pre>,
1734 clock-output-names =
1735 "g_aclk_lcdc0", "g_hclk_lcdc0",
1736 "reserved", "reserved",
1738 "g_hclk_cif", "g_aclk_cif",
1739 "reserved", "reserved",
1741 "reserved", "reserved",
1742 "g_hclk_rga", "g_aclk_rga",
1744 "g_hclk_vio_bus", "g_aclk_vio",
1745 "reserved", "reserved";
1747 rockchip,suspend-clkgating-setting = <0x0000 0x0000>;
1752 clk_gates7: gate-clk@00ec {
1753 compatible = "rockchip,rk3188-gate-clk";
1756 <&hclk_peri_pre>, <&hclk_peri_pre>,
1757 <&hclk_peri_pre>, <&hclk_peri_pre>,
1759 <&hclk_peri_pre>, <&dummy>,
1760 <&dummy>, <&pclk_peri_pre>,
1763 <&pclk_peri_pre>, <&dummy>,
1765 <&pclk_peri_pre>, <&dummy>,
1766 <&pclk_peri_pre>, <&pclk_peri_pre>;
1768 clock-output-names =
1769 "g_hclk_emmc", "g_hclk_sfc",
1770 "g_hclk_i2s_2ch", "g_hclk_host",
1772 "g_hclk_i2s_8ch", "reserved",
1773 "reserved", "g_pclk_timer",
1775 "reserved", "reserved",
1776 "g_pclk_pwm", "reserved",
1778 "g_pclk_spi0", "reserved",
1779 "g_pclk_saradc", "g_pclk_wdt";
1781 rockchip,suspend-clkgating-setting = <0x8080 0x0000>;
1786 clk_gates8: gate-clk@00f0 {
1787 compatible = "rockchip,rk3188-gate-clk";
1790 <&pclk_peri_pre>, <&pclk_peri_pre>,
1791 <&pclk_peri_pre>, <&dummy>,
1793 <&pclk_peri_pre>, <&pclk_peri_pre>,
1794 <&pclk_peri_pre>, <&pclk_peri_pre>,
1796 <&dummy>, <&pclk_peri_pre>,
1797 <&pclk_peri_pre>, <&pclk_peri_pre>,
1799 <&pclk_peri_pre>, <&dummy>,
1802 clock-output-names =
1803 "g_pclk_uart0", "g_pclk_uart1",
1804 "g_pclk_uart2", "reserved",
1806 "g_pclk_i2c0", "g_pclk_i2c1",
1807 "g_pclk_i2c2", "g_pclk_i2c3",
1809 "reserved", "g_pclk_gpio0",
1810 "g_pclk_gpio1", "g_pclk_gpio2",
1812 "g_pclk_gpio3", "reserved",
1813 "reserved", "reserved";
1815 rockchip,suspend-clkgating-setting=<0xff0f 0x0000>;
1819 clk_gates9: gate-clk@00f4 {
1820 compatible = "rockchip,rk3188-gate-clk";
1824 <&pclk_pmu_pre>, <&pclk_pmu_pre>,
1826 <&dummy>, <&hclk_vio_pre>,
1827 <&hclk_vio_pre>, <&hclk_vio_pre>,
1829 <&aclk_vio1_pre>, <&hclk_vio_pre>,
1830 <&aclk_vio1_pre>, <&dummy>,
1832 <&pclk_peri_pre>, <&hclk_peri_pre>,
1833 <&hclk_peri_pre>, <&aclk_peri>;
1835 clock-output-names =
1836 "reserved", "reserved",
1837 "g_pclk_pmu", "g_pclk_pmu_noc",
1839 "reserved", "g_hclk_vio_h2p",
1840 "g_pclk_mipi", "g_hclk_iep",
1842 "g_aclk_iep", "g_hclk_ebc",
1843 "g_aclk_vio1_niu", "reserved",
1845 "g_pclk_sim_card", "g_hclk_usb_peri",
1846 "g_hclk_pe_arbi", "g_aclk_peri_niu";
1848 rockchip,suspend-clkgating-setting=<0xf00f 0x0>;
1853 clk_gates10: gate-clk@00f8 {
1854 compatible = "rockchip,rk3188-gate-clk";
1857 <&xin24m>, <&xin24m>,
1858 <&xin24m>, <&xin24m>,
1860 <&xin24m>, <&xin24m>,
1861 <&xin24m>, <&xin24m>,
1863 <&xin24m>, <&hclk_peri_pre>,
1864 <&aclk_peri>, <&pclk_peri_pre>,
1866 <&hclk_peri_pre>, <&clk_tsp_in>,
1867 <&hclk_peri_pre>, <&clk_nandc>;
1869 clock-output-names =
1870 "g_clk_pvtm_core", "g_clk_pvtm_gpu",
1871 "g_clk_pvtm_func", "clk_timer0",
1873 "clk_timer1", "clk_timer2",
1874 "clk_timer3", "clk_timer4",
1876 "clk_timer5", "g_hclk_spdif",
1877 "g_aclk_gmac", "g_pclk_gmac",
1879 "g_hclk_tsp", "g_clkin0_tsp",
1880 "g_hclk_usbhost", "clk_nandc";
1882 rockchip,suspend-clkgating-setting = <0x0000 0x0>; /* pwm logic vol */