• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2018 Amlogic, Inc. All rights reserved.
4 */
5
6#include <dt-bindings/phy/phy.h>
7#include <dt-bindings/gpio/gpio.h>
8#include <dt-bindings/clock/g12a-clkc.h>
9#include <dt-bindings/clock/g12a-aoclkc.h>
10#include <dt-bindings/interrupt-controller/irq.h>
11#include <dt-bindings/interrupt-controller/arm-gic.h>
12#include <dt-bindings/reset/amlogic,meson-g12a-reset.h>
13#include <dt-bindings/thermal/thermal.h>
14
15/ {
16	interrupt-parent = <&gic>;
17	#address-cells = <2>;
18	#size-cells = <2>;
19
20	chosen {
21		#address-cells = <2>;
22		#size-cells = <2>;
23		ranges;
24
25		simplefb_cvbs: framebuffer-cvbs {
26			compatible = "amlogic,simple-framebuffer",
27				     "simple-framebuffer";
28			amlogic,pipeline = "vpu-cvbs";
29			clocks = <&clkc CLKID_HDMI>,
30				 <&clkc CLKID_HTX_PCLK>,
31				 <&clkc CLKID_VPU_INTR>;
32			status = "disabled";
33		};
34
35		simplefb_hdmi: framebuffer-hdmi {
36			compatible = "amlogic,simple-framebuffer",
37				    "simple-framebuffer";
38			amlogic,pipeline = "vpu-hdmi";
39			clocks = <&clkc CLKID_HDMI>,
40				 <&clkc CLKID_HTX_PCLK>,
41				 <&clkc CLKID_VPU_INTR>;
42			status = "disabled";
43		};
44	};
45
46	efuse: efuse {
47		compatible = "amlogic,meson-gxbb-efuse";
48		clocks = <&clkc CLKID_EFUSE>;
49		#address-cells = <1>;
50		#size-cells = <1>;
51		read-only;
52		secure-monitor = <&sm>;
53	};
54
55	gpu_opp_table: opp-table-gpu {
56		compatible = "operating-points-v2";
57
58		opp-124999998 {
59			opp-hz = /bits/ 64 <124999998>;
60			opp-microvolt = <800000>;
61		};
62		opp-249999996 {
63			opp-hz = /bits/ 64 <249999996>;
64			opp-microvolt = <800000>;
65		};
66		opp-285714281 {
67			opp-hz = /bits/ 64 <285714281>;
68			opp-microvolt = <800000>;
69		};
70		opp-399999994 {
71			opp-hz = /bits/ 64 <399999994>;
72			opp-microvolt = <800000>;
73		};
74		opp-499999992 {
75			opp-hz = /bits/ 64 <499999992>;
76			opp-microvolt = <800000>;
77		};
78		opp-666666656 {
79			opp-hz = /bits/ 64 <666666656>;
80			opp-microvolt = <800000>;
81		};
82		opp-799999987 {
83			opp-hz = /bits/ 64 <799999987>;
84			opp-microvolt = <800000>;
85		};
86	};
87
88	psci {
89		compatible = "arm,psci-1.0";
90		method = "smc";
91	};
92
93	reserved-memory {
94		#address-cells = <2>;
95		#size-cells = <2>;
96		ranges;
97
98		/* 3 MiB reserved for ARM Trusted Firmware (BL31) */
99		secmon_reserved: secmon@5000000 {
100			reg = <0x0 0x05000000 0x0 0x300000>;
101			no-map;
102		};
103
104		/* 32 MiB reserved for ARM Trusted Firmware (BL32) */
105		secmon_reserved_bl32: secmon@5300000 {
106			reg = <0x0 0x05300000 0x0 0x2000000>;
107			no-map;
108		};
109
110		linux,cma {
111			compatible = "shared-dma-pool";
112			reusable;
113			size = <0x0 0x10000000>;
114			alignment = <0x0 0x400000>;
115			linux,cma-default;
116		};
117	};
118
119	sm: secure-monitor {
120		compatible = "amlogic,meson-gxbb-sm";
121	};
122
123	soc {
124		compatible = "simple-bus";
125		#address-cells = <2>;
126		#size-cells = <2>;
127		ranges;
128
129		pcie: pcie@fc000000 {
130			compatible = "amlogic,g12a-pcie", "snps,dw-pcie";
131			reg = <0x0 0xfc000000 0x0 0x400000
132			       0x0 0xff648000 0x0 0x2000
133			       0x0 0xfc400000 0x0 0x200000>;
134			reg-names = "elbi", "cfg", "config";
135			interrupts = <GIC_SPI 221 IRQ_TYPE_LEVEL_HIGH>;
136			#interrupt-cells = <1>;
137			interrupt-map-mask = <0 0 0 0>;
138			interrupt-map = <0 0 0 0 &gic GIC_SPI 223 IRQ_TYPE_LEVEL_HIGH>;
139			bus-range = <0x0 0xff>;
140			#address-cells = <3>;
141			#size-cells = <2>;
142			device_type = "pci";
143			ranges = <0x81000000 0 0 0x0 0xfc600000 0 0x00100000
144				  0x82000000 0 0xfc700000 0x0 0xfc700000 0 0x1900000>;
145
146			clocks = <&clkc CLKID_PCIE_PHY
147				  &clkc CLKID_PCIE_COMB
148				  &clkc CLKID_PCIE_PLL>;
149			clock-names = "general",
150				      "pclk",
151				      "port";
152			resets = <&reset RESET_PCIE_CTRL_A>,
153				 <&reset RESET_PCIE_APB>;
154			reset-names = "port",
155				      "apb";
156			num-lanes = <1>;
157			phys = <&usb3_pcie_phy PHY_TYPE_PCIE>;
158			phy-names = "pcie";
159			status = "disabled";
160		};
161
162		thermal-zones {
163			cpu_thermal: cpu-thermal {
164				polling-delay = <1000>;
165				polling-delay-passive = <100>;
166				thermal-sensors = <&cpu_temp>;
167
168				trips {
169					cpu_passive: cpu-passive {
170						temperature = <85000>; /* millicelsius */
171						hysteresis = <2000>; /* millicelsius */
172						type = "passive";
173					};
174
175					cpu_hot: cpu-hot {
176						temperature = <95000>; /* millicelsius */
177						hysteresis = <2000>; /* millicelsius */
178						type = "hot";
179					};
180
181					cpu_critical: cpu-critical {
182						temperature = <110000>; /* millicelsius */
183						hysteresis = <2000>; /* millicelsius */
184						type = "critical";
185					};
186				};
187			};
188
189			ddr_thermal: ddr-thermal {
190				polling-delay = <1000>;
191				polling-delay-passive = <100>;
192				thermal-sensors = <&ddr_temp>;
193
194				trips {
195					ddr_passive: ddr-passive {
196						temperature = <85000>; /* millicelsius */
197						hysteresis = <2000>; /* millicelsius */
198						type = "passive";
199					};
200
201					ddr_critical: ddr-critical {
202						temperature = <110000>; /* millicelsius */
203						hysteresis = <2000>; /* millicelsius */
204						type = "critical";
205					};
206				};
207
208				cooling-maps {
209					map {
210						trip = <&ddr_passive>;
211						cooling-device = <&mali THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
212					};
213				};
214			};
215		};
216
217		ethmac: ethernet@ff3f0000 {
218			compatible = "amlogic,meson-g12a-dwmac",
219				     "snps,dwmac-3.70a",
220				     "snps,dwmac";
221			reg = <0x0 0xff3f0000 0x0 0x10000>,
222			      <0x0 0xff634540 0x0 0x8>;
223			interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
224			interrupt-names = "macirq";
225			clocks = <&clkc CLKID_ETH>,
226				 <&clkc CLKID_FCLK_DIV2>,
227				 <&clkc CLKID_MPLL2>,
228				 <&clkc CLKID_FCLK_DIV2>;
229			clock-names = "stmmaceth", "clkin0", "clkin1",
230				      "timing-adjustment";
231			rx-fifo-depth = <4096>;
232			tx-fifo-depth = <2048>;
233			status = "disabled";
234
235			mdio0: mdio {
236				#address-cells = <1>;
237				#size-cells = <0>;
238				compatible = "snps,dwmac-mdio";
239			};
240		};
241
242		apb: bus@ff600000 {
243			compatible = "simple-bus";
244			reg = <0x0 0xff600000 0x0 0x200000>;
245			#address-cells = <2>;
246			#size-cells = <2>;
247			ranges = <0x0 0x0 0x0 0xff600000 0x0 0x200000>;
248
249			hdmi_tx: hdmi-tx@0 {
250				compatible = "amlogic,meson-g12a-dw-hdmi";
251				reg = <0x0 0x0 0x0 0x10000>;
252				interrupts = <GIC_SPI 57 IRQ_TYPE_EDGE_RISING>;
253				resets = <&reset RESET_HDMITX_CAPB3>,
254					 <&reset RESET_HDMITX_PHY>,
255					 <&reset RESET_HDMITX>;
256				reset-names = "hdmitx_apb", "hdmitx", "hdmitx_phy";
257				clocks = <&clkc CLKID_HDMI>,
258					 <&clkc CLKID_HTX_PCLK>,
259					 <&clkc CLKID_VPU_INTR>;
260				clock-names = "isfr", "iahb", "venci";
261				#address-cells = <1>;
262				#size-cells = <0>;
263				#sound-dai-cells = <0>;
264				status = "disabled";
265
266				/* VPU VENC Input */
267				hdmi_tx_venc_port: port@0 {
268					reg = <0>;
269
270					hdmi_tx_in: endpoint {
271						remote-endpoint = <&hdmi_tx_out>;
272					};
273				};
274
275				/* TMDS Output */
276				hdmi_tx_tmds_port: port@1 {
277					reg = <1>;
278				};
279			};
280
281			apb_efuse: bus@30000 {
282				compatible = "simple-bus";
283				reg = <0x0 0x30000 0x0 0x2000>;
284				#address-cells = <2>;
285				#size-cells = <2>;
286				ranges = <0x0 0x0 0x0 0x30000 0x0 0x2000>;
287
288				hwrng: rng@218 {
289					compatible = "amlogic,meson-rng";
290					reg = <0x0 0x218 0x0 0x4>;
291					clocks = <&clkc CLKID_RNG0>;
292					clock-names = "core";
293				};
294			};
295
296			acodec: audio-controller@32000 {
297				compatible = "amlogic,t9015";
298				reg = <0x0 0x32000 0x0 0x14>;
299				#sound-dai-cells = <0>;
300				sound-name-prefix = "ACODEC";
301				clocks = <&clkc CLKID_AUDIO_CODEC>;
302				clock-names = "pclk";
303				resets = <&reset RESET_AUDIO_CODEC>;
304				status = "disabled";
305			};
306
307			periphs: bus@34400 {
308				compatible = "simple-bus";
309				reg = <0x0 0x34400 0x0 0x400>;
310				#address-cells = <2>;
311				#size-cells = <2>;
312				ranges = <0x0 0x0 0x0 0x34400 0x0 0x400>;
313
314				periphs_pinctrl: pinctrl@40 {
315					compatible = "amlogic,meson-g12a-periphs-pinctrl";
316					#address-cells = <2>;
317					#size-cells = <2>;
318					ranges;
319
320					gpio: bank@40 {
321						reg = <0x0 0x40  0x0 0x4c>,
322						      <0x0 0xe8  0x0 0x18>,
323						      <0x0 0x120 0x0 0x18>,
324						      <0x0 0x2c0 0x0 0x40>,
325						      <0x0 0x340 0x0 0x1c>;
326						reg-names = "gpio",
327							    "pull",
328							    "pull-enable",
329							    "mux",
330							    "ds";
331						gpio-controller;
332						#gpio-cells = <2>;
333						gpio-ranges = <&periphs_pinctrl 0 0 86>;
334					};
335
336					cec_ao_a_h_pins: cec_ao_a_h {
337						mux {
338							groups = "cec_ao_a_h";
339							function = "cec_ao_a_h";
340							bias-disable;
341						};
342					};
343
344					cec_ao_b_h_pins: cec_ao_b_h {
345						mux {
346							groups = "cec_ao_b_h";
347							function = "cec_ao_b_h";
348							bias-disable;
349						};
350					};
351
352					emmc_ctrl_pins: emmc-ctrl {
353						mux-0 {
354							groups = "emmc_cmd";
355							function = "emmc";
356							bias-pull-up;
357							drive-strength-microamp = <4000>;
358						};
359
360						mux-1 {
361							groups = "emmc_clk";
362							function = "emmc";
363							bias-disable;
364							drive-strength-microamp = <4000>;
365						};
366					};
367
368					emmc_data_4b_pins: emmc-data-4b {
369						mux-0 {
370							groups = "emmc_nand_d0",
371								 "emmc_nand_d1",
372								 "emmc_nand_d2",
373								 "emmc_nand_d3";
374							function = "emmc";
375							bias-pull-up;
376							drive-strength-microamp = <4000>;
377						};
378					};
379
380					emmc_data_8b_pins: emmc-data-8b {
381						mux-0 {
382							groups = "emmc_nand_d0",
383								 "emmc_nand_d1",
384								 "emmc_nand_d2",
385								 "emmc_nand_d3",
386								 "emmc_nand_d4",
387								 "emmc_nand_d5",
388								 "emmc_nand_d6",
389								 "emmc_nand_d7";
390							function = "emmc";
391							bias-pull-up;
392							drive-strength-microamp = <4000>;
393						};
394					};
395
396					emmc_ds_pins: emmc-ds {
397						mux {
398							groups = "emmc_nand_ds";
399							function = "emmc";
400							bias-pull-down;
401							drive-strength-microamp = <4000>;
402						};
403					};
404
405					emmc_clk_gate_pins: emmc_clk_gate {
406						mux {
407							groups = "BOOT_8";
408							function = "gpio_periphs";
409							bias-pull-down;
410							drive-strength-microamp = <4000>;
411						};
412					};
413
414					hdmitx_ddc_pins: hdmitx_ddc {
415						mux {
416							groups = "hdmitx_sda",
417								 "hdmitx_sck";
418							function = "hdmitx";
419							bias-disable;
420							drive-strength-microamp = <4000>;
421						};
422					};
423
424					hdmitx_hpd_pins: hdmitx_hpd {
425						mux {
426							groups = "hdmitx_hpd_in";
427							function = "hdmitx";
428							bias-disable;
429						};
430					};
431
432
433					i2c0_sda_c_pins: i2c0-sda-c {
434						mux {
435							groups = "i2c0_sda_c";
436							function = "i2c0";
437							bias-disable;
438							drive-strength-microamp = <3000>;
439
440						};
441					};
442
443					i2c0_sck_c_pins: i2c0-sck-c {
444						mux {
445							groups = "i2c0_sck_c";
446							function = "i2c0";
447							bias-disable;
448							drive-strength-microamp = <3000>;
449						};
450					};
451
452					i2c0_sda_z0_pins: i2c0-sda-z0 {
453						mux {
454							groups = "i2c0_sda_z0";
455							function = "i2c0";
456							bias-disable;
457							drive-strength-microamp = <3000>;
458						};
459					};
460
461					i2c0_sck_z1_pins: i2c0-sck-z1 {
462						mux {
463							groups = "i2c0_sck_z1";
464							function = "i2c0";
465							bias-disable;
466							drive-strength-microamp = <3000>;
467						};
468					};
469
470					i2c0_sda_z7_pins: i2c0-sda-z7 {
471						mux {
472							groups = "i2c0_sda_z7";
473							function = "i2c0";
474							bias-disable;
475							drive-strength-microamp = <3000>;
476						};
477					};
478
479					i2c0_sda_z8_pins: i2c0-sda-z8 {
480						mux {
481							groups = "i2c0_sda_z8";
482							function = "i2c0";
483							bias-disable;
484							drive-strength-microamp = <3000>;
485						};
486					};
487
488					i2c1_sda_x_pins: i2c1-sda-x {
489						mux {
490							groups = "i2c1_sda_x";
491							function = "i2c1";
492							bias-disable;
493							drive-strength-microamp = <3000>;
494						};
495					};
496
497					i2c1_sck_x_pins: i2c1-sck-x {
498						mux {
499							groups = "i2c1_sck_x";
500							function = "i2c1";
501							bias-disable;
502							drive-strength-microamp = <3000>;
503						};
504					};
505
506					i2c1_sda_h2_pins: i2c1-sda-h2 {
507						mux {
508							groups = "i2c1_sda_h2";
509							function = "i2c1";
510							bias-disable;
511							drive-strength-microamp = <3000>;
512						};
513					};
514
515					i2c1_sck_h3_pins: i2c1-sck-h3 {
516						mux {
517							groups = "i2c1_sck_h3";
518							function = "i2c1";
519							bias-disable;
520							drive-strength-microamp = <3000>;
521						};
522					};
523
524					i2c1_sda_h6_pins: i2c1-sda-h6 {
525						mux {
526							groups = "i2c1_sda_h6";
527							function = "i2c1";
528							bias-disable;
529							drive-strength-microamp = <3000>;
530						};
531					};
532
533					i2c1_sck_h7_pins: i2c1-sck-h7 {
534						mux {
535							groups = "i2c1_sck_h7";
536							function = "i2c1";
537							bias-disable;
538							drive-strength-microamp = <3000>;
539						};
540					};
541
542					i2c2_sda_x_pins: i2c2-sda-x {
543						mux {
544							groups = "i2c2_sda_x";
545							function = "i2c2";
546							bias-disable;
547							drive-strength-microamp = <3000>;
548						};
549					};
550
551					i2c2_sck_x_pins: i2c2-sck-x {
552						mux {
553							groups = "i2c2_sck_x";
554							function = "i2c2";
555							bias-disable;
556							drive-strength-microamp = <3000>;
557						};
558					};
559
560					i2c2_sda_z_pins: i2c2-sda-z {
561						mux {
562							groups = "i2c2_sda_z";
563							function = "i2c2";
564							bias-disable;
565							drive-strength-microamp = <3000>;
566						};
567					};
568
569					i2c2_sck_z_pins: i2c2-sck-z {
570						mux {
571							groups = "i2c2_sck_z";
572							function = "i2c2";
573							bias-disable;
574							drive-strength-microamp = <3000>;
575						};
576					};
577
578					i2c3_sda_h_pins: i2c3-sda-h {
579						mux {
580							groups = "i2c3_sda_h";
581							function = "i2c3";
582							bias-disable;
583							drive-strength-microamp = <3000>;
584						};
585					};
586
587					i2c3_sck_h_pins: i2c3-sck-h {
588						mux {
589							groups = "i2c3_sck_h";
590							function = "i2c3";
591							bias-disable;
592							drive-strength-microamp = <3000>;
593						};
594					};
595
596					i2c3_sda_a_pins: i2c3-sda-a {
597						mux {
598							groups = "i2c3_sda_a";
599							function = "i2c3";
600							bias-disable;
601							drive-strength-microamp = <3000>;
602						};
603					};
604
605					i2c3_sck_a_pins: i2c3-sck-a {
606						mux {
607							groups = "i2c3_sck_a";
608							function = "i2c3";
609							bias-disable;
610							drive-strength-microamp = <3000>;
611						};
612					};
613
614					mclk0_a_pins: mclk0-a {
615						mux {
616							groups = "mclk0_a";
617							function = "mclk0";
618							bias-disable;
619							drive-strength-microamp = <3000>;
620						};
621					};
622
623					mclk1_a_pins: mclk1-a {
624						mux {
625							groups = "mclk1_a";
626							function = "mclk1";
627							bias-disable;
628							drive-strength-microamp = <3000>;
629						};
630					};
631
632					mclk1_x_pins: mclk1-x {
633						mux {
634							groups = "mclk1_x";
635							function = "mclk1";
636							bias-disable;
637							drive-strength-microamp = <3000>;
638						};
639					};
640
641					mclk1_z_pins: mclk1-z {
642						mux {
643							groups = "mclk1_z";
644							function = "mclk1";
645							bias-disable;
646							drive-strength-microamp = <3000>;
647						};
648					};
649
650					nor_pins: nor {
651						mux {
652							groups = "nor_d",
653							       "nor_q",
654							       "nor_c",
655							       "nor_cs";
656							function = "nor";
657							bias-disable;
658						};
659					};
660
661					pdm_din0_a_pins: pdm-din0-a {
662						mux {
663							groups = "pdm_din0_a";
664							function = "pdm";
665							bias-disable;
666						};
667					};
668
669					pdm_din0_c_pins: pdm-din0-c {
670						mux {
671							groups = "pdm_din0_c";
672							function = "pdm";
673							bias-disable;
674						};
675					};
676
677					pdm_din0_x_pins: pdm-din0-x {
678						mux {
679							groups = "pdm_din0_x";
680							function = "pdm";
681							bias-disable;
682						};
683					};
684
685					pdm_din0_z_pins: pdm-din0-z {
686						mux {
687							groups = "pdm_din0_z";
688							function = "pdm";
689							bias-disable;
690						};
691					};
692
693					pdm_din1_a_pins: pdm-din1-a {
694						mux {
695							groups = "pdm_din1_a";
696							function = "pdm";
697							bias-disable;
698						};
699					};
700
701					pdm_din1_c_pins: pdm-din1-c {
702						mux {
703							groups = "pdm_din1_c";
704							function = "pdm";
705							bias-disable;
706						};
707					};
708
709					pdm_din1_x_pins: pdm-din1-x {
710						mux {
711							groups = "pdm_din1_x";
712							function = "pdm";
713							bias-disable;
714						};
715					};
716
717					pdm_din1_z_pins: pdm-din1-z {
718						mux {
719							groups = "pdm_din1_z";
720							function = "pdm";
721							bias-disable;
722						};
723					};
724
725					pdm_din2_a_pins: pdm-din2-a {
726						mux {
727							groups = "pdm_din2_a";
728							function = "pdm";
729							bias-disable;
730						};
731					};
732
733					pdm_din2_c_pins: pdm-din2-c {
734						mux {
735							groups = "pdm_din2_c";
736							function = "pdm";
737							bias-disable;
738						};
739					};
740
741					pdm_din2_x_pins: pdm-din2-x {
742						mux {
743							groups = "pdm_din2_x";
744							function = "pdm";
745							bias-disable;
746						};
747					};
748
749					pdm_din2_z_pins: pdm-din2-z {
750						mux {
751							groups = "pdm_din2_z";
752							function = "pdm";
753							bias-disable;
754						};
755					};
756
757					pdm_din3_a_pins: pdm-din3-a {
758						mux {
759							groups = "pdm_din3_a";
760							function = "pdm";
761							bias-disable;
762						};
763					};
764
765					pdm_din3_c_pins: pdm-din3-c {
766						mux {
767							groups = "pdm_din3_c";
768							function = "pdm";
769							bias-disable;
770						};
771					};
772
773					pdm_din3_x_pins: pdm-din3-x {
774						mux {
775							groups = "pdm_din3_x";
776							function = "pdm";
777							bias-disable;
778						};
779					};
780
781					pdm_din3_z_pins: pdm-din3-z {
782						mux {
783							groups = "pdm_din3_z";
784							function = "pdm";
785							bias-disable;
786						};
787					};
788
789					pdm_dclk_a_pins: pdm-dclk-a {
790						mux {
791							groups = "pdm_dclk_a";
792							function = "pdm";
793							bias-disable;
794							drive-strength-microamp = <500>;
795						};
796					};
797
798					pdm_dclk_c_pins: pdm-dclk-c {
799						mux {
800							groups = "pdm_dclk_c";
801							function = "pdm";
802							bias-disable;
803							drive-strength-microamp = <500>;
804						};
805					};
806
807					pdm_dclk_x_pins: pdm-dclk-x {
808						mux {
809							groups = "pdm_dclk_x";
810							function = "pdm";
811							bias-disable;
812							drive-strength-microamp = <500>;
813						};
814					};
815
816					pdm_dclk_z_pins: pdm-dclk-z {
817						mux {
818							groups = "pdm_dclk_z";
819							function = "pdm";
820							bias-disable;
821							drive-strength-microamp = <500>;
822						};
823					};
824
825					pwm_a_pins: pwm-a {
826						mux {
827							groups = "pwm_a";
828							function = "pwm_a";
829							bias-disable;
830						};
831					};
832
833					pwm_b_x7_pins: pwm-b-x7 {
834						mux {
835							groups = "pwm_b_x7";
836							function = "pwm_b";
837							bias-disable;
838						};
839					};
840
841					pwm_b_x19_pins: pwm-b-x19 {
842						mux {
843							groups = "pwm_b_x19";
844							function = "pwm_b";
845							bias-disable;
846						};
847					};
848
849					pwm_c_c_pins: pwm-c-c {
850						mux {
851							groups = "pwm_c_c";
852							function = "pwm_c";
853							bias-disable;
854						};
855					};
856
857					pwm_c_x5_pins: pwm-c-x5 {
858						mux {
859							groups = "pwm_c_x5";
860							function = "pwm_c";
861							bias-disable;
862						};
863					};
864
865					pwm_c_x8_pins: pwm-c-x8 {
866						mux {
867							groups = "pwm_c_x8";
868							function = "pwm_c";
869							bias-disable;
870						};
871					};
872
873					pwm_d_x3_pins: pwm-d-x3 {
874						mux {
875							groups = "pwm_d_x3";
876							function = "pwm_d";
877							bias-disable;
878						};
879					};
880
881					pwm_d_x6_pins: pwm-d-x6 {
882						mux {
883							groups = "pwm_d_x6";
884							function = "pwm_d";
885							bias-disable;
886						};
887					};
888
889					pwm_e_pins: pwm-e {
890						mux {
891							groups = "pwm_e";
892							function = "pwm_e";
893							bias-disable;
894						};
895					};
896
897					pwm_f_x_pins: pwm-f-x {
898						mux {
899							groups = "pwm_f_x";
900							function = "pwm_f";
901							bias-disable;
902						};
903					};
904
905					pwm_f_h_pins: pwm-f-h {
906						mux {
907							groups = "pwm_f_h";
908							function = "pwm_f";
909							bias-disable;
910						};
911					};
912
913					sdcard_c_pins: sdcard_c {
914						mux-0 {
915							groups = "sdcard_d0_c",
916								 "sdcard_d1_c",
917								 "sdcard_d2_c",
918								 "sdcard_d3_c",
919								 "sdcard_cmd_c";
920							function = "sdcard";
921							bias-pull-up;
922							drive-strength-microamp = <4000>;
923						};
924
925						mux-1 {
926							groups = "sdcard_clk_c";
927							function = "sdcard";
928							bias-disable;
929							drive-strength-microamp = <4000>;
930						};
931					};
932
933					sdcard_clk_gate_c_pins: sdcard_clk_gate_c {
934						mux {
935							groups = "GPIOC_4";
936							function = "gpio_periphs";
937							bias-pull-down;
938							drive-strength-microamp = <4000>;
939						};
940					};
941
942					sdcard_z_pins: sdcard_z {
943						mux-0 {
944							groups = "sdcard_d0_z",
945								 "sdcard_d1_z",
946								 "sdcard_d2_z",
947								 "sdcard_d3_z",
948								 "sdcard_cmd_z";
949							function = "sdcard";
950							bias-pull-up;
951							drive-strength-microamp = <4000>;
952						};
953
954						mux-1 {
955							groups = "sdcard_clk_z";
956							function = "sdcard";
957							bias-disable;
958							drive-strength-microamp = <4000>;
959						};
960					};
961
962					sdcard_clk_gate_z_pins: sdcard_clk_gate_z {
963						mux {
964							groups = "GPIOZ_6";
965							function = "gpio_periphs";
966							bias-pull-down;
967							drive-strength-microamp = <4000>;
968						};
969					};
970
971					sdio_pins: sdio {
972						mux {
973							groups = "sdio_d0",
974								 "sdio_d1",
975								 "sdio_d2",
976								 "sdio_d3",
977								 "sdio_clk",
978								 "sdio_cmd";
979							function = "sdio";
980							bias-disable;
981							drive-strength-microamp = <4000>;
982						};
983					};
984
985					sdio_clk_gate_pins: sdio_clk_gate {
986						mux {
987							groups = "GPIOX_4";
988							function = "gpio_periphs";
989							bias-pull-down;
990							drive-strength-microamp = <4000>;
991						};
992					};
993
994					spdif_in_a10_pins: spdif-in-a10 {
995						mux {
996							groups = "spdif_in_a10";
997							function = "spdif_in";
998							bias-disable;
999						};
1000					};
1001
1002					spdif_in_a12_pins: spdif-in-a12 {
1003						mux {
1004							groups = "spdif_in_a12";
1005							function = "spdif_in";
1006							bias-disable;
1007						};
1008					};
1009
1010					spdif_in_h_pins: spdif-in-h {
1011						mux {
1012							groups = "spdif_in_h";
1013							function = "spdif_in";
1014							bias-disable;
1015						};
1016					};
1017
1018					spdif_out_h_pins: spdif-out-h {
1019						mux {
1020							groups = "spdif_out_h";
1021							function = "spdif_out";
1022							drive-strength-microamp = <500>;
1023							bias-disable;
1024						};
1025					};
1026
1027					spdif_out_a11_pins: spdif-out-a11 {
1028						mux {
1029							groups = "spdif_out_a11";
1030							function = "spdif_out";
1031							drive-strength-microamp = <500>;
1032							bias-disable;
1033						};
1034					};
1035
1036					spdif_out_a13_pins: spdif-out-a13 {
1037						mux {
1038							groups = "spdif_out_a13";
1039							function = "spdif_out";
1040							drive-strength-microamp = <500>;
1041							bias-disable;
1042						};
1043					};
1044
1045					spicc0_x_pins: spicc0-x {
1046						mux {
1047							groups = "spi0_mosi_x",
1048							       "spi0_miso_x",
1049							       "spi0_clk_x";
1050							function = "spi0";
1051							drive-strength-microamp = <4000>;
1052							bias-disable;
1053						};
1054					};
1055
1056					spicc0_ss0_x_pins: spicc0-ss0-x {
1057						mux {
1058							groups = "spi0_ss0_x";
1059							function = "spi0";
1060							drive-strength-microamp = <4000>;
1061							bias-disable;
1062						};
1063					};
1064
1065					spicc0_c_pins: spicc0-c {
1066						mux {
1067							groups = "spi0_mosi_c",
1068							       "spi0_miso_c",
1069							       "spi0_ss0_c",
1070							       "spi0_clk_c";
1071							function = "spi0";
1072							drive-strength-microamp = <4000>;
1073							bias-disable;
1074						};
1075					};
1076
1077					spicc1_pins: spicc1 {
1078						mux {
1079							groups = "spi1_mosi",
1080							       "spi1_miso",
1081							       "spi1_clk";
1082							function = "spi1";
1083							drive-strength-microamp = <4000>;
1084						};
1085					};
1086
1087					spicc1_ss0_pins: spicc1-ss0 {
1088						mux {
1089							groups = "spi1_ss0";
1090							function = "spi1";
1091							drive-strength-microamp = <4000>;
1092							bias-disable;
1093						};
1094					};
1095
1096					tdm_a_din0_pins: tdm-a-din0 {
1097						mux {
1098							groups = "tdm_a_din0";
1099							function = "tdm_a";
1100							bias-disable;
1101						};
1102					};
1103
1104
1105					tdm_a_din1_pins: tdm-a-din1 {
1106						mux {
1107							groups = "tdm_a_din1";
1108							function = "tdm_a";
1109							bias-disable;
1110						};
1111					};
1112
1113					tdm_a_dout0_pins: tdm-a-dout0 {
1114						mux {
1115							groups = "tdm_a_dout0";
1116							function = "tdm_a";
1117							bias-disable;
1118							drive-strength-microamp = <3000>;
1119						};
1120					};
1121
1122					tdm_a_dout1_pins: tdm-a-dout1 {
1123						mux {
1124							groups = "tdm_a_dout1";
1125							function = "tdm_a";
1126							bias-disable;
1127							drive-strength-microamp = <3000>;
1128						};
1129					};
1130
1131					tdm_a_fs_pins: tdm-a-fs {
1132						mux {
1133							groups = "tdm_a_fs";
1134							function = "tdm_a";
1135							bias-disable;
1136							drive-strength-microamp = <3000>;
1137						};
1138					};
1139
1140					tdm_a_sclk_pins: tdm-a-sclk {
1141						mux {
1142							groups = "tdm_a_sclk";
1143							function = "tdm_a";
1144							bias-disable;
1145							drive-strength-microamp = <3000>;
1146						};
1147					};
1148
1149					tdm_a_slv_fs_pins: tdm-a-slv-fs {
1150						mux {
1151							groups = "tdm_a_slv_fs";
1152							function = "tdm_a";
1153							bias-disable;
1154						};
1155					};
1156
1157
1158					tdm_a_slv_sclk_pins: tdm-a-slv-sclk {
1159						mux {
1160							groups = "tdm_a_slv_sclk";
1161							function = "tdm_a";
1162							bias-disable;
1163						};
1164					};
1165
1166					tdm_b_din0_pins: tdm-b-din0 {
1167						mux {
1168							groups = "tdm_b_din0";
1169							function = "tdm_b";
1170							bias-disable;
1171						};
1172					};
1173
1174					tdm_b_din1_pins: tdm-b-din1 {
1175						mux {
1176							groups = "tdm_b_din1";
1177							function = "tdm_b";
1178							bias-disable;
1179						};
1180					};
1181
1182					tdm_b_din2_pins: tdm-b-din2 {
1183						mux {
1184							groups = "tdm_b_din2";
1185							function = "tdm_b";
1186							bias-disable;
1187						};
1188					};
1189
1190					tdm_b_din3_a_pins: tdm-b-din3-a {
1191						mux {
1192							groups = "tdm_b_din3_a";
1193							function = "tdm_b";
1194							bias-disable;
1195						};
1196					};
1197
1198					tdm_b_din3_h_pins: tdm-b-din3-h {
1199						mux {
1200							groups = "tdm_b_din3_h";
1201							function = "tdm_b";
1202							bias-disable;
1203						};
1204					};
1205
1206					tdm_b_dout0_pins: tdm-b-dout0 {
1207						mux {
1208							groups = "tdm_b_dout0";
1209							function = "tdm_b";
1210							bias-disable;
1211							drive-strength-microamp = <3000>;
1212						};
1213					};
1214
1215					tdm_b_dout1_pins: tdm-b-dout1 {
1216						mux {
1217							groups = "tdm_b_dout1";
1218							function = "tdm_b";
1219							bias-disable;
1220							drive-strength-microamp = <3000>;
1221						};
1222					};
1223
1224					tdm_b_dout2_pins: tdm-b-dout2 {
1225						mux {
1226							groups = "tdm_b_dout2";
1227							function = "tdm_b";
1228							bias-disable;
1229							drive-strength-microamp = <3000>;
1230						};
1231					};
1232
1233					tdm_b_dout3_a_pins: tdm-b-dout3-a {
1234						mux {
1235							groups = "tdm_b_dout3_a";
1236							function = "tdm_b";
1237							bias-disable;
1238							drive-strength-microamp = <3000>;
1239						};
1240					};
1241
1242					tdm_b_dout3_h_pins: tdm-b-dout3-h {
1243						mux {
1244							groups = "tdm_b_dout3_h";
1245							function = "tdm_b";
1246							bias-disable;
1247							drive-strength-microamp = <3000>;
1248						};
1249					};
1250
1251					tdm_b_fs_pins: tdm-b-fs {
1252						mux {
1253							groups = "tdm_b_fs";
1254							function = "tdm_b";
1255							bias-disable;
1256							drive-strength-microamp = <3000>;
1257						};
1258					};
1259
1260					tdm_b_sclk_pins: tdm-b-sclk {
1261						mux {
1262							groups = "tdm_b_sclk";
1263							function = "tdm_b";
1264							bias-disable;
1265							drive-strength-microamp = <3000>;
1266						};
1267					};
1268
1269					tdm_b_slv_fs_pins: tdm-b-slv-fs {
1270						mux {
1271							groups = "tdm_b_slv_fs";
1272							function = "tdm_b";
1273							bias-disable;
1274						};
1275					};
1276
1277					tdm_b_slv_sclk_pins: tdm-b-slv-sclk {
1278						mux {
1279							groups = "tdm_b_slv_sclk";
1280							function = "tdm_b";
1281							bias-disable;
1282						};
1283					};
1284
1285					tdm_c_din0_a_pins: tdm-c-din0-a {
1286						mux {
1287							groups = "tdm_c_din0_a";
1288							function = "tdm_c";
1289							bias-disable;
1290						};
1291					};
1292
1293					tdm_c_din0_z_pins: tdm-c-din0-z {
1294						mux {
1295							groups = "tdm_c_din0_z";
1296							function = "tdm_c";
1297							bias-disable;
1298						};
1299					};
1300
1301					tdm_c_din1_a_pins: tdm-c-din1-a {
1302						mux {
1303							groups = "tdm_c_din1_a";
1304							function = "tdm_c";
1305							bias-disable;
1306						};
1307					};
1308
1309					tdm_c_din1_z_pins: tdm-c-din1-z {
1310						mux {
1311							groups = "tdm_c_din1_z";
1312							function = "tdm_c";
1313							bias-disable;
1314						};
1315					};
1316
1317					tdm_c_din2_a_pins: tdm-c-din2-a {
1318						mux {
1319							groups = "tdm_c_din2_a";
1320							function = "tdm_c";
1321							bias-disable;
1322						};
1323					};
1324
1325					eth_leds_pins: eth-leds {
1326						mux {
1327							groups = "eth_link_led",
1328								 "eth_act_led";
1329							function = "eth";
1330							bias-disable;
1331						};
1332					};
1333
1334					eth_pins: eth {
1335						mux {
1336							groups = "eth_mdio",
1337								 "eth_mdc",
1338								 "eth_rgmii_rx_clk",
1339								 "eth_rx_dv",
1340								 "eth_rxd0",
1341								 "eth_rxd1",
1342								 "eth_txen",
1343								 "eth_txd0",
1344								 "eth_txd1";
1345							function = "eth";
1346							drive-strength-microamp = <4000>;
1347							bias-disable;
1348						};
1349					};
1350
1351					eth_rgmii_pins: eth-rgmii {
1352						mux {
1353							groups = "eth_rxd2_rgmii",
1354								 "eth_rxd3_rgmii",
1355								 "eth_rgmii_tx_clk",
1356								 "eth_txd2_rgmii",
1357								 "eth_txd3_rgmii";
1358							function = "eth";
1359							drive-strength-microamp = <4000>;
1360							bias-disable;
1361						};
1362					};
1363
1364					tdm_c_din2_z_pins: tdm-c-din2-z {
1365						mux {
1366							groups = "tdm_c_din2_z";
1367							function = "tdm_c";
1368							bias-disable;
1369						};
1370					};
1371
1372					tdm_c_din3_a_pins: tdm-c-din3-a {
1373						mux {
1374							groups = "tdm_c_din3_a";
1375							function = "tdm_c";
1376							bias-disable;
1377						};
1378					};
1379
1380					tdm_c_din3_z_pins: tdm-c-din3-z {
1381						mux {
1382							groups = "tdm_c_din3_z";
1383							function = "tdm_c";
1384							bias-disable;
1385						};
1386					};
1387
1388					tdm_c_dout0_a_pins: tdm-c-dout0-a {
1389						mux {
1390							groups = "tdm_c_dout0_a";
1391							function = "tdm_c";
1392							bias-disable;
1393							drive-strength-microamp = <3000>;
1394						};
1395					};
1396
1397					tdm_c_dout0_z_pins: tdm-c-dout0-z {
1398						mux {
1399							groups = "tdm_c_dout0_z";
1400							function = "tdm_c";
1401							bias-disable;
1402							drive-strength-microamp = <3000>;
1403						};
1404					};
1405
1406					tdm_c_dout1_a_pins: tdm-c-dout1-a {
1407						mux {
1408							groups = "tdm_c_dout1_a";
1409							function = "tdm_c";
1410							bias-disable;
1411							drive-strength-microamp = <3000>;
1412						};
1413					};
1414
1415					tdm_c_dout1_z_pins: tdm-c-dout1-z {
1416						mux {
1417							groups = "tdm_c_dout1_z";
1418							function = "tdm_c";
1419							bias-disable;
1420							drive-strength-microamp = <3000>;
1421						};
1422					};
1423
1424					tdm_c_dout2_a_pins: tdm-c-dout2-a {
1425						mux {
1426							groups = "tdm_c_dout2_a";
1427							function = "tdm_c";
1428							bias-disable;
1429							drive-strength-microamp = <3000>;
1430						};
1431					};
1432
1433					tdm_c_dout2_z_pins: tdm-c-dout2-z {
1434						mux {
1435							groups = "tdm_c_dout2_z";
1436							function = "tdm_c";
1437							bias-disable;
1438							drive-strength-microamp = <3000>;
1439						};
1440					};
1441
1442					tdm_c_dout3_a_pins: tdm-c-dout3-a {
1443						mux {
1444							groups = "tdm_c_dout3_a";
1445							function = "tdm_c";
1446							bias-disable;
1447							drive-strength-microamp = <3000>;
1448						};
1449					};
1450
1451					tdm_c_dout3_z_pins: tdm-c-dout3-z {
1452						mux {
1453							groups = "tdm_c_dout3_z";
1454							function = "tdm_c";
1455							bias-disable;
1456							drive-strength-microamp = <3000>;
1457						};
1458					};
1459
1460					tdm_c_fs_a_pins: tdm-c-fs-a {
1461						mux {
1462							groups = "tdm_c_fs_a";
1463							function = "tdm_c";
1464							bias-disable;
1465							drive-strength-microamp = <3000>;
1466						};
1467					};
1468
1469					tdm_c_fs_z_pins: tdm-c-fs-z {
1470						mux {
1471							groups = "tdm_c_fs_z";
1472							function = "tdm_c";
1473							bias-disable;
1474							drive-strength-microamp = <3000>;
1475						};
1476					};
1477
1478					tdm_c_sclk_a_pins: tdm-c-sclk-a {
1479						mux {
1480							groups = "tdm_c_sclk_a";
1481							function = "tdm_c";
1482							bias-disable;
1483							drive-strength-microamp = <3000>;
1484						};
1485					};
1486
1487					tdm_c_sclk_z_pins: tdm-c-sclk-z {
1488						mux {
1489							groups = "tdm_c_sclk_z";
1490							function = "tdm_c";
1491							bias-disable;
1492							drive-strength-microamp = <3000>;
1493						};
1494					};
1495
1496					tdm_c_slv_fs_a_pins: tdm-c-slv-fs-a {
1497						mux {
1498							groups = "tdm_c_slv_fs_a";
1499							function = "tdm_c";
1500							bias-disable;
1501						};
1502					};
1503
1504					tdm_c_slv_fs_z_pins: tdm-c-slv-fs-z {
1505						mux {
1506							groups = "tdm_c_slv_fs_z";
1507							function = "tdm_c";
1508							bias-disable;
1509						};
1510					};
1511
1512					tdm_c_slv_sclk_a_pins: tdm-c-slv-sclk-a {
1513						mux {
1514							groups = "tdm_c_slv_sclk_a";
1515							function = "tdm_c";
1516							bias-disable;
1517						};
1518					};
1519
1520					tdm_c_slv_sclk_z_pins: tdm-c-slv-sclk-z {
1521						mux {
1522							groups = "tdm_c_slv_sclk_z";
1523							function = "tdm_c";
1524							bias-disable;
1525						};
1526					};
1527
1528					uart_a_pins: uart-a {
1529						mux {
1530							groups = "uart_a_tx",
1531								 "uart_a_rx";
1532							function = "uart_a";
1533							bias-disable;
1534						};
1535					};
1536
1537					uart_a_cts_rts_pins: uart-a-cts-rts {
1538						mux {
1539							groups = "uart_a_cts",
1540								 "uart_a_rts";
1541							function = "uart_a";
1542							bias-disable;
1543						};
1544					};
1545
1546					uart_b_pins: uart-b {
1547						mux {
1548							groups = "uart_b_tx",
1549								 "uart_b_rx";
1550							function = "uart_b";
1551							bias-disable;
1552						};
1553					};
1554
1555					uart_c_pins: uart-c {
1556						mux {
1557							groups = "uart_c_tx",
1558								 "uart_c_rx";
1559							function = "uart_c";
1560							bias-disable;
1561						};
1562					};
1563
1564					uart_c_cts_rts_pins: uart-c-cts-rts {
1565						mux {
1566							groups = "uart_c_cts",
1567								 "uart_c_rts";
1568							function = "uart_c";
1569							bias-disable;
1570						};
1571					};
1572				};
1573			};
1574
1575			cpu_temp: temperature-sensor@34800 {
1576				compatible = "amlogic,g12a-cpu-thermal",
1577					     "amlogic,g12a-thermal";
1578				reg = <0x0 0x34800 0x0 0x50>;
1579				interrupts = <GIC_SPI 35 IRQ_TYPE_EDGE_RISING>;
1580				clocks = <&clkc CLKID_TS>;
1581				#thermal-sensor-cells = <0>;
1582				amlogic,ao-secure = <&sec_AO>;
1583			};
1584
1585			ddr_temp: temperature-sensor@34c00 {
1586				compatible = "amlogic,g12a-ddr-thermal",
1587					     "amlogic,g12a-thermal";
1588				reg = <0x0 0x34c00 0x0 0x50>;
1589				interrupts = <GIC_SPI 36 IRQ_TYPE_EDGE_RISING>;
1590				clocks = <&clkc CLKID_TS>;
1591				#thermal-sensor-cells = <0>;
1592				amlogic,ao-secure = <&sec_AO>;
1593			};
1594
1595			usb2_phy0: phy@36000 {
1596				compatible = "amlogic,g12a-usb2-phy";
1597				reg = <0x0 0x36000 0x0 0x2000>;
1598				clocks = <&xtal>;
1599				clock-names = "xtal";
1600				resets = <&reset RESET_USB_PHY20>;
1601				reset-names = "phy";
1602				#phy-cells = <0>;
1603			};
1604
1605			dmc: bus@38000 {
1606				compatible = "simple-bus";
1607				#address-cells = <2>;
1608				#size-cells = <2>;
1609				ranges = <0x0 0x0 0x0 0x38000 0x0 0x2000>;
1610
1611				canvas: video-lut@48 {
1612					compatible = "amlogic,canvas";
1613					reg = <0x0 0x48 0x0 0x14>;
1614				};
1615			};
1616
1617			usb2_phy1: phy@3a000 {
1618				compatible = "amlogic,g12a-usb2-phy";
1619				reg = <0x0 0x3a000 0x0 0x2000>;
1620				clocks = <&xtal>;
1621				clock-names = "xtal";
1622				resets = <&reset RESET_USB_PHY21>;
1623				reset-names = "phy";
1624				#phy-cells = <0>;
1625			};
1626
1627			hiu: bus@3c000 {
1628				compatible = "simple-bus";
1629				reg = <0x0 0x3c000 0x0 0x1400>;
1630				#address-cells = <2>;
1631				#size-cells = <2>;
1632				ranges = <0x0 0x0 0x0 0x3c000 0x0 0x1400>;
1633
1634				hhi: system-controller@0 {
1635					compatible = "amlogic,meson-gx-hhi-sysctrl",
1636						     "simple-mfd", "syscon";
1637					reg = <0 0 0 0x400>;
1638
1639					clkc: clock-controller {
1640						compatible = "amlogic,g12a-clkc";
1641						#clock-cells = <1>;
1642						clocks = <&xtal>;
1643						clock-names = "xtal";
1644					};
1645
1646					pwrc: power-controller {
1647						compatible = "amlogic,meson-g12a-pwrc";
1648						#power-domain-cells = <1>;
1649						amlogic,ao-sysctrl = <&rti>;
1650						resets = <&reset RESET_VIU>,
1651							 <&reset RESET_VENC>,
1652							 <&reset RESET_VCBUS>,
1653							 <&reset RESET_BT656>,
1654							 <&reset RESET_RDMA>,
1655							 <&reset RESET_VENCI>,
1656							 <&reset RESET_VENCP>,
1657							 <&reset RESET_VDAC>,
1658							 <&reset RESET_VDI6>,
1659							 <&reset RESET_VENCL>,
1660							 <&reset RESET_VID_LOCK>;
1661						reset-names = "viu", "venc", "vcbus", "bt656",
1662							      "rdma", "venci", "vencp", "vdac",
1663							      "vdi6", "vencl", "vid_lock";
1664						clocks = <&clkc CLKID_VPU>,
1665							 <&clkc CLKID_VAPB>;
1666						clock-names = "vpu", "vapb";
1667						/*
1668						 * VPU clocking is provided by two identical clock paths
1669						 * VPU_0 and VPU_1 muxed to a single clock by a glitch
1670						 * free mux to safely change frequency while running.
1671						 * Same for VAPB but with a final gate after the glitch free mux.
1672						 */
1673						assigned-clocks = <&clkc CLKID_VPU_0_SEL>,
1674								  <&clkc CLKID_VPU_0>,
1675								  <&clkc CLKID_VPU>, /* Glitch free mux */
1676								  <&clkc CLKID_VAPB_0_SEL>,
1677								  <&clkc CLKID_VAPB_0>,
1678								  <&clkc CLKID_VAPB_SEL>; /* Glitch free mux */
1679						assigned-clock-parents = <&clkc CLKID_FCLK_DIV3>,
1680									 <0>, /* Do Nothing */
1681									 <&clkc CLKID_VPU_0>,
1682									 <&clkc CLKID_FCLK_DIV4>,
1683									 <0>, /* Do Nothing */
1684									 <&clkc CLKID_VAPB_0>;
1685						assigned-clock-rates = <0>, /* Do Nothing */
1686								       <666666666>,
1687								       <0>, /* Do Nothing */
1688								       <0>, /* Do Nothing */
1689								       <250000000>,
1690								       <0>; /* Do Nothing */
1691					};
1692				};
1693			};
1694
1695			usb3_pcie_phy: phy@46000 {
1696				compatible = "amlogic,g12a-usb3-pcie-phy";
1697				reg = <0x0 0x46000 0x0 0x2000>;
1698				clocks = <&clkc CLKID_PCIE_PLL>;
1699				clock-names = "ref_clk";
1700				resets = <&reset RESET_PCIE_PHY>;
1701				reset-names = "phy";
1702				assigned-clocks = <&clkc CLKID_PCIE_PLL>;
1703				assigned-clock-rates = <100000000>;
1704				#phy-cells = <1>;
1705			};
1706
1707			eth_phy: mdio-multiplexer@4c000 {
1708				compatible = "amlogic,g12a-mdio-mux";
1709				reg = <0x0 0x4c000 0x0 0xa4>;
1710				clocks = <&clkc CLKID_ETH_PHY>,
1711					 <&xtal>,
1712					 <&clkc CLKID_MPLL_50M>;
1713				clock-names = "pclk", "clkin0", "clkin1";
1714				mdio-parent-bus = <&mdio0>;
1715				#address-cells = <1>;
1716				#size-cells = <0>;
1717
1718				ext_mdio: mdio@0 {
1719					reg = <0>;
1720					#address-cells = <1>;
1721					#size-cells = <0>;
1722				};
1723
1724				int_mdio: mdio@1 {
1725					reg = <1>;
1726					#address-cells = <1>;
1727					#size-cells = <0>;
1728
1729					internal_ephy: ethernet-phy@8 {
1730						compatible = "ethernet-phy-id0180.3301",
1731							     "ethernet-phy-ieee802.3-c22";
1732						interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
1733						reg = <8>;
1734						max-speed = <100>;
1735					};
1736				};
1737			};
1738		};
1739
1740		aobus: bus@ff800000 {
1741			compatible = "simple-bus";
1742			reg = <0x0 0xff800000 0x0 0x100000>;
1743			#address-cells = <2>;
1744			#size-cells = <2>;
1745			ranges = <0x0 0x0 0x0 0xff800000 0x0 0x100000>;
1746
1747			rti: sys-ctrl@0 {
1748				compatible = "amlogic,meson-gx-ao-sysctrl",
1749					     "simple-mfd", "syscon";
1750				reg = <0x0 0x0 0x0 0x100>;
1751				#address-cells = <2>;
1752				#size-cells = <2>;
1753				ranges = <0x0 0x0 0x0 0x0 0x0 0x100>;
1754
1755				clkc_AO: clock-controller {
1756					compatible = "amlogic,meson-g12a-aoclkc";
1757					#clock-cells = <1>;
1758					#reset-cells = <1>;
1759					clocks = <&xtal>, <&clkc CLKID_CLK81>;
1760					clock-names = "xtal", "mpeg-clk";
1761				};
1762
1763				ao_pinctrl: pinctrl@14 {
1764					compatible = "amlogic,meson-g12a-aobus-pinctrl";
1765					#address-cells = <2>;
1766					#size-cells = <2>;
1767					ranges;
1768
1769					gpio_ao: bank@14 {
1770						reg = <0x0 0x14 0x0 0x8>,
1771						      <0x0 0x1c 0x0 0x8>,
1772						      <0x0 0x24 0x0 0x14>;
1773						reg-names = "mux",
1774							    "ds",
1775							    "gpio";
1776						gpio-controller;
1777						#gpio-cells = <2>;
1778						gpio-ranges = <&ao_pinctrl 0 0 15>;
1779					};
1780
1781					i2c_ao_sck_pins: i2c_ao_sck_pins {
1782						mux {
1783							groups = "i2c_ao_sck";
1784							function = "i2c_ao";
1785							bias-disable;
1786							drive-strength-microamp = <3000>;
1787						};
1788					};
1789
1790					i2c_ao_sda_pins: i2c_ao_sda {
1791						mux {
1792							groups = "i2c_ao_sda";
1793							function = "i2c_ao";
1794							bias-disable;
1795							drive-strength-microamp = <3000>;
1796						};
1797					};
1798
1799					i2c_ao_sck_e_pins: i2c_ao_sck_e {
1800						mux {
1801							groups = "i2c_ao_sck_e";
1802							function = "i2c_ao";
1803							bias-disable;
1804							drive-strength-microamp = <3000>;
1805						};
1806					};
1807
1808					i2c_ao_sda_e_pins: i2c_ao_sda_e {
1809						mux {
1810							groups = "i2c_ao_sda_e";
1811							function = "i2c_ao";
1812							bias-disable;
1813							drive-strength-microamp = <3000>;
1814						};
1815					};
1816
1817					mclk0_ao_pins: mclk0-ao {
1818						mux {
1819							groups = "mclk0_ao";
1820							function = "mclk0_ao";
1821							bias-disable;
1822							drive-strength-microamp = <3000>;
1823						};
1824					};
1825
1826					tdm_ao_b_din0_pins: tdm-ao-b-din0 {
1827						mux {
1828							groups = "tdm_ao_b_din0";
1829							function = "tdm_ao_b";
1830							bias-disable;
1831						};
1832					};
1833
1834					spdif_ao_out_pins: spdif-ao-out {
1835						mux {
1836							groups = "spdif_ao_out";
1837							function = "spdif_ao_out";
1838							drive-strength-microamp = <500>;
1839							bias-disable;
1840						};
1841					};
1842
1843					tdm_ao_b_din1_pins: tdm-ao-b-din1 {
1844						mux {
1845							groups = "tdm_ao_b_din1";
1846							function = "tdm_ao_b";
1847							bias-disable;
1848						};
1849					};
1850
1851					tdm_ao_b_din2_pins: tdm-ao-b-din2 {
1852						mux {
1853							groups = "tdm_ao_b_din2";
1854							function = "tdm_ao_b";
1855							bias-disable;
1856						};
1857					};
1858
1859					tdm_ao_b_dout0_pins: tdm-ao-b-dout0 {
1860						mux {
1861							groups = "tdm_ao_b_dout0";
1862							function = "tdm_ao_b";
1863							bias-disable;
1864							drive-strength-microamp = <3000>;
1865						};
1866					};
1867
1868					tdm_ao_b_dout1_pins: tdm-ao-b-dout1 {
1869						mux {
1870							groups = "tdm_ao_b_dout1";
1871							function = "tdm_ao_b";
1872							bias-disable;
1873							drive-strength-microamp = <3000>;
1874						};
1875					};
1876
1877					tdm_ao_b_dout2_pins: tdm-ao-b-dout2 {
1878						mux {
1879							groups = "tdm_ao_b_dout2";
1880							function = "tdm_ao_b";
1881							bias-disable;
1882							drive-strength-microamp = <3000>;
1883						};
1884					};
1885
1886					tdm_ao_b_fs_pins: tdm-ao-b-fs {
1887						mux {
1888							groups = "tdm_ao_b_fs";
1889							function = "tdm_ao_b";
1890							bias-disable;
1891							drive-strength-microamp = <3000>;
1892						};
1893					};
1894
1895					tdm_ao_b_sclk_pins: tdm-ao-b-sclk {
1896						mux {
1897							groups = "tdm_ao_b_sclk";
1898							function = "tdm_ao_b";
1899							bias-disable;
1900							drive-strength-microamp = <3000>;
1901						};
1902					};
1903
1904					tdm_ao_b_slv_fs_pins: tdm-ao-b-slv-fs {
1905						mux {
1906							groups = "tdm_ao_b_slv_fs";
1907							function = "tdm_ao_b";
1908							bias-disable;
1909						};
1910					};
1911
1912					tdm_ao_b_slv_sclk_pins: tdm-ao-b-slv-sclk {
1913						mux {
1914							groups = "tdm_ao_b_slv_sclk";
1915							function = "tdm_ao_b";
1916							bias-disable;
1917						};
1918					};
1919
1920					uart_ao_a_pins: uart-a-ao {
1921						mux {
1922							groups = "uart_ao_a_tx",
1923								 "uart_ao_a_rx";
1924							function = "uart_ao_a";
1925							bias-disable;
1926						};
1927					};
1928
1929					uart_ao_a_cts_rts_pins: uart-ao-a-cts-rts {
1930						mux {
1931							groups = "uart_ao_a_cts",
1932								 "uart_ao_a_rts";
1933							function = "uart_ao_a";
1934							bias-disable;
1935						};
1936					};
1937
1938					pwm_a_e_pins: pwm-a-e {
1939						mux {
1940							groups = "pwm_a_e";
1941							function = "pwm_a_e";
1942							bias-disable;
1943						};
1944					};
1945
1946					pwm_ao_a_pins: pwm-ao-a {
1947						mux {
1948							groups = "pwm_ao_a";
1949							function = "pwm_ao_a";
1950							bias-disable;
1951						};
1952					};
1953
1954					pwm_ao_b_pins: pwm-ao-b {
1955						mux {
1956							groups = "pwm_ao_b";
1957							function = "pwm_ao_b";
1958							bias-disable;
1959						};
1960					};
1961
1962					pwm_ao_c_4_pins: pwm-ao-c-4 {
1963						mux {
1964							groups = "pwm_ao_c_4";
1965							function = "pwm_ao_c";
1966							bias-disable;
1967						};
1968					};
1969
1970					pwm_ao_c_6_pins: pwm-ao-c-6 {
1971						mux {
1972							groups = "pwm_ao_c_6";
1973							function = "pwm_ao_c";
1974							bias-disable;
1975						};
1976					};
1977
1978					pwm_ao_d_5_pins: pwm-ao-d-5 {
1979						mux {
1980							groups = "pwm_ao_d_5";
1981							function = "pwm_ao_d";
1982							bias-disable;
1983						};
1984					};
1985
1986					pwm_ao_d_10_pins: pwm-ao-d-10 {
1987						mux {
1988							groups = "pwm_ao_d_10";
1989							function = "pwm_ao_d";
1990							bias-disable;
1991						};
1992					};
1993
1994					pwm_ao_d_e_pins: pwm-ao-d-e {
1995						mux {
1996							groups = "pwm_ao_d_e";
1997							function = "pwm_ao_d";
1998						};
1999					};
2000
2001					remote_input_ao_pins: remote-input-ao {
2002						mux {
2003							groups = "remote_ao_input";
2004							function = "remote_ao_input";
2005							bias-disable;
2006						};
2007					};
2008				};
2009			};
2010
2011			vrtc: rtc@0a8 {
2012				compatible = "amlogic,meson-vrtc";
2013				reg = <0x0 0x000a8 0x0 0x4>;
2014			};
2015
2016			cec_AO: cec@100 {
2017				compatible = "amlogic,meson-gx-ao-cec";
2018				reg = <0x0 0x00100 0x0 0x14>;
2019				interrupts = <GIC_SPI 199 IRQ_TYPE_EDGE_RISING>;
2020				clocks = <&clkc_AO CLKID_AO_CEC>;
2021				clock-names = "core";
2022				status = "disabled";
2023			};
2024
2025			sec_AO: ao-secure@140 {
2026				compatible = "amlogic,meson-gx-ao-secure", "syscon";
2027				reg = <0x0 0x140 0x0 0x140>;
2028				amlogic,has-chip-id;
2029			};
2030
2031			cecb_AO: cec@280 {
2032				compatible = "amlogic,meson-g12a-ao-cec";
2033				reg = <0x0 0x00280 0x0 0x1c>;
2034				interrupts = <GIC_SPI 203 IRQ_TYPE_EDGE_RISING>;
2035				clocks = <&clkc_AO CLKID_AO_CTS_OSCIN>;
2036				clock-names = "oscin";
2037				status = "disabled";
2038			};
2039
2040			pwm_AO_cd: pwm@2000 {
2041				compatible = "amlogic,meson-g12a-ao-pwm-cd";
2042				reg = <0x0 0x2000 0x0 0x20>;
2043				#pwm-cells = <3>;
2044				status = "disabled";
2045			};
2046
2047			uart_AO: serial@3000 {
2048				compatible = "amlogic,meson-gx-uart",
2049					     "amlogic,meson-ao-uart";
2050				reg = <0x0 0x3000 0x0 0x18>;
2051				interrupts = <GIC_SPI 193 IRQ_TYPE_EDGE_RISING>;
2052				clocks = <&xtal>, <&clkc_AO CLKID_AO_UART>, <&xtal>;
2053				clock-names = "xtal", "pclk", "baud";
2054				status = "disabled";
2055			};
2056
2057			uart_AO_B: serial@4000 {
2058				compatible = "amlogic,meson-gx-uart",
2059					     "amlogic,meson-ao-uart";
2060				reg = <0x0 0x4000 0x0 0x18>;
2061				interrupts = <GIC_SPI 197 IRQ_TYPE_EDGE_RISING>;
2062				clocks = <&xtal>, <&clkc_AO CLKID_AO_UART2>, <&xtal>;
2063				clock-names = "xtal", "pclk", "baud";
2064				status = "disabled";
2065			};
2066
2067			i2c_AO: i2c@5000 {
2068				compatible = "amlogic,meson-axg-i2c";
2069				status = "disabled";
2070				reg = <0x0 0x05000 0x0 0x20>;
2071				interrupts = <GIC_SPI 195 IRQ_TYPE_EDGE_RISING>;
2072				#address-cells = <1>;
2073				#size-cells = <0>;
2074				clocks = <&clkc CLKID_I2C>;
2075			};
2076
2077			pwm_AO_ab: pwm@7000 {
2078				compatible = "amlogic,meson-g12a-ao-pwm-ab";
2079				reg = <0x0 0x7000 0x0 0x20>;
2080				#pwm-cells = <3>;
2081				status = "disabled";
2082			};
2083
2084			ir: ir@8000 {
2085				compatible = "amlogic,meson-gxbb-ir";
2086				reg = <0x0 0x8000 0x0 0x20>;
2087				interrupts = <GIC_SPI 196 IRQ_TYPE_EDGE_RISING>;
2088				status = "disabled";
2089			};
2090
2091			saradc: adc@9000 {
2092				compatible = "amlogic,meson-g12a-saradc",
2093					     "amlogic,meson-saradc";
2094				reg = <0x0 0x9000 0x0 0x48>;
2095				#io-channel-cells = <1>;
2096				interrupts = <GIC_SPI 200 IRQ_TYPE_EDGE_RISING>;
2097				clocks = <&xtal>,
2098					 <&clkc_AO CLKID_AO_SAR_ADC>,
2099					 <&clkc_AO CLKID_AO_SAR_ADC_CLK>,
2100					 <&clkc_AO CLKID_AO_SAR_ADC_SEL>;
2101				clock-names = "clkin", "core", "adc_clk", "adc_sel";
2102				status = "disabled";
2103			};
2104		};
2105
2106		vdec: video-decoder@ff620000 {
2107			compatible = "amlogic,g12a-vdec";
2108			reg = <0x0 0xff620000 0x0 0x10000>,
2109			      <0x0 0xffd0e180 0x0 0xe4>;
2110			reg-names = "dos", "esparser";
2111			interrupts = <GIC_SPI 44 IRQ_TYPE_EDGE_RISING>,
2112				     <GIC_SPI 32 IRQ_TYPE_EDGE_RISING>;
2113			interrupt-names = "vdec", "esparser";
2114
2115			amlogic,ao-sysctrl = <&rti>;
2116			amlogic,canvas = <&canvas>;
2117
2118			clocks = <&clkc CLKID_PARSER>,
2119				 <&clkc CLKID_DOS>,
2120				 <&clkc CLKID_VDEC_1>,
2121				 <&clkc CLKID_VDEC_HEVC>,
2122				 <&clkc CLKID_VDEC_HEVCF>;
2123			clock-names = "dos_parser", "dos", "vdec_1",
2124				      "vdec_hevc", "vdec_hevcf";
2125			resets = <&reset RESET_PARSER>;
2126			reset-names = "esparser";
2127		};
2128
2129		vpu: vpu@ff900000 {
2130			compatible = "amlogic,meson-g12a-vpu";
2131			reg = <0x0 0xff900000 0x0 0x100000>,
2132			      <0x0 0xff63c000 0x0 0x1000>;
2133			reg-names = "vpu", "hhi";
2134			interrupts = <GIC_SPI 3 IRQ_TYPE_EDGE_RISING>;
2135			#address-cells = <1>;
2136			#size-cells = <0>;
2137			amlogic,canvas = <&canvas>;
2138
2139			/* CVBS VDAC output port */
2140			cvbs_vdac_port: port@0 {
2141				reg = <0>;
2142			};
2143
2144			/* HDMI-TX output port */
2145			hdmi_tx_port: port@1 {
2146				reg = <1>;
2147
2148				hdmi_tx_out: endpoint {
2149					remote-endpoint = <&hdmi_tx_in>;
2150				};
2151			};
2152		};
2153
2154		gic: interrupt-controller@ffc01000 {
2155			compatible = "arm,gic-400";
2156			reg = <0x0 0xffc01000 0 0x1000>,
2157			      <0x0 0xffc02000 0 0x2000>,
2158			      <0x0 0xffc04000 0 0x2000>,
2159			      <0x0 0xffc06000 0 0x2000>;
2160			interrupt-controller;
2161			interrupts = <GIC_PPI 9
2162				(GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>;
2163			#interrupt-cells = <3>;
2164			#address-cells = <0>;
2165		};
2166
2167		cbus: bus@ffd00000 {
2168			compatible = "simple-bus";
2169			reg = <0x0 0xffd00000 0x0 0x100000>;
2170			#address-cells = <2>;
2171			#size-cells = <2>;
2172			ranges = <0x0 0x0 0x0 0xffd00000 0x0 0x100000>;
2173
2174			reset: reset-controller@1004 {
2175				compatible = "amlogic,meson-axg-reset";
2176				reg = <0x0 0x1004 0x0 0x9c>;
2177				#reset-cells = <1>;
2178			};
2179
2180			gpio_intc: interrupt-controller@f080 {
2181				compatible = "amlogic,meson-g12a-gpio-intc",
2182					     "amlogic,meson-gpio-intc";
2183				reg = <0x0 0xf080 0x0 0x10>;
2184				interrupt-controller;
2185				#interrupt-cells = <2>;
2186				amlogic,channel-interrupts = <64 65 66 67 68 69 70 71>;
2187			};
2188
2189			spicc0: spi@13000 {
2190				compatible = "amlogic,meson-g12a-spicc";
2191				reg = <0x0 0x13000 0x0 0x44>;
2192				interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
2193				clocks = <&clkc CLKID_SPICC0>,
2194					 <&clkc CLKID_SPICC0_SCLK>;
2195				clock-names = "core", "pclk";
2196				#address-cells = <1>;
2197				#size-cells = <0>;
2198				status = "disabled";
2199			};
2200
2201			spicc1: spi@15000 {
2202				compatible = "amlogic,meson-g12a-spicc";
2203				reg = <0x0 0x15000 0x0 0x44>;
2204				interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
2205				clocks = <&clkc CLKID_SPICC1>,
2206					 <&clkc CLKID_SPICC1_SCLK>;
2207				clock-names = "core", "pclk";
2208				#address-cells = <1>;
2209				#size-cells = <0>;
2210				status = "disabled";
2211			};
2212
2213			spifc: spi@14000 {
2214				compatible = "amlogic,meson-gxbb-spifc";
2215				status = "disabled";
2216				reg = <0x0 0x14000 0x0 0x80>;
2217				#address-cells = <1>;
2218				#size-cells = <0>;
2219				clocks = <&clkc CLKID_CLK81>;
2220			};
2221
2222			pwm_ef: pwm@19000 {
2223				compatible = "amlogic,meson-g12a-ee-pwm";
2224				reg = <0x0 0x19000 0x0 0x20>;
2225				#pwm-cells = <3>;
2226				status = "disabled";
2227			};
2228
2229			pwm_cd: pwm@1a000 {
2230				compatible = "amlogic,meson-g12a-ee-pwm";
2231				reg = <0x0 0x1a000 0x0 0x20>;
2232				#pwm-cells = <3>;
2233				status = "disabled";
2234			};
2235
2236			pwm_ab: pwm@1b000 {
2237				compatible = "amlogic,meson-g12a-ee-pwm";
2238				reg = <0x0 0x1b000 0x0 0x20>;
2239				#pwm-cells = <3>;
2240				status = "disabled";
2241			};
2242
2243			i2c3: i2c@1c000 {
2244				compatible = "amlogic,meson-axg-i2c";
2245				status = "disabled";
2246				reg = <0x0 0x1c000 0x0 0x20>;
2247				interrupts = <GIC_SPI 39 IRQ_TYPE_EDGE_RISING>;
2248				#address-cells = <1>;
2249				#size-cells = <0>;
2250				clocks = <&clkc CLKID_I2C>;
2251			};
2252
2253			i2c2: i2c@1d000 {
2254				compatible = "amlogic,meson-axg-i2c";
2255				status = "disabled";
2256				reg = <0x0 0x1d000 0x0 0x20>;
2257				interrupts = <GIC_SPI 215 IRQ_TYPE_EDGE_RISING>;
2258				#address-cells = <1>;
2259				#size-cells = <0>;
2260				clocks = <&clkc CLKID_I2C>;
2261			};
2262
2263			i2c1: i2c@1e000 {
2264				compatible = "amlogic,meson-axg-i2c";
2265				status = "disabled";
2266				reg = <0x0 0x1e000 0x0 0x20>;
2267				interrupts = <GIC_SPI 214 IRQ_TYPE_EDGE_RISING>;
2268				#address-cells = <1>;
2269				#size-cells = <0>;
2270				clocks = <&clkc CLKID_I2C>;
2271			};
2272
2273			i2c0: i2c@1f000 {
2274				compatible = "amlogic,meson-axg-i2c";
2275				status = "disabled";
2276				reg = <0x0 0x1f000 0x0 0x20>;
2277				interrupts = <GIC_SPI 21 IRQ_TYPE_EDGE_RISING>;
2278				#address-cells = <1>;
2279				#size-cells = <0>;
2280				clocks = <&clkc CLKID_I2C>;
2281			};
2282
2283			clk_msr: clock-measure@18000 {
2284				compatible = "amlogic,meson-g12a-clk-measure";
2285				reg = <0x0 0x18000 0x0 0x10>;
2286			};
2287
2288			uart_C: serial@22000 {
2289				compatible = "amlogic,meson-gx-uart";
2290				reg = <0x0 0x22000 0x0 0x18>;
2291				interrupts = <GIC_SPI 93 IRQ_TYPE_EDGE_RISING>;
2292				clocks = <&xtal>, <&clkc CLKID_UART2>, <&xtal>;
2293				clock-names = "xtal", "pclk", "baud";
2294				status = "disabled";
2295			};
2296
2297			uart_B: serial@23000 {
2298				compatible = "amlogic,meson-gx-uart";
2299				reg = <0x0 0x23000 0x0 0x18>;
2300				interrupts = <GIC_SPI 75 IRQ_TYPE_EDGE_RISING>;
2301				clocks = <&xtal>, <&clkc CLKID_UART1>, <&xtal>;
2302				clock-names = "xtal", "pclk", "baud";
2303				status = "disabled";
2304			};
2305
2306			uart_A: serial@24000 {
2307				compatible = "amlogic,meson-gx-uart";
2308				reg = <0x0 0x24000 0x0 0x18>;
2309				interrupts = <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>;
2310				clocks = <&xtal>, <&clkc CLKID_UART0>, <&xtal>;
2311				clock-names = "xtal", "pclk", "baud";
2312				status = "disabled";
2313			};
2314		};
2315
2316		sd_emmc_a: sd@ffe03000 {
2317			compatible = "amlogic,meson-axg-mmc";
2318			reg = <0x0 0xffe03000 0x0 0x800>;
2319			interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>;
2320			status = "disabled";
2321			clocks = <&clkc CLKID_SD_EMMC_A>,
2322				 <&clkc CLKID_SD_EMMC_A_CLK0>,
2323				 <&clkc CLKID_FCLK_DIV2>;
2324			clock-names = "core", "clkin0", "clkin1";
2325			resets = <&reset RESET_SD_EMMC_A>;
2326		};
2327
2328		sd_emmc_b: sd@ffe05000 {
2329			compatible = "amlogic,meson-axg-mmc";
2330			reg = <0x0 0xffe05000 0x0 0x800>;
2331			interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
2332			status = "disabled";
2333			clocks = <&clkc CLKID_SD_EMMC_B>,
2334				 <&clkc CLKID_SD_EMMC_B_CLK0>,
2335				 <&clkc CLKID_FCLK_DIV2>;
2336			clock-names = "core", "clkin0", "clkin1";
2337			resets = <&reset RESET_SD_EMMC_B>;
2338		};
2339
2340		sd_emmc_c: mmc@ffe07000 {
2341			compatible = "amlogic,meson-axg-mmc";
2342			reg = <0x0 0xffe07000 0x0 0x800>;
2343			interrupts = <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>;
2344			status = "disabled";
2345			clocks = <&clkc CLKID_SD_EMMC_C>,
2346				 <&clkc CLKID_SD_EMMC_C_CLK0>,
2347				 <&clkc CLKID_FCLK_DIV2>;
2348			clock-names = "core", "clkin0", "clkin1";
2349			resets = <&reset RESET_SD_EMMC_C>;
2350		};
2351
2352		usb: usb@ffe09000 {
2353			status = "disabled";
2354			compatible = "amlogic,meson-g12a-usb-ctrl";
2355			reg = <0x0 0xffe09000 0x0 0xa0>;
2356			interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
2357			#address-cells = <2>;
2358			#size-cells = <2>;
2359			ranges;
2360
2361			clocks = <&clkc CLKID_USB>;
2362			resets = <&reset RESET_USB>;
2363
2364			dr_mode = "otg";
2365
2366			phys = <&usb2_phy0>, <&usb2_phy1>,
2367			       <&usb3_pcie_phy PHY_TYPE_USB3>;
2368			phy-names = "usb2-phy0", "usb2-phy1", "usb3-phy0";
2369
2370			dwc2: usb@ff400000 {
2371				compatible = "amlogic,meson-g12a-usb", "snps,dwc2";
2372				reg = <0x0 0xff400000 0x0 0x40000>;
2373				interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
2374				clocks = <&clkc CLKID_USB1_DDR_BRIDGE>;
2375				clock-names = "otg";
2376				phys = <&usb2_phy1>;
2377				phy-names = "usb2-phy";
2378				dr_mode = "peripheral";
2379				g-rx-fifo-size = <192>;
2380				g-np-tx-fifo-size = <128>;
2381				g-tx-fifo-size = <128 128 16 16 16>;
2382			};
2383
2384			dwc3: usb@ff500000 {
2385				compatible = "snps,dwc3";
2386				reg = <0x0 0xff500000 0x0 0x100000>;
2387				interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
2388				dr_mode = "host";
2389				snps,dis_u2_susphy_quirk;
2390				snps,quirk-frame-length-adjustment = <0x20>;
2391				snps,parkmode-disable-ss-quirk;
2392			};
2393		};
2394
2395		mali: gpu@ffe40000 {
2396			compatible = "amlogic,meson-g12a-mali", "arm,mali-bifrost";
2397			reg = <0x0 0xffe40000 0x0 0x40000>;
2398			interrupt-parent = <&gic>;
2399			interrupts = <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>,
2400				     <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>,
2401				     <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>;
2402			interrupt-names = "job", "mmu", "gpu";
2403			clocks = <&clkc CLKID_MALI>;
2404			resets = <&reset RESET_DVALIN_CAPB3>, <&reset RESET_DVALIN>;
2405			operating-points-v2 = <&gpu_opp_table>;
2406			#cooling-cells = <2>;
2407		};
2408	};
2409
2410	timer {
2411		compatible = "arm,armv8-timer";
2412		interrupts = <GIC_PPI 13
2413			(GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
2414			     <GIC_PPI 14
2415			(GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
2416			     <GIC_PPI 11
2417			(GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
2418			     <GIC_PPI 10
2419			(GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>;
2420		arm,no-tick-in-suspend;
2421	};
2422
2423	xtal: xtal-clk {
2424		compatible = "fixed-clock";
2425		clock-frequency = <24000000>;
2426		clock-output-names = "xtal";
2427		#clock-cells = <0>;
2428	};
2429
2430};
2431