1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2017 Amlogic, Inc. All rights reserved.
4 */
5
6#include <dt-bindings/clock/axg-aoclkc.h>
7#include <dt-bindings/clock/axg-audio-clkc.h>
8#include <dt-bindings/clock/axg-clkc.h>
9#include <dt-bindings/gpio/gpio.h>
10#include <dt-bindings/gpio/meson-axg-gpio.h>
11#include <dt-bindings/interrupt-controller/irq.h>
12#include <dt-bindings/interrupt-controller/arm-gic.h>
13#include <dt-bindings/reset/amlogic,meson-axg-audio-arb.h>
14#include <dt-bindings/reset/amlogic,meson-axg-reset.h>
15
16/ {
17	compatible = "amlogic,meson-axg";
18
19	interrupt-parent = <&gic>;
20	#address-cells = <2>;
21	#size-cells = <2>;
22
23	tdmif_a: audio-controller-0 {
24		compatible = "amlogic,axg-tdm-iface";
25		#sound-dai-cells = <0>;
26		sound-name-prefix = "TDM_A";
27		clocks = <&clkc_audio AUD_CLKID_MST_A_MCLK>,
28			 <&clkc_audio AUD_CLKID_MST_A_SCLK>,
29			 <&clkc_audio AUD_CLKID_MST_A_LRCLK>;
30		clock-names = "mclk", "sclk", "lrclk";
31		status = "disabled";
32	};
33
34	tdmif_b: audio-controller-1 {
35		compatible = "amlogic,axg-tdm-iface";
36		#sound-dai-cells = <0>;
37		sound-name-prefix = "TDM_B";
38		clocks = <&clkc_audio AUD_CLKID_MST_B_MCLK>,
39			 <&clkc_audio AUD_CLKID_MST_B_SCLK>,
40			 <&clkc_audio AUD_CLKID_MST_B_LRCLK>;
41		clock-names = "mclk", "sclk", "lrclk";
42		status = "disabled";
43	};
44
45	tdmif_c: audio-controller-2 {
46		compatible = "amlogic,axg-tdm-iface";
47		#sound-dai-cells = <0>;
48		sound-name-prefix = "TDM_C";
49		clocks = <&clkc_audio AUD_CLKID_MST_C_MCLK>,
50			 <&clkc_audio AUD_CLKID_MST_C_SCLK>,
51			 <&clkc_audio AUD_CLKID_MST_C_LRCLK>;
52		clock-names = "mclk", "sclk", "lrclk";
53		status = "disabled";
54	};
55
56	arm-pmu {
57		compatible = "arm,cortex-a53-pmu";
58		interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
59			     <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>,
60			     <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>,
61			     <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>;
62		interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
63	};
64
65	cpus {
66		#address-cells = <0x2>;
67		#size-cells = <0x0>;
68
69		cpu0: cpu@0 {
70			device_type = "cpu";
71			compatible = "arm,cortex-a53";
72			reg = <0x0 0x0>;
73			enable-method = "psci";
74			next-level-cache = <&l2>;
75			clocks = <&scpi_dvfs 0>;
76		};
77
78		cpu1: cpu@1 {
79			device_type = "cpu";
80			compatible = "arm,cortex-a53";
81			reg = <0x0 0x1>;
82			enable-method = "psci";
83			next-level-cache = <&l2>;
84			clocks = <&scpi_dvfs 0>;
85		};
86
87		cpu2: cpu@2 {
88			device_type = "cpu";
89			compatible = "arm,cortex-a53";
90			reg = <0x0 0x2>;
91			enable-method = "psci";
92			next-level-cache = <&l2>;
93			clocks = <&scpi_dvfs 0>;
94		};
95
96		cpu3: cpu@3 {
97			device_type = "cpu";
98			compatible = "arm,cortex-a53";
99			reg = <0x0 0x3>;
100			enable-method = "psci";
101			next-level-cache = <&l2>;
102			clocks = <&scpi_dvfs 0>;
103		};
104
105		l2: l2-cache0 {
106			compatible = "cache";
107		};
108	};
109
110	sm: secure-monitor {
111		compatible = "amlogic,meson-gxbb-sm";
112	};
113
114	efuse: efuse {
115		compatible = "amlogic,meson-gxbb-efuse";
116		clocks = <&clkc CLKID_EFUSE>;
117		#address-cells = <1>;
118		#size-cells = <1>;
119		read-only;
120	};
121
122	psci {
123		compatible = "arm,psci-1.0";
124		method = "smc";
125	};
126
127	reserved-memory {
128		#address-cells = <2>;
129		#size-cells = <2>;
130		ranges;
131
132		/* 16 MiB reserved for Hardware ROM Firmware */
133		hwrom_reserved: hwrom@0 {
134			reg = <0x0 0x0 0x0 0x1000000>;
135			no-map;
136		};
137
138		/* Alternate 3 MiB reserved for ARM Trusted Firmware (BL31) */
139		secmon_reserved: secmon@5000000 {
140			reg = <0x0 0x05000000 0x0 0x300000>;
141			no-map;
142		};
143	};
144
145	scpi {
146		compatible = "arm,scpi-pre-1.0";
147		mboxes = <&mailbox 1 &mailbox 2>;
148		shmem = <&cpu_scp_lpri &cpu_scp_hpri>;
149
150		scpi_clocks: clocks {
151			compatible = "arm,scpi-clocks";
152
153			scpi_dvfs: clock-controller {
154				compatible = "arm,scpi-dvfs-clocks";
155				#clock-cells = <1>;
156				clock-indices = <0>;
157				clock-output-names = "vcpu";
158			};
159		};
160
161		scpi_sensors: sensors {
162			compatible = "amlogic,meson-gxbb-scpi-sensors";
163			#thermal-sensor-cells = <1>;
164		};
165	};
166
167	soc {
168		compatible = "simple-bus";
169		#address-cells = <2>;
170		#size-cells = <2>;
171		ranges;
172
173		ethmac: ethernet@ff3f0000 {
174			compatible = "amlogic,meson-axg-dwmac",
175				     "snps,dwmac-3.70a",
176				     "snps,dwmac";
177			reg = <0x0 0xff3f0000 0x0 0x10000>,
178			      <0x0 0xff634540 0x0 0x8>;
179			interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
180			interrupt-names = "macirq";
181			clocks = <&clkc CLKID_ETH>,
182				 <&clkc CLKID_FCLK_DIV2>,
183				 <&clkc CLKID_MPLL2>;
184			clock-names = "stmmaceth", "clkin0", "clkin1";
185			rx-fifo-depth = <4096>;
186			tx-fifo-depth = <2048>;
187			status = "disabled";
188		};
189
190		pdm: audio-controller@ff632000 {
191			compatible = "amlogic,axg-pdm";
192			reg = <0x0 0xff632000 0x0 0x34>;
193			#sound-dai-cells = <0>;
194			sound-name-prefix = "PDM";
195			clocks = <&clkc_audio AUD_CLKID_PDM>,
196				 <&clkc_audio AUD_CLKID_PDM_DCLK>,
197				 <&clkc_audio AUD_CLKID_PDM_SYSCLK>;
198			clock-names = "pclk", "dclk", "sysclk";
199			status = "disabled";
200		};
201
202		periphs: bus@ff634000 {
203			compatible = "simple-bus";
204			reg = <0x0 0xff634000 0x0 0x2000>;
205			#address-cells = <2>;
206			#size-cells = <2>;
207			ranges = <0x0 0x0 0x0 0xff634000 0x0 0x2000>;
208
209			hwrng: rng@18 {
210				compatible = "amlogic,meson-rng";
211				reg = <0x0 0x18 0x0 0x4>;
212				clocks = <&clkc CLKID_RNG0>;
213				clock-names = "core";
214			};
215
216			pinctrl_periphs: pinctrl@480 {
217				compatible = "amlogic,meson-axg-periphs-pinctrl";
218				#address-cells = <2>;
219				#size-cells = <2>;
220				ranges;
221
222				gpio: bank@480 {
223					reg = <0x0 0x00480 0x0 0x40>,
224					      <0x0 0x004e8 0x0 0x14>,
225					      <0x0 0x00520 0x0 0x14>,
226					      <0x0 0x00430 0x0 0x3c>;
227					reg-names = "mux", "pull", "pull-enable", "gpio";
228					gpio-controller;
229					#gpio-cells = <2>;
230					gpio-ranges = <&pinctrl_periphs 0 0 86>;
231				};
232
233				i2c0_pins: i2c0 {
234					mux {
235						groups = "i2c0_sck",
236							 "i2c0_sda";
237						function = "i2c0";
238						bias-disable;
239					};
240				};
241
242				i2c1_x_pins: i2c1_x {
243					mux {
244						groups = "i2c1_sck_x",
245							 "i2c1_sda_x";
246						function = "i2c1";
247						bias-disable;
248					};
249				};
250
251				i2c1_z_pins: i2c1_z {
252					mux {
253						groups = "i2c1_sck_z",
254							 "i2c1_sda_z";
255						function = "i2c1";
256						bias-disable;
257					};
258				};
259
260				i2c2_a_pins: i2c2_a {
261					mux {
262						groups = "i2c2_sck_a",
263							 "i2c2_sda_a";
264						function = "i2c2";
265						bias-disable;
266					};
267				};
268
269				i2c2_x_pins: i2c2_x {
270					mux {
271						groups = "i2c2_sck_x",
272							 "i2c2_sda_x";
273						function = "i2c2";
274						bias-disable;
275					};
276				};
277
278				i2c3_a6_pins: i2c3_a6 {
279					mux {
280						groups = "i2c3_sda_a6",
281							 "i2c3_sck_a7";
282						function = "i2c3";
283						bias-disable;
284					};
285				};
286
287				i2c3_a12_pins: i2c3_a12 {
288					mux {
289						groups = "i2c3_sda_a12",
290							 "i2c3_sck_a13";
291						function = "i2c3";
292						bias-disable;
293					};
294				};
295
296				i2c3_a19_pins: i2c3_a19 {
297					mux {
298						groups = "i2c3_sda_a19",
299							 "i2c3_sck_a20";
300						function = "i2c3";
301						bias-disable;
302					};
303				};
304
305				emmc_pins: emmc {
306					mux-0 {
307						groups = "emmc_nand_d0",
308							 "emmc_nand_d1",
309							 "emmc_nand_d2",
310							 "emmc_nand_d3",
311							 "emmc_nand_d4",
312							 "emmc_nand_d5",
313							 "emmc_nand_d6",
314							 "emmc_nand_d7",
315							 "emmc_cmd";
316						function = "emmc";
317						bias-pull-up;
318					};
319
320					mux-1 {
321						groups = "emmc_clk";
322						function = "emmc";
323						bias-disable;
324					};
325				};
326
327				emmc_ds_pins: emmc_ds {
328					mux {
329						groups = "emmc_ds";
330						function = "emmc";
331						bias-pull-down;
332					};
333				};
334
335				emmc_clk_gate_pins: emmc_clk_gate {
336					mux {
337						groups = "BOOT_8";
338						function = "gpio_periphs";
339						bias-pull-down;
340					};
341				};
342
343				eth_rgmii_x_pins: eth-x-rgmii {
344					mux {
345						groups = "eth_mdio_x",
346							 "eth_mdc_x",
347							 "eth_rgmii_rx_clk_x",
348							 "eth_rx_dv_x",
349							 "eth_rxd0_x",
350							 "eth_rxd1_x",
351							 "eth_rxd2_rgmii",
352							 "eth_rxd3_rgmii",
353							 "eth_rgmii_tx_clk",
354							 "eth_txen_x",
355							 "eth_txd0_x",
356							 "eth_txd1_x",
357							 "eth_txd2_rgmii",
358							 "eth_txd3_rgmii";
359						function = "eth";
360						bias-disable;
361					};
362				};
363
364				eth_rgmii_y_pins: eth-y-rgmii {
365					mux {
366						groups = "eth_mdio_y",
367							 "eth_mdc_y",
368							 "eth_rgmii_rx_clk_y",
369							 "eth_rx_dv_y",
370							 "eth_rxd0_y",
371							 "eth_rxd1_y",
372							 "eth_rxd2_rgmii",
373							 "eth_rxd3_rgmii",
374							 "eth_rgmii_tx_clk",
375							 "eth_txen_y",
376							 "eth_txd0_y",
377							 "eth_txd1_y",
378							 "eth_txd2_rgmii",
379							 "eth_txd3_rgmii";
380						function = "eth";
381						bias-disable;
382					};
383				};
384
385				eth_rmii_x_pins: eth-x-rmii {
386					mux {
387						groups = "eth_mdio_x",
388							 "eth_mdc_x",
389							 "eth_rgmii_rx_clk_x",
390							 "eth_rx_dv_x",
391							 "eth_rxd0_x",
392							 "eth_rxd1_x",
393							 "eth_txen_x",
394							 "eth_txd0_x",
395							 "eth_txd1_x";
396						function = "eth";
397						bias-disable;
398					};
399				};
400
401				eth_rmii_y_pins: eth-y-rmii {
402					mux {
403						groups = "eth_mdio_y",
404							 "eth_mdc_y",
405							 "eth_rgmii_rx_clk_y",
406							 "eth_rx_dv_y",
407							 "eth_rxd0_y",
408							 "eth_rxd1_y",
409							 "eth_txen_y",
410							 "eth_txd0_y",
411							 "eth_txd1_y";
412						function = "eth";
413						bias-disable;
414					};
415				};
416
417				mclk_b_pins: mclk_b {
418					mux {
419						groups = "mclk_b";
420						function = "mclk_b";
421						bias-disable;
422					};
423				};
424
425				mclk_c_pins: mclk_c {
426					mux {
427						groups = "mclk_c";
428						function = "mclk_c";
429						bias-disable;
430					};
431				};
432
433				pdm_dclk_a14_pins: pdm_dclk_a14 {
434					mux {
435						groups = "pdm_dclk_a14";
436						function = "pdm";
437						bias-disable;
438					};
439				};
440
441				pdm_dclk_a19_pins: pdm_dclk_a19 {
442					mux {
443						groups = "pdm_dclk_a19";
444						function = "pdm";
445						bias-disable;
446					};
447				};
448
449				pdm_din0_pins: pdm_din0 {
450					mux {
451						groups = "pdm_din0";
452						function = "pdm";
453						bias-disable;
454					};
455				};
456
457				pdm_din1_pins: pdm_din1 {
458					mux {
459						groups = "pdm_din1";
460						function = "pdm";
461						bias-disable;
462					};
463				};
464
465				pdm_din2_pins: pdm_din2 {
466					mux {
467						groups = "pdm_din2";
468						function = "pdm";
469						bias-disable;
470					};
471				};
472
473				pdm_din3_pins: pdm_din3 {
474					mux {
475						groups = "pdm_din3";
476						function = "pdm";
477						bias-disable;
478					};
479				};
480
481				pwm_a_a_pins: pwm_a_a {
482					mux {
483						groups = "pwm_a_a";
484						function = "pwm_a";
485						bias-disable;
486					};
487				};
488
489				pwm_a_x18_pins: pwm_a_x18 {
490					mux {
491						groups = "pwm_a_x18";
492						function = "pwm_a";
493						bias-disable;
494					};
495				};
496
497				pwm_a_x20_pins: pwm_a_x20 {
498					mux {
499						groups = "pwm_a_x20";
500						function = "pwm_a";
501						bias-disable;
502					};
503				};
504
505				pwm_a_z_pins: pwm_a_z {
506					mux {
507						groups = "pwm_a_z";
508						function = "pwm_a";
509						bias-disable;
510					};
511				};
512
513				pwm_b_a_pins: pwm_b_a {
514					mux {
515						groups = "pwm_b_a";
516						function = "pwm_b";
517						bias-disable;
518					};
519				};
520
521				pwm_b_x_pins: pwm_b_x {
522					mux {
523						groups = "pwm_b_x";
524						function = "pwm_b";
525						bias-disable;
526					};
527				};
528
529				pwm_b_z_pins: pwm_b_z {
530					mux {
531						groups = "pwm_b_z";
532						function = "pwm_b";
533						bias-disable;
534					};
535				};
536
537				pwm_c_a_pins: pwm_c_a {
538					mux {
539						groups = "pwm_c_a";
540						function = "pwm_c";
541						bias-disable;
542					};
543				};
544
545				pwm_c_x10_pins: pwm_c_x10 {
546					mux {
547						groups = "pwm_c_x10";
548						function = "pwm_c";
549						bias-disable;
550					};
551				};
552
553				pwm_c_x17_pins: pwm_c_x17 {
554					mux {
555						groups = "pwm_c_x17";
556						function = "pwm_c";
557						bias-disable;
558					};
559				};
560
561				pwm_d_x11_pins: pwm_d_x11 {
562					mux {
563						groups = "pwm_d_x11";
564						function = "pwm_d";
565						bias-disable;
566					};
567				};
568
569				pwm_d_x16_pins: pwm_d_x16 {
570					mux {
571						groups = "pwm_d_x16";
572						function = "pwm_d";
573						bias-disable;
574					};
575				};
576
577				sdio_pins: sdio {
578					mux-0 {
579						groups = "sdio_d0",
580							 "sdio_d1",
581							 "sdio_d2",
582							 "sdio_d3",
583							 "sdio_cmd";
584						function = "sdio";
585						bias-pull-up;
586					};
587
588					mux-1 {
589						groups = "sdio_clk";
590						function = "sdio";
591						bias-disable;
592					};
593				};
594
595				sdio_clk_gate_pins: sdio_clk_gate {
596					mux {
597						groups = "GPIOX_4";
598						function = "gpio_periphs";
599						bias-pull-down;
600					};
601				};
602
603				spdif_in_z_pins: spdif_in_z {
604					mux {
605						groups = "spdif_in_z";
606						function = "spdif_in";
607						bias-disable;
608					};
609				};
610
611				spdif_in_a1_pins: spdif_in_a1 {
612					mux {
613						groups = "spdif_in_a1";
614						function = "spdif_in";
615						bias-disable;
616					};
617				};
618
619				spdif_in_a7_pins: spdif_in_a7 {
620					mux {
621						groups = "spdif_in_a7";
622						function = "spdif_in";
623						bias-disable;
624					};
625				};
626
627				spdif_in_a19_pins: spdif_in_a19 {
628					mux {
629						groups = "spdif_in_a19";
630						function = "spdif_in";
631						bias-disable;
632					};
633				};
634
635				spdif_in_a20_pins: spdif_in_a20 {
636					mux {
637						groups = "spdif_in_a20";
638						function = "spdif_in";
639						bias-disable;
640					};
641				};
642
643				spdif_out_a1_pins: spdif_out_a1 {
644					mux {
645						groups = "spdif_out_a1";
646						function = "spdif_out";
647						bias-disable;
648					};
649				};
650
651				spdif_out_a11_pins: spdif_out_a11 {
652					mux {
653						groups = "spdif_out_a11";
654						function = "spdif_out";
655						bias-disable;
656					};
657				};
658
659				spdif_out_a19_pins: spdif_out_a19 {
660					mux {
661						groups = "spdif_out_a19";
662						function = "spdif_out";
663						bias-disable;
664					};
665				};
666
667				spdif_out_a20_pins: spdif_out_a20 {
668					mux {
669						groups = "spdif_out_a20";
670						function = "spdif_out";
671						bias-disable;
672					};
673				};
674
675				spdif_out_z_pins: spdif_out_z {
676					mux {
677						groups = "spdif_out_z";
678						function = "spdif_out";
679						bias-disable;
680					};
681				};
682
683				spi0_pins: spi0 {
684					mux {
685						groups = "spi0_miso",
686							 "spi0_mosi",
687							 "spi0_clk";
688						function = "spi0";
689						bias-disable;
690					};
691				};
692
693				spi0_ss0_pins: spi0_ss0 {
694					mux {
695						groups = "spi0_ss0";
696						function = "spi0";
697						bias-disable;
698					};
699				};
700
701				spi0_ss1_pins: spi0_ss1 {
702					mux {
703						groups = "spi0_ss1";
704						function = "spi0";
705						bias-disable;
706					};
707				};
708
709				spi0_ss2_pins: spi0_ss2 {
710					mux {
711						groups = "spi0_ss2";
712						function = "spi0";
713						bias-disable;
714					};
715				};
716
717				spi1_a_pins: spi1_a {
718					mux {
719						groups = "spi1_miso_a",
720							 "spi1_mosi_a",
721							 "spi1_clk_a";
722						function = "spi1";
723						bias-disable;
724					};
725				};
726
727				spi1_ss0_a_pins: spi1_ss0_a {
728					mux {
729						groups = "spi1_ss0_a";
730						function = "spi1";
731						bias-disable;
732					};
733				};
734
735				spi1_ss1_pins: spi1_ss1 {
736					mux {
737						groups = "spi1_ss1";
738						function = "spi1";
739						bias-disable;
740					};
741				};
742
743				spi1_x_pins: spi1_x {
744					mux {
745						groups = "spi1_miso_x",
746							 "spi1_mosi_x",
747							 "spi1_clk_x";
748						function = "spi1";
749						bias-disable;
750					};
751				};
752
753				spi1_ss0_x_pins: spi1_ss0_x {
754					mux {
755						groups = "spi1_ss0_x";
756						function = "spi1";
757						bias-disable;
758					};
759				};
760
761				tdma_din0_pins: tdma_din0 {
762					mux {
763						groups = "tdma_din0";
764						function = "tdma";
765						bias-disable;
766					};
767				};
768
769				tdma_dout0_x14_pins: tdma_dout0_x14 {
770					mux {
771						groups = "tdma_dout0_x14";
772						function = "tdma";
773						bias-disable;
774					};
775				};
776
777				tdma_dout0_x15_pins: tdma_dout0_x15 {
778					mux {
779						groups = "tdma_dout0_x15";
780						function = "tdma";
781						bias-disable;
782					};
783				};
784
785				tdma_dout1_pins: tdma_dout1 {
786					mux {
787						groups = "tdma_dout1";
788						function = "tdma";
789						bias-disable;
790					};
791				};
792
793				tdma_din1_pins: tdma_din1 {
794					mux {
795						groups = "tdma_din1";
796						function = "tdma";
797						bias-disable;
798					};
799				};
800
801				tdma_fs_pins: tdma_fs {
802					mux {
803						groups = "tdma_fs";
804						function = "tdma";
805						bias-disable;
806					};
807				};
808
809				tdma_fs_slv_pins: tdma_fs_slv {
810					mux {
811						groups = "tdma_fs_slv";
812						function = "tdma";
813						bias-disable;
814					};
815				};
816
817				tdma_sclk_pins: tdma_sclk {
818					mux {
819						groups = "tdma_sclk";
820						function = "tdma";
821						bias-disable;
822					};
823				};
824
825				tdma_sclk_slv_pins: tdma_sclk_slv {
826					mux {
827						groups = "tdma_sclk_slv";
828						function = "tdma";
829						bias-disable;
830					};
831				};
832
833				tdmb_din0_pins: tdmb_din0 {
834					mux {
835						groups = "tdmb_din0";
836						function = "tdmb";
837						bias-disable;
838					};
839				};
840
841				tdmb_din1_pins: tdmb_din1 {
842					mux {
843						groups = "tdmb_din1";
844						function = "tdmb";
845						bias-disable;
846					};
847				};
848
849				tdmb_din2_pins: tdmb_din2 {
850					mux {
851						groups = "tdmb_din2";
852						function = "tdmb";
853						bias-disable;
854					};
855				};
856
857				tdmb_din3_pins: tdmb_din3 {
858					mux {
859						groups = "tdmb_din3";
860						function = "tdmb";
861						bias-disable;
862					};
863				};
864
865				tdmb_dout0_pins: tdmb_dout0 {
866					mux {
867						groups = "tdmb_dout0";
868						function = "tdmb";
869						bias-disable;
870					};
871				};
872
873				tdmb_dout1_pins: tdmb_dout1 {
874					mux {
875						groups = "tdmb_dout1";
876						function = "tdmb";
877						bias-disable;
878					};
879				};
880
881				tdmb_dout2_pins: tdmb_dout2 {
882					mux {
883						groups = "tdmb_dout2";
884						function = "tdmb";
885						bias-disable;
886					};
887				};
888
889				tdmb_dout3_pins: tdmb_dout3 {
890					mux {
891						groups = "tdmb_dout3";
892						function = "tdmb";
893						bias-disable;
894					};
895				};
896
897				tdmb_fs_pins: tdmb_fs {
898					mux {
899						groups = "tdmb_fs";
900						function = "tdmb";
901						bias-disable;
902					};
903				};
904
905				tdmb_fs_slv_pins: tdmb_fs_slv {
906					mux {
907						groups = "tdmb_fs_slv";
908						function = "tdmb";
909						bias-disable;
910					};
911				};
912
913				tdmb_sclk_pins: tdmb_sclk {
914					mux {
915						groups = "tdmb_sclk";
916						function = "tdmb";
917						bias-disable;
918					};
919				};
920
921				tdmb_sclk_slv_pins: tdmb_sclk_slv {
922					mux {
923						groups = "tdmb_sclk_slv";
924						function = "tdmb";
925						bias-disable;
926					};
927				};
928
929				tdmc_fs_pins: tdmc_fs {
930					mux {
931						groups = "tdmc_fs";
932						function = "tdmc";
933						bias-disable;
934					};
935				};
936
937				tdmc_fs_slv_pins: tdmc_fs_slv {
938					mux {
939						groups = "tdmc_fs_slv";
940						function = "tdmc";
941						bias-disable;
942					};
943				};
944
945				tdmc_sclk_pins: tdmc_sclk {
946					mux {
947						groups = "tdmc_sclk";
948						function = "tdmc";
949						bias-disable;
950					};
951				};
952
953				tdmc_sclk_slv_pins: tdmc_sclk_slv {
954					mux {
955						groups = "tdmc_sclk_slv";
956						function = "tdmc";
957						bias-disable;
958					};
959				};
960
961				tdmc_din0_pins: tdmc_din0 {
962					mux {
963						groups = "tdmc_din0";
964						function = "tdmc";
965						bias-disable;
966					};
967				};
968
969				tdmc_din1_pins: tdmc_din1 {
970					mux {
971						groups = "tdmc_din1";
972						function = "tdmc";
973						bias-disable;
974					};
975				};
976
977				tdmc_din2_pins: tdmc_din2 {
978					mux {
979						groups = "tdmc_din2";
980						function = "tdmc";
981						bias-disable;
982					};
983				};
984
985				tdmc_din3_pins: tdmc_din3 {
986					mux {
987						groups = "tdmc_din3";
988						function = "tdmc";
989						bias-disable;
990					};
991				};
992
993				tdmc_dout0_pins: tdmc_dout0 {
994					mux {
995						groups = "tdmc_dout0";
996						function = "tdmc";
997						bias-disable;
998					};
999				};
1000
1001				tdmc_dout1_pins: tdmc_dout1 {
1002					mux {
1003						groups = "tdmc_dout1";
1004						function = "tdmc";
1005						bias-disable;
1006					};
1007				};
1008
1009				tdmc_dout2_pins: tdmc_dout2 {
1010					mux {
1011						groups = "tdmc_dout2";
1012						function = "tdmc";
1013						bias-disable;
1014					};
1015				};
1016
1017				tdmc_dout3_pins: tdmc_dout3 {
1018					mux {
1019						groups = "tdmc_dout3";
1020						function = "tdmc";
1021						bias-disable;
1022					};
1023				};
1024
1025				uart_a_pins: uart_a {
1026					mux {
1027						groups = "uart_tx_a",
1028							 "uart_rx_a";
1029						function = "uart_a";
1030						bias-disable;
1031					};
1032				};
1033
1034				uart_a_cts_rts_pins: uart_a_cts_rts {
1035					mux {
1036						groups = "uart_cts_a",
1037							 "uart_rts_a";
1038						function = "uart_a";
1039						bias-disable;
1040					};
1041				};
1042
1043				uart_b_x_pins: uart_b_x {
1044					mux {
1045						groups = "uart_tx_b_x",
1046							 "uart_rx_b_x";
1047						function = "uart_b";
1048						bias-disable;
1049					};
1050				};
1051
1052				uart_b_x_cts_rts_pins: uart_b_x_cts_rts {
1053					mux {
1054						groups = "uart_cts_b_x",
1055							 "uart_rts_b_x";
1056						function = "uart_b";
1057						bias-disable;
1058					};
1059				};
1060
1061				uart_b_z_pins: uart_b_z {
1062					mux {
1063						groups = "uart_tx_b_z",
1064							 "uart_rx_b_z";
1065						function = "uart_b";
1066						bias-disable;
1067					};
1068				};
1069
1070				uart_b_z_cts_rts_pins: uart_b_z_cts_rts {
1071					mux {
1072						groups = "uart_cts_b_z",
1073							 "uart_rts_b_z";
1074						function = "uart_b";
1075						bias-disable;
1076					};
1077				};
1078
1079				uart_ao_b_z_pins: uart_ao_b_z {
1080					mux {
1081						groups = "uart_ao_tx_b_z",
1082							 "uart_ao_rx_b_z";
1083						function = "uart_ao_b_z";
1084						bias-disable;
1085					};
1086				};
1087
1088				uart_ao_b_z_cts_rts_pins: uart_ao_b_z_cts_rts {
1089					mux {
1090						groups = "uart_ao_cts_b_z",
1091							 "uart_ao_rts_b_z";
1092						function = "uart_ao_b_z";
1093						bias-disable;
1094					};
1095				};
1096			};
1097		};
1098
1099		hiubus: bus@ff63c000 {
1100			compatible = "simple-bus";
1101			reg = <0x0 0xff63c000 0x0 0x1c00>;
1102			#address-cells = <2>;
1103			#size-cells = <2>;
1104			ranges = <0x0 0x0 0x0 0xff63c000 0x0 0x1c00>;
1105
1106			sysctrl: system-controller@0 {
1107				compatible = "amlogic,meson-axg-hhi-sysctrl",
1108					     "simple-mfd", "syscon";
1109				reg = <0 0 0 0x400>;
1110
1111				clkc: clock-controller {
1112					compatible = "amlogic,axg-clkc";
1113					#clock-cells = <1>;
1114					clocks = <&xtal>;
1115					clock-names = "xtal";
1116				};
1117			};
1118		};
1119
1120		mailbox: mailbox@ff63c404 {
1121			compatible = "amlogic,meson-gxbb-mhu";
1122			reg = <0 0xff63c404 0 0x4c>;
1123			interrupts = <GIC_SPI 208 IRQ_TYPE_EDGE_RISING>,
1124				     <GIC_SPI 209 IRQ_TYPE_EDGE_RISING>,
1125				     <GIC_SPI 210 IRQ_TYPE_EDGE_RISING>;
1126			#mbox-cells = <1>;
1127		};
1128
1129		audio: bus@ff642000 {
1130			compatible = "simple-bus";
1131			reg = <0x0 0xff642000 0x0 0x2000>;
1132			#address-cells = <2>;
1133			#size-cells = <2>;
1134			ranges = <0x0 0x0 0x0 0xff642000 0x0 0x2000>;
1135
1136			clkc_audio: clock-controller@0 {
1137				compatible = "amlogic,axg-audio-clkc";
1138				reg = <0x0 0x0 0x0 0xb4>;
1139				#clock-cells = <1>;
1140
1141				clocks = <&clkc CLKID_AUDIO>,
1142					 <&clkc CLKID_MPLL0>,
1143					 <&clkc CLKID_MPLL1>,
1144					 <&clkc CLKID_MPLL2>,
1145					 <&clkc CLKID_MPLL3>,
1146					 <&clkc CLKID_HIFI_PLL>,
1147					 <&clkc CLKID_FCLK_DIV3>,
1148					 <&clkc CLKID_FCLK_DIV4>,
1149					 <&clkc CLKID_GP0_PLL>;
1150				clock-names = "pclk",
1151					      "mst_in0",
1152					      "mst_in1",
1153					      "mst_in2",
1154					      "mst_in3",
1155					      "mst_in4",
1156					      "mst_in5",
1157					      "mst_in6",
1158					      "mst_in7";
1159
1160				resets = <&reset RESET_AUDIO>;
1161			};
1162
1163			toddr_a: audio-controller@100 {
1164				compatible = "amlogic,axg-toddr";
1165				reg = <0x0 0x100 0x0 0x1c>;
1166				#sound-dai-cells = <0>;
1167				sound-name-prefix = "TODDR_A";
1168				interrupts = <GIC_SPI 84 IRQ_TYPE_EDGE_RISING>;
1169				clocks = <&clkc_audio AUD_CLKID_TODDR_A>;
1170				resets = <&arb AXG_ARB_TODDR_A>;
1171				status = "disabled";
1172			};
1173
1174			toddr_b: audio-controller@140 {
1175				compatible = "amlogic,axg-toddr";
1176				reg = <0x0 0x140 0x0 0x1c>;
1177				#sound-dai-cells = <0>;
1178				sound-name-prefix = "TODDR_B";
1179				interrupts = <GIC_SPI 85 IRQ_TYPE_EDGE_RISING>;
1180				clocks = <&clkc_audio AUD_CLKID_TODDR_B>;
1181				resets = <&arb AXG_ARB_TODDR_B>;
1182				status = "disabled";
1183			};
1184
1185			toddr_c: audio-controller@180 {
1186				compatible = "amlogic,axg-toddr";
1187				reg = <0x0 0x180 0x0 0x1c>;
1188				#sound-dai-cells = <0>;
1189				sound-name-prefix = "TODDR_C";
1190				interrupts = <GIC_SPI 86 IRQ_TYPE_EDGE_RISING>;
1191				clocks = <&clkc_audio AUD_CLKID_TODDR_C>;
1192				resets = <&arb AXG_ARB_TODDR_C>;
1193				status = "disabled";
1194			};
1195
1196			frddr_a: audio-controller@1c0 {
1197				compatible = "amlogic,axg-frddr";
1198				reg = <0x0 0x1c0 0x0 0x1c>;
1199				#sound-dai-cells = <0>;
1200				sound-name-prefix = "FRDDR_A";
1201				interrupts = <GIC_SPI 88 IRQ_TYPE_EDGE_RISING>;
1202				clocks = <&clkc_audio AUD_CLKID_FRDDR_A>;
1203				resets = <&arb AXG_ARB_FRDDR_A>;
1204				status = "disabled";
1205			};
1206
1207			frddr_b: audio-controller@200 {
1208				compatible = "amlogic,axg-frddr";
1209				reg = <0x0 0x200 0x0 0x1c>;
1210				#sound-dai-cells = <0>;
1211				sound-name-prefix = "FRDDR_B";
1212				interrupts = <GIC_SPI 89 IRQ_TYPE_EDGE_RISING>;
1213				clocks = <&clkc_audio AUD_CLKID_FRDDR_B>;
1214				resets = <&arb AXG_ARB_FRDDR_B>;
1215				status = "disabled";
1216			};
1217
1218			frddr_c: audio-controller@240 {
1219				compatible = "amlogic,axg-frddr";
1220				reg = <0x0 0x240 0x0 0x1c>;
1221				#sound-dai-cells = <0>;
1222				sound-name-prefix = "FRDDR_C";
1223				interrupts = <GIC_SPI 90 IRQ_TYPE_EDGE_RISING>;
1224				clocks = <&clkc_audio AUD_CLKID_FRDDR_C>;
1225				resets = <&arb AXG_ARB_FRDDR_C>;
1226				status = "disabled";
1227			};
1228
1229			arb: reset-controller@280 {
1230				compatible = "amlogic,meson-axg-audio-arb";
1231				reg = <0x0 0x280 0x0 0x4>;
1232				#reset-cells = <1>;
1233				clocks = <&clkc_audio AUD_CLKID_DDR_ARB>;
1234			};
1235
1236			tdmin_a: audio-controller@300 {
1237				compatible = "amlogic,axg-tdmin";
1238				reg = <0x0 0x300 0x0 0x40>;
1239				sound-name-prefix = "TDMIN_A";
1240				clocks = <&clkc_audio AUD_CLKID_TDMIN_A>,
1241					 <&clkc_audio AUD_CLKID_TDMIN_A_SCLK>,
1242					 <&clkc_audio AUD_CLKID_TDMIN_A_SCLK_SEL>,
1243					 <&clkc_audio AUD_CLKID_TDMIN_A_LRCLK>,
1244					 <&clkc_audio AUD_CLKID_TDMIN_A_LRCLK>;
1245				clock-names = "pclk", "sclk", "sclk_sel",
1246					      "lrclk", "lrclk_sel";
1247				status = "disabled";
1248			};
1249
1250			tdmin_b: audio-controller@340 {
1251				compatible = "amlogic,axg-tdmin";
1252				reg = <0x0 0x340 0x0 0x40>;
1253				sound-name-prefix = "TDMIN_B";
1254				clocks = <&clkc_audio AUD_CLKID_TDMIN_B>,
1255					 <&clkc_audio AUD_CLKID_TDMIN_B_SCLK>,
1256					 <&clkc_audio AUD_CLKID_TDMIN_B_SCLK_SEL>,
1257					 <&clkc_audio AUD_CLKID_TDMIN_B_LRCLK>,
1258					 <&clkc_audio AUD_CLKID_TDMIN_B_LRCLK>;
1259				clock-names = "pclk", "sclk", "sclk_sel",
1260					      "lrclk", "lrclk_sel";
1261				status = "disabled";
1262			};
1263
1264			tdmin_c: audio-controller@380 {
1265				compatible = "amlogic,axg-tdmin";
1266				reg = <0x0 0x380 0x0 0x40>;
1267				sound-name-prefix = "TDMIN_C";
1268				clocks = <&clkc_audio AUD_CLKID_TDMIN_C>,
1269					 <&clkc_audio AUD_CLKID_TDMIN_C_SCLK>,
1270					 <&clkc_audio AUD_CLKID_TDMIN_C_SCLK_SEL>,
1271					 <&clkc_audio AUD_CLKID_TDMIN_C_LRCLK>,
1272					 <&clkc_audio AUD_CLKID_TDMIN_C_LRCLK>;
1273				clock-names = "pclk", "sclk", "sclk_sel",
1274					      "lrclk", "lrclk_sel";
1275				status = "disabled";
1276			};
1277
1278			tdmin_lb: audio-controller@3c0 {
1279				compatible = "amlogic,axg-tdmin";
1280				reg = <0x0 0x3c0 0x0 0x40>;
1281				sound-name-prefix = "TDMIN_LB";
1282				clocks = <&clkc_audio AUD_CLKID_TDMIN_LB>,
1283					 <&clkc_audio AUD_CLKID_TDMIN_LB_SCLK>,
1284					 <&clkc_audio AUD_CLKID_TDMIN_LB_SCLK_SEL>,
1285					 <&clkc_audio AUD_CLKID_TDMIN_LB_LRCLK>,
1286					 <&clkc_audio AUD_CLKID_TDMIN_LB_LRCLK>;
1287				clock-names = "pclk", "sclk", "sclk_sel",
1288					      "lrclk", "lrclk_sel";
1289				status = "disabled";
1290			};
1291
1292			spdifin: audio-controller@400 {
1293				compatible = "amlogic,axg-spdifin";
1294				reg = <0x0 0x400 0x0 0x30>;
1295				#sound-dai-cells = <0>;
1296				sound-name-prefix = "SPDIFIN";
1297				interrupts = <GIC_SPI 87 IRQ_TYPE_EDGE_RISING>;
1298				clocks = <&clkc_audio AUD_CLKID_SPDIFIN>,
1299					 <&clkc_audio AUD_CLKID_SPDIFIN_CLK>;
1300				clock-names = "pclk", "refclk";
1301				status = "disabled";
1302			};
1303
1304			spdifout: audio-controller@480 {
1305				compatible = "amlogic,axg-spdifout";
1306				reg = <0x0 0x480 0x0 0x50>;
1307				#sound-dai-cells = <0>;
1308				sound-name-prefix = "SPDIFOUT";
1309				clocks = <&clkc_audio AUD_CLKID_SPDIFOUT>,
1310					 <&clkc_audio AUD_CLKID_SPDIFOUT_CLK>;
1311				clock-names = "pclk", "mclk";
1312				status = "disabled";
1313			};
1314
1315			tdmout_a: audio-controller@500 {
1316				compatible = "amlogic,axg-tdmout";
1317				reg = <0x0 0x500 0x0 0x40>;
1318				sound-name-prefix = "TDMOUT_A";
1319				clocks = <&clkc_audio AUD_CLKID_TDMOUT_A>,
1320					 <&clkc_audio AUD_CLKID_TDMOUT_A_SCLK>,
1321					 <&clkc_audio AUD_CLKID_TDMOUT_A_SCLK_SEL>,
1322					 <&clkc_audio AUD_CLKID_TDMOUT_A_LRCLK>,
1323					 <&clkc_audio AUD_CLKID_TDMOUT_A_LRCLK>;
1324				clock-names = "pclk", "sclk", "sclk_sel",
1325					      "lrclk", "lrclk_sel";
1326				status = "disabled";
1327			};
1328
1329			tdmout_b: audio-controller@540 {
1330				compatible = "amlogic,axg-tdmout";
1331				reg = <0x0 0x540 0x0 0x40>;
1332				sound-name-prefix = "TDMOUT_B";
1333				clocks = <&clkc_audio AUD_CLKID_TDMOUT_B>,
1334					 <&clkc_audio AUD_CLKID_TDMOUT_B_SCLK>,
1335					 <&clkc_audio AUD_CLKID_TDMOUT_B_SCLK_SEL>,
1336					 <&clkc_audio AUD_CLKID_TDMOUT_B_LRCLK>,
1337					 <&clkc_audio AUD_CLKID_TDMOUT_B_LRCLK>;
1338				clock-names = "pclk", "sclk", "sclk_sel",
1339					      "lrclk", "lrclk_sel";
1340				status = "disabled";
1341			};
1342
1343			tdmout_c: audio-controller@580 {
1344				compatible = "amlogic,axg-tdmout";
1345				reg = <0x0 0x580 0x0 0x40>;
1346				sound-name-prefix = "TDMOUT_C";
1347				clocks = <&clkc_audio AUD_CLKID_TDMOUT_C>,
1348					 <&clkc_audio AUD_CLKID_TDMOUT_C_SCLK>,
1349					 <&clkc_audio AUD_CLKID_TDMOUT_C_SCLK_SEL>,
1350					 <&clkc_audio AUD_CLKID_TDMOUT_C_LRCLK>,
1351					 <&clkc_audio AUD_CLKID_TDMOUT_C_LRCLK>;
1352				clock-names = "pclk", "sclk", "sclk_sel",
1353					      "lrclk", "lrclk_sel";
1354				status = "disabled";
1355			};
1356		};
1357
1358		aobus: bus@ff800000 {
1359			compatible = "simple-bus";
1360			reg = <0x0 0xff800000 0x0 0x100000>;
1361			#address-cells = <2>;
1362			#size-cells = <2>;
1363			ranges = <0x0 0x0 0x0 0xff800000 0x0 0x100000>;
1364
1365			sysctrl_AO: sys-ctrl@0 {
1366				compatible = "amlogic,meson-axg-ao-sysctrl", "simple-mfd", "syscon";
1367				reg =  <0x0 0x0 0x0 0x100>;
1368
1369				clkc_AO: clock-controller {
1370					compatible = "amlogic,meson-axg-aoclkc";
1371					#clock-cells = <1>;
1372					#reset-cells = <1>;
1373					clocks = <&xtal>, <&clkc CLKID_CLK81>;
1374					clock-names = "xtal", "mpeg-clk";
1375				};
1376			};
1377
1378			pinctrl_aobus: pinctrl@14 {
1379				compatible = "amlogic,meson-axg-aobus-pinctrl";
1380				#address-cells = <2>;
1381				#size-cells = <2>;
1382				ranges;
1383
1384				gpio_ao: bank@14 {
1385					reg = <0x0 0x00014 0x0 0x8>,
1386					      <0x0 0x0002c 0x0 0x4>,
1387					      <0x0 0x00024 0x0 0x8>;
1388					reg-names = "mux", "pull", "gpio";
1389					gpio-controller;
1390					#gpio-cells = <2>;
1391					gpio-ranges = <&pinctrl_aobus 0 0 15>;
1392				};
1393
1394				i2c_ao_sck_4_pins: i2c_ao_sck_4 {
1395					mux {
1396						groups = "i2c_ao_sck_4";
1397						function = "i2c_ao";
1398						bias-disable;
1399					};
1400				};
1401
1402				i2c_ao_sck_8_pins: i2c_ao_sck_8 {
1403					mux {
1404						groups = "i2c_ao_sck_8";
1405						function = "i2c_ao";
1406						bias-disable;
1407					};
1408				};
1409
1410				i2c_ao_sck_10_pins: i2c_ao_sck_10 {
1411					mux {
1412						groups = "i2c_ao_sck_10";
1413						function = "i2c_ao";
1414						bias-disable;
1415					};
1416				};
1417
1418				i2c_ao_sda_5_pins: i2c_ao_sda_5 {
1419					mux {
1420						groups = "i2c_ao_sda_5";
1421						function = "i2c_ao";
1422						bias-disable;
1423					};
1424				};
1425
1426				i2c_ao_sda_9_pins: i2c_ao_sda_9 {
1427					mux {
1428						groups = "i2c_ao_sda_9";
1429						function = "i2c_ao";
1430						bias-disable;
1431					};
1432				};
1433
1434				i2c_ao_sda_11_pins: i2c_ao_sda_11 {
1435					mux {
1436						groups = "i2c_ao_sda_11";
1437						function = "i2c_ao";
1438						bias-disable;
1439					};
1440				};
1441
1442				remote_input_ao_pins: remote_input_ao {
1443					mux {
1444						groups = "remote_input_ao";
1445						function = "remote_input_ao";
1446						bias-disable;
1447					};
1448				};
1449
1450				uart_ao_a_pins: uart_ao_a {
1451					mux {
1452						groups = "uart_ao_tx_a",
1453							 "uart_ao_rx_a";
1454						function = "uart_ao_a";
1455						bias-disable;
1456					};
1457				};
1458
1459				uart_ao_a_cts_rts_pins: uart_ao_a_cts_rts {
1460					mux {
1461						groups = "uart_ao_cts_a",
1462							 "uart_ao_rts_a";
1463						function = "uart_ao_a";
1464						bias-disable;
1465					};
1466				};
1467
1468				uart_ao_b_pins: uart_ao_b {
1469					mux {
1470						groups = "uart_ao_tx_b",
1471							 "uart_ao_rx_b";
1472						function = "uart_ao_b";
1473						bias-disable;
1474					};
1475				};
1476
1477				uart_ao_b_cts_rts_pins: uart_ao_b_cts_rts {
1478					mux {
1479						groups = "uart_ao_cts_b",
1480							 "uart_ao_rts_b";
1481						function = "uart_ao_b";
1482						bias-disable;
1483					};
1484				};
1485			};
1486
1487			sec_AO: ao-secure@140 {
1488				compatible = "amlogic,meson-gx-ao-secure", "syscon";
1489				reg = <0x0 0x140 0x0 0x140>;
1490				amlogic,has-chip-id;
1491			};
1492
1493			pwm_AO_cd: pwm@2000 {
1494				compatible = "amlogic,meson-axg-ao-pwm";
1495				reg = <0x0 0x02000  0x0 0x20>;
1496				#pwm-cells = <3>;
1497				status = "disabled";
1498			};
1499
1500			uart_AO: serial@3000 {
1501				compatible = "amlogic,meson-gx-uart", "amlogic,meson-ao-uart";
1502				reg = <0x0 0x3000 0x0 0x18>;
1503				interrupts = <GIC_SPI 193 IRQ_TYPE_EDGE_RISING>;
1504				clocks = <&xtal>, <&clkc_AO CLKID_AO_UART1>, <&xtal>;
1505				clock-names = "xtal", "pclk", "baud";
1506				status = "disabled";
1507			};
1508
1509			uart_AO_B: serial@4000 {
1510				compatible = "amlogic,meson-gx-uart", "amlogic,meson-ao-uart";
1511				reg = <0x0 0x4000 0x0 0x18>;
1512				interrupts = <GIC_SPI 197 IRQ_TYPE_EDGE_RISING>;
1513				clocks = <&xtal>, <&clkc_AO CLKID_AO_UART2>, <&xtal>;
1514				clock-names = "xtal", "pclk", "baud";
1515				status = "disabled";
1516			};
1517
1518			i2c_AO: i2c@5000 {
1519				compatible = "amlogic,meson-axg-i2c";
1520				reg = <0x0 0x05000 0x0 0x20>;
1521				interrupts = <GIC_SPI 195 IRQ_TYPE_EDGE_RISING>;
1522				clocks = <&clkc CLKID_AO_I2C>;
1523				#address-cells = <1>;
1524				#size-cells = <0>;
1525				status = "disabled";
1526			};
1527
1528			pwm_AO_ab: pwm@7000 {
1529				compatible = "amlogic,meson-axg-ao-pwm";
1530				reg = <0x0 0x07000 0x0 0x20>;
1531				#pwm-cells = <3>;
1532				status = "disabled";
1533			};
1534
1535			ir: ir@8000 {
1536				compatible = "amlogic,meson-gxbb-ir";
1537				reg = <0x0 0x8000 0x0 0x20>;
1538				interrupts = <GIC_SPI 196 IRQ_TYPE_EDGE_RISING>;
1539				status = "disabled";
1540			};
1541
1542			saradc: adc@9000 {
1543				compatible = "amlogic,meson-axg-saradc",
1544					"amlogic,meson-saradc";
1545				reg = <0x0 0x9000 0x0 0x38>;
1546				#io-channel-cells = <1>;
1547				interrupts = <GIC_SPI 73 IRQ_TYPE_EDGE_RISING>;
1548				clocks = <&xtal>,
1549					 <&clkc_AO CLKID_AO_SAR_ADC>,
1550					 <&clkc_AO CLKID_AO_SAR_ADC_CLK>,
1551					 <&clkc_AO CLKID_AO_SAR_ADC_SEL>;
1552				clock-names = "clkin", "core", "adc_clk", "adc_sel";
1553				status = "disabled";
1554			};
1555		};
1556
1557		gic: interrupt-controller@ffc01000 {
1558			compatible = "arm,gic-400";
1559			reg = <0x0 0xffc01000 0 0x1000>,
1560			      <0x0 0xffc02000 0 0x2000>,
1561			      <0x0 0xffc04000 0 0x2000>,
1562			      <0x0 0xffc06000 0 0x2000>;
1563			interrupt-controller;
1564			interrupts = <GIC_PPI 9
1565				(GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>;
1566			#interrupt-cells = <3>;
1567			#address-cells = <0>;
1568		};
1569
1570		cbus: bus@ffd00000 {
1571			compatible = "simple-bus";
1572			reg = <0x0 0xffd00000 0x0 0x25000>;
1573			#address-cells = <2>;
1574			#size-cells = <2>;
1575			ranges = <0x0 0x0 0x0 0xffd00000 0x0 0x25000>;
1576
1577			reset: reset-controller@1004 {
1578				compatible = "amlogic,meson-axg-reset";
1579				reg = <0x0 0x01004 0x0 0x9c>;
1580				#reset-cells = <1>;
1581			};
1582
1583			gpio_intc: interrupt-controller@f080 {
1584				compatible = "amlogic,meson-axg-gpio-intc",
1585					     "amlogic,meson-gpio-intc";
1586				reg = <0x0 0xf080 0x0 0x10>;
1587				interrupt-controller;
1588				#interrupt-cells = <2>;
1589				amlogic,channel-interrupts = <64 65 66 67 68 69 70 71>;
1590			};
1591
1592			watchdog@f0d0 {
1593				compatible = "amlogic,meson-gxbb-wdt";
1594				reg = <0x0 0xf0d0 0x0 0x10>;
1595				clocks = <&xtal>;
1596			};
1597
1598			pwm_ab: pwm@1b000 {
1599				compatible = "amlogic,meson-axg-ee-pwm";
1600				reg = <0x0 0x1b000 0x0 0x20>;
1601				#pwm-cells = <3>;
1602				status = "disabled";
1603			};
1604
1605			pwm_cd: pwm@1a000 {
1606				compatible = "amlogic,meson-axg-ee-pwm";
1607				reg = <0x0 0x1a000 0x0 0x20>;
1608				#pwm-cells = <3>;
1609				status = "disabled";
1610			};
1611
1612			spicc0: spi@13000 {
1613				compatible = "amlogic,meson-axg-spicc";
1614				reg = <0x0 0x13000 0x0 0x3c>;
1615				interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
1616				clocks = <&clkc CLKID_SPICC0>;
1617				clock-names = "core";
1618				#address-cells = <1>;
1619				#size-cells = <0>;
1620				status = "disabled";
1621			};
1622
1623			spicc1: spi@15000 {
1624				compatible = "amlogic,meson-axg-spicc";
1625				reg = <0x0 0x15000 0x0 0x3c>;
1626				interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
1627				clocks = <&clkc CLKID_SPICC1>;
1628				clock-names = "core";
1629				#address-cells = <1>;
1630				#size-cells = <0>;
1631				status = "disabled";
1632			};
1633
1634			clk_msr: clock-measure@18000 {
1635				compatible = "amlogic,meson-axg-clk-measure";
1636				reg = <0x0 0x18000 0x0 0x10>;
1637			};
1638
1639			i2c3: i2c@1c000 {
1640				compatible = "amlogic,meson-axg-i2c";
1641				reg = <0x0 0x1c000 0x0 0x20>;
1642				interrupts = <GIC_SPI 39 IRQ_TYPE_EDGE_RISING>;
1643				clocks = <&clkc CLKID_I2C>;
1644				#address-cells = <1>;
1645				#size-cells = <0>;
1646				status = "disabled";
1647			};
1648
1649			i2c2: i2c@1d000 {
1650				compatible = "amlogic,meson-axg-i2c";
1651				reg = <0x0 0x1d000 0x0 0x20>;
1652				interrupts = <GIC_SPI 215 IRQ_TYPE_EDGE_RISING>;
1653				clocks = <&clkc CLKID_I2C>;
1654				#address-cells = <1>;
1655				#size-cells = <0>;
1656				status = "disabled";
1657			};
1658
1659			i2c1: i2c@1e000 {
1660				compatible = "amlogic,meson-axg-i2c";
1661				reg = <0x0 0x1e000 0x0 0x20>;
1662				interrupts = <GIC_SPI 214 IRQ_TYPE_EDGE_RISING>;
1663				clocks = <&clkc CLKID_I2C>;
1664				#address-cells = <1>;
1665				#size-cells = <0>;
1666				status = "disabled";
1667			};
1668
1669			i2c0: i2c@1f000 {
1670				compatible = "amlogic,meson-axg-i2c";
1671				reg = <0x0 0x1f000 0x0 0x20>;
1672				interrupts = <GIC_SPI 21 IRQ_TYPE_EDGE_RISING>;
1673				clocks = <&clkc CLKID_I2C>;
1674				#address-cells = <1>;
1675				#size-cells = <0>;
1676				status = "disabled";
1677			};
1678
1679			uart_B: serial@23000 {
1680				compatible = "amlogic,meson-gx-uart";
1681				reg = <0x0 0x23000 0x0 0x18>;
1682				interrupts = <GIC_SPI 75 IRQ_TYPE_EDGE_RISING>;
1683				status = "disabled";
1684				clocks = <&xtal>, <&clkc CLKID_UART1>, <&xtal>;
1685				clock-names = "xtal", "pclk", "baud";
1686			};
1687
1688			uart_A: serial@24000 {
1689				compatible = "amlogic,meson-gx-uart";
1690				reg = <0x0 0x24000 0x0 0x18>;
1691				interrupts = <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>;
1692				status = "disabled";
1693				clocks = <&xtal>, <&clkc CLKID_UART0>, <&xtal>;
1694				clock-names = "xtal", "pclk", "baud";
1695			};
1696		};
1697
1698		apb: bus@ffe00000 {
1699			compatible = "simple-bus";
1700			reg = <0x0 0xffe00000 0x0 0x200000>;
1701			#address-cells = <2>;
1702			#size-cells = <2>;
1703			ranges = <0x0 0x0 0x0 0xffe00000 0x0 0x200000>;
1704
1705			sd_emmc_b: sd@5000 {
1706				compatible = "amlogic,meson-axg-mmc";
1707				reg = <0x0 0x5000 0x0 0x800>;
1708				interrupts = <GIC_SPI 217 IRQ_TYPE_EDGE_RISING>;
1709				status = "disabled";
1710				clocks = <&clkc CLKID_SD_EMMC_B>,
1711					<&clkc CLKID_SD_EMMC_B_CLK0>,
1712					<&clkc CLKID_FCLK_DIV2>;
1713				clock-names = "core", "clkin0", "clkin1";
1714				resets = <&reset RESET_SD_EMMC_B>;
1715			};
1716
1717			sd_emmc_c: mmc@7000 {
1718				compatible = "amlogic,meson-axg-mmc";
1719				reg = <0x0 0x7000 0x0 0x800>;
1720				interrupts = <GIC_SPI 218 IRQ_TYPE_EDGE_RISING>;
1721				status = "disabled";
1722				clocks = <&clkc CLKID_SD_EMMC_C>,
1723					<&clkc CLKID_SD_EMMC_C_CLK0>,
1724					<&clkc CLKID_FCLK_DIV2>;
1725				clock-names = "core", "clkin0", "clkin1";
1726				resets = <&reset RESET_SD_EMMC_C>;
1727			};
1728		};
1729
1730		sram: sram@fffc0000 {
1731			compatible = "amlogic,meson-axg-sram", "mmio-sram";
1732			reg = <0x0 0xfffc0000 0x0 0x20000>;
1733			#address-cells = <1>;
1734			#size-cells = <1>;
1735			ranges = <0 0x0 0xfffc0000 0x20000>;
1736
1737			cpu_scp_lpri: scp-shmem@13000 {
1738				compatible = "amlogic,meson-axg-scp-shmem";
1739				reg = <0x13000 0x400>;
1740			};
1741
1742			cpu_scp_hpri: scp-shmem@13400 {
1743				compatible = "amlogic,meson-axg-scp-shmem";
1744				reg = <0x13400 0x400>;
1745			};
1746		};
1747	};
1748
1749	timer {
1750		compatible = "arm,armv8-timer";
1751		interrupts = <GIC_PPI 13
1752			(GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
1753			     <GIC_PPI 14
1754			(GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
1755			     <GIC_PPI 11
1756			(GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
1757			     <GIC_PPI 10
1758			(GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>;
1759	};
1760
1761	xtal: xtal-clk {
1762		compatible = "fixed-clock";
1763		clock-frequency = <24000000>;
1764		clock-output-names = "xtal";
1765		#clock-cells = <0>;
1766	};
1767};
1768