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