1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
3 * Copyright (c) 2017 Amlogic, Inc. All rights reserved.
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>
17 compatible = "amlogic,meson-axg";
19 interrupt-parent = <&gic>;
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";
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";
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";
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>;
66 #address-cells = <0x2>;
71 compatible = "arm,cortex-a53";
73 enable-method = "psci";
74 next-level-cache = <&l2>;
75 clocks = <&scpi_dvfs 0>;
80 compatible = "arm,cortex-a53";
82 enable-method = "psci";
83 next-level-cache = <&l2>;
84 clocks = <&scpi_dvfs 0>;
89 compatible = "arm,cortex-a53";
91 enable-method = "psci";
92 next-level-cache = <&l2>;
93 clocks = <&scpi_dvfs 0>;
98 compatible = "arm,cortex-a53";
100 enable-method = "psci";
101 next-level-cache = <&l2>;
102 clocks = <&scpi_dvfs 0>;
106 compatible = "cache";
111 compatible = "amlogic,meson-gxbb-sm";
115 compatible = "amlogic,meson-gxbb-efuse";
116 clocks = <&clkc CLKID_EFUSE>;
117 #address-cells = <1>;
120 secure-monitor = <&sm>;
124 compatible = "arm,psci-1.0";
129 #address-cells = <2>;
133 /* 16 MiB reserved for Hardware ROM Firmware */
134 hwrom_reserved: hwrom@0 {
135 reg = <0x0 0x0 0x0 0x1000000>;
139 /* Alternate 3 MiB reserved for ARM Trusted Firmware (BL31) */
140 secmon_reserved: secmon@5000000 {
141 reg = <0x0 0x05000000 0x0 0x300000>;
147 compatible = "arm,scpi-pre-1.0";
148 mboxes = <&mailbox 1 &mailbox 2>;
149 shmem = <&cpu_scp_lpri &cpu_scp_hpri>;
151 scpi_clocks: clocks {
152 compatible = "arm,scpi-clocks";
154 scpi_dvfs: clock-controller {
155 compatible = "arm,scpi-dvfs-clocks";
158 clock-output-names = "vcpu";
162 scpi_sensors: sensors {
163 compatible = "amlogic,meson-gxbb-scpi-sensors";
164 #thermal-sensor-cells = <1>;
169 compatible = "simple-bus";
170 #address-cells = <2>;
175 compatible = "amlogic,meson-axg-usb-ctrl";
176 reg = <0x0 0xffe09080 0x0 0x20>;
177 interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
178 #address-cells = <2>;
182 clocks = <&clkc CLKID_USB>, <&clkc CLKID_USB1_DDR_BRIDGE>;
183 clock-names = "usb_ctrl", "ddr";
184 resets = <&reset RESET_USB_OTG>;
189 phy-names = "usb2-phy1";
192 compatible = "amlogic,meson-g12a-usb", "snps,dwc2";
193 reg = <0x0 0xff400000 0x0 0x40000>;
194 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
195 clocks = <&clkc CLKID_USB1>;
198 dr_mode = "peripheral";
199 g-rx-fifo-size = <192>;
200 g-np-tx-fifo-size = <128>;
201 g-tx-fifo-size = <128 128 16 16 16>;
205 compatible = "snps,dwc3";
206 reg = <0x0 0xff500000 0x0 0x100000>;
207 interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
209 maximum-speed = "high-speed";
210 snps,dis_u2_susphy_quirk;
214 ethmac: ethernet@ff3f0000 {
215 compatible = "amlogic,meson-axg-dwmac",
218 reg = <0x0 0xff3f0000 0x0 0x10000>,
219 <0x0 0xff634540 0x0 0x8>;
220 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
221 interrupt-names = "macirq";
222 clocks = <&clkc CLKID_ETH>,
223 <&clkc CLKID_FCLK_DIV2>,
225 <&clkc CLKID_FCLK_DIV2>;
226 clock-names = "stmmaceth", "clkin0", "clkin1",
228 rx-fifo-depth = <4096>;
229 tx-fifo-depth = <2048>;
230 resets = <&reset RESET_ETHERNET>;
231 reset-names = "stmmaceth";
235 pdm: audio-controller@ff632000 {
236 compatible = "amlogic,axg-pdm";
237 reg = <0x0 0xff632000 0x0 0x34>;
238 #sound-dai-cells = <0>;
239 sound-name-prefix = "PDM";
240 clocks = <&clkc_audio AUD_CLKID_PDM>,
241 <&clkc_audio AUD_CLKID_PDM_DCLK>,
242 <&clkc_audio AUD_CLKID_PDM_SYSCLK>;
243 clock-names = "pclk", "dclk", "sysclk";
247 periphs: bus@ff634000 {
248 compatible = "simple-bus";
249 reg = <0x0 0xff634000 0x0 0x2000>;
250 #address-cells = <2>;
252 ranges = <0x0 0x0 0x0 0xff634000 0x0 0x2000>;
255 compatible = "amlogic,meson-rng";
256 reg = <0x0 0x18 0x0 0x4>;
257 clocks = <&clkc CLKID_RNG0>;
258 clock-names = "core";
261 pinctrl_periphs: pinctrl@480 {
262 compatible = "amlogic,meson-axg-periphs-pinctrl";
263 #address-cells = <2>;
268 reg = <0x0 0x00480 0x0 0x40>,
269 <0x0 0x004e8 0x0 0x14>,
270 <0x0 0x00520 0x0 0x14>,
271 <0x0 0x00430 0x0 0x3c>;
272 reg-names = "mux", "pull", "pull-enable", "gpio";
275 gpio-ranges = <&pinctrl_periphs 0 0 86>;
287 i2c1_x_pins: i2c1_x {
289 groups = "i2c1_sck_x",
296 i2c1_z_pins: i2c1_z {
298 groups = "i2c1_sck_z",
305 i2c2_a_pins: i2c2_a {
307 groups = "i2c2_sck_a",
314 i2c2_x_pins: i2c2_x {
316 groups = "i2c2_sck_x",
323 i2c3_a6_pins: i2c3_a6 {
325 groups = "i2c3_sda_a6",
332 i2c3_a12_pins: i2c3_a12 {
334 groups = "i2c3_sda_a12",
341 i2c3_a19_pins: i2c3_a19 {
343 groups = "i2c3_sda_a19",
352 groups = "emmc_nand_d0",
372 emmc_ds_pins: emmc_ds {
380 emmc_clk_gate_pins: emmc_clk_gate {
383 function = "gpio_periphs";
388 eth_rgmii_x_pins: eth-x-rgmii {
390 groups = "eth_mdio_x",
392 "eth_rgmii_rx_clk_x",
409 eth_rgmii_y_pins: eth-y-rgmii {
411 groups = "eth_mdio_y",
413 "eth_rgmii_rx_clk_y",
430 eth_rmii_x_pins: eth-x-rmii {
432 groups = "eth_mdio_x",
434 "eth_rgmii_rx_clk_x",
446 eth_rmii_y_pins: eth-y-rmii {
448 groups = "eth_mdio_y",
450 "eth_rgmii_rx_clk_y",
462 mclk_b_pins: mclk_b {
470 mclk_c_pins: mclk_c {
478 pdm_dclk_a14_pins: pdm_dclk_a14 {
480 groups = "pdm_dclk_a14";
486 pdm_dclk_a19_pins: pdm_dclk_a19 {
488 groups = "pdm_dclk_a19";
494 pdm_din0_pins: pdm_din0 {
502 pdm_din1_pins: pdm_din1 {
510 pdm_din2_pins: pdm_din2 {
518 pdm_din3_pins: pdm_din3 {
526 pwm_a_a_pins: pwm_a_a {
534 pwm_a_x18_pins: pwm_a_x18 {
536 groups = "pwm_a_x18";
542 pwm_a_x20_pins: pwm_a_x20 {
544 groups = "pwm_a_x20";
550 pwm_a_z_pins: pwm_a_z {
558 pwm_b_a_pins: pwm_b_a {
566 pwm_b_x_pins: pwm_b_x {
574 pwm_b_z_pins: pwm_b_z {
582 pwm_c_a_pins: pwm_c_a {
590 pwm_c_x10_pins: pwm_c_x10 {
592 groups = "pwm_c_x10";
598 pwm_c_x17_pins: pwm_c_x17 {
600 groups = "pwm_c_x17";
606 pwm_d_x11_pins: pwm_d_x11 {
608 groups = "pwm_d_x11";
614 pwm_d_x16_pins: pwm_d_x16 {
616 groups = "pwm_d_x16";
640 sdio_clk_gate_pins: sdio_clk_gate {
643 function = "gpio_periphs";
648 spdif_in_z_pins: spdif_in_z {
650 groups = "spdif_in_z";
651 function = "spdif_in";
656 spdif_in_a1_pins: spdif_in_a1 {
658 groups = "spdif_in_a1";
659 function = "spdif_in";
664 spdif_in_a7_pins: spdif_in_a7 {
666 groups = "spdif_in_a7";
667 function = "spdif_in";
672 spdif_in_a19_pins: spdif_in_a19 {
674 groups = "spdif_in_a19";
675 function = "spdif_in";
680 spdif_in_a20_pins: spdif_in_a20 {
682 groups = "spdif_in_a20";
683 function = "spdif_in";
688 spdif_out_a1_pins: spdif_out_a1 {
690 groups = "spdif_out_a1";
691 function = "spdif_out";
696 spdif_out_a11_pins: spdif_out_a11 {
698 groups = "spdif_out_a11";
699 function = "spdif_out";
704 spdif_out_a19_pins: spdif_out_a19 {
706 groups = "spdif_out_a19";
707 function = "spdif_out";
712 spdif_out_a20_pins: spdif_out_a20 {
714 groups = "spdif_out_a20";
715 function = "spdif_out";
720 spdif_out_z_pins: spdif_out_z {
722 groups = "spdif_out_z";
723 function = "spdif_out";
730 groups = "spi0_miso",
738 spi0_ss0_pins: spi0_ss0 {
746 spi0_ss1_pins: spi0_ss1 {
754 spi0_ss2_pins: spi0_ss2 {
762 spi1_a_pins: spi1_a {
764 groups = "spi1_miso_a",
772 spi1_ss0_a_pins: spi1_ss0_a {
774 groups = "spi1_ss0_a";
780 spi1_ss1_pins: spi1_ss1 {
788 spi1_x_pins: spi1_x {
790 groups = "spi1_miso_x",
798 spi1_ss0_x_pins: spi1_ss0_x {
800 groups = "spi1_ss0_x";
806 tdma_din0_pins: tdma_din0 {
808 groups = "tdma_din0";
814 tdma_dout0_x14_pins: tdma_dout0_x14 {
816 groups = "tdma_dout0_x14";
822 tdma_dout0_x15_pins: tdma_dout0_x15 {
824 groups = "tdma_dout0_x15";
830 tdma_dout1_pins: tdma_dout1 {
832 groups = "tdma_dout1";
838 tdma_din1_pins: tdma_din1 {
840 groups = "tdma_din1";
846 tdma_fs_pins: tdma_fs {
854 tdma_fs_slv_pins: tdma_fs_slv {
856 groups = "tdma_fs_slv";
862 tdma_sclk_pins: tdma_sclk {
864 groups = "tdma_sclk";
870 tdma_sclk_slv_pins: tdma_sclk_slv {
872 groups = "tdma_sclk_slv";
878 tdmb_din0_pins: tdmb_din0 {
880 groups = "tdmb_din0";
886 tdmb_din1_pins: tdmb_din1 {
888 groups = "tdmb_din1";
894 tdmb_din2_pins: tdmb_din2 {
896 groups = "tdmb_din2";
902 tdmb_din3_pins: tdmb_din3 {
904 groups = "tdmb_din3";
910 tdmb_dout0_pins: tdmb_dout0 {
912 groups = "tdmb_dout0";
918 tdmb_dout1_pins: tdmb_dout1 {
920 groups = "tdmb_dout1";
926 tdmb_dout2_pins: tdmb_dout2 {
928 groups = "tdmb_dout2";
934 tdmb_dout3_pins: tdmb_dout3 {
936 groups = "tdmb_dout3";
942 tdmb_fs_pins: tdmb_fs {
950 tdmb_fs_slv_pins: tdmb_fs_slv {
952 groups = "tdmb_fs_slv";
958 tdmb_sclk_pins: tdmb_sclk {
960 groups = "tdmb_sclk";
966 tdmb_sclk_slv_pins: tdmb_sclk_slv {
968 groups = "tdmb_sclk_slv";
974 tdmc_fs_pins: tdmc_fs {
982 tdmc_fs_slv_pins: tdmc_fs_slv {
984 groups = "tdmc_fs_slv";
990 tdmc_sclk_pins: tdmc_sclk {
992 groups = "tdmc_sclk";
998 tdmc_sclk_slv_pins: tdmc_sclk_slv {
1000 groups = "tdmc_sclk_slv";
1006 tdmc_din0_pins: tdmc_din0 {
1008 groups = "tdmc_din0";
1014 tdmc_din1_pins: tdmc_din1 {
1016 groups = "tdmc_din1";
1022 tdmc_din2_pins: tdmc_din2 {
1024 groups = "tdmc_din2";
1030 tdmc_din3_pins: tdmc_din3 {
1032 groups = "tdmc_din3";
1038 tdmc_dout0_pins: tdmc_dout0 {
1040 groups = "tdmc_dout0";
1046 tdmc_dout1_pins: tdmc_dout1 {
1048 groups = "tdmc_dout1";
1054 tdmc_dout2_pins: tdmc_dout2 {
1056 groups = "tdmc_dout2";
1062 tdmc_dout3_pins: tdmc_dout3 {
1064 groups = "tdmc_dout3";
1070 uart_a_pins: uart_a {
1072 groups = "uart_tx_a",
1074 function = "uart_a";
1079 uart_a_cts_rts_pins: uart_a_cts_rts {
1081 groups = "uart_cts_a",
1083 function = "uart_a";
1088 uart_b_x_pins: uart_b_x {
1090 groups = "uart_tx_b_x",
1092 function = "uart_b";
1097 uart_b_x_cts_rts_pins: uart_b_x_cts_rts {
1099 groups = "uart_cts_b_x",
1101 function = "uart_b";
1106 uart_b_z_pins: uart_b_z {
1108 groups = "uart_tx_b_z",
1110 function = "uart_b";
1115 uart_b_z_cts_rts_pins: uart_b_z_cts_rts {
1117 groups = "uart_cts_b_z",
1119 function = "uart_b";
1124 uart_ao_b_z_pins: uart_ao_b_z {
1126 groups = "uart_ao_tx_b_z",
1128 function = "uart_ao_b_z";
1133 uart_ao_b_z_cts_rts_pins: uart_ao_b_z_cts_rts {
1135 groups = "uart_ao_cts_b_z",
1137 function = "uart_ao_b_z";
1144 hiubus: bus@ff63c000 {
1145 compatible = "simple-bus";
1146 reg = <0x0 0xff63c000 0x0 0x1c00>;
1147 #address-cells = <2>;
1149 ranges = <0x0 0x0 0x0 0xff63c000 0x0 0x1c00>;
1151 sysctrl: system-controller@0 {
1152 compatible = "amlogic,meson-axg-hhi-sysctrl",
1153 "simple-mfd", "syscon";
1154 reg = <0 0 0 0x400>;
1156 clkc: clock-controller {
1157 compatible = "amlogic,axg-clkc";
1160 clock-names = "xtal";
1165 mailbox: mailbox@ff63c404 {
1166 compatible = "amlogic,meson-gxbb-mhu";
1167 reg = <0 0xff63c404 0 0x4c>;
1168 interrupts = <GIC_SPI 208 IRQ_TYPE_EDGE_RISING>,
1169 <GIC_SPI 209 IRQ_TYPE_EDGE_RISING>,
1170 <GIC_SPI 210 IRQ_TYPE_EDGE_RISING>;
1174 audio: bus@ff642000 {
1175 compatible = "simple-bus";
1176 reg = <0x0 0xff642000 0x0 0x2000>;
1177 #address-cells = <2>;
1179 ranges = <0x0 0x0 0x0 0xff642000 0x0 0x2000>;
1181 clkc_audio: clock-controller@0 {
1182 compatible = "amlogic,axg-audio-clkc";
1183 reg = <0x0 0x0 0x0 0xb4>;
1186 clocks = <&clkc CLKID_AUDIO>,
1187 <&clkc CLKID_MPLL0>,
1188 <&clkc CLKID_MPLL1>,
1189 <&clkc CLKID_MPLL2>,
1190 <&clkc CLKID_MPLL3>,
1191 <&clkc CLKID_HIFI_PLL>,
1192 <&clkc CLKID_FCLK_DIV3>,
1193 <&clkc CLKID_FCLK_DIV4>,
1194 <&clkc CLKID_GP0_PLL>;
1195 clock-names = "pclk",
1205 resets = <&reset RESET_AUDIO>;
1208 toddr_a: audio-controller@100 {
1209 compatible = "amlogic,axg-toddr";
1210 reg = <0x0 0x100 0x0 0x2c>;
1211 #sound-dai-cells = <0>;
1212 sound-name-prefix = "TODDR_A";
1213 interrupts = <GIC_SPI 84 IRQ_TYPE_EDGE_RISING>;
1214 clocks = <&clkc_audio AUD_CLKID_TODDR_A>;
1215 resets = <&arb AXG_ARB_TODDR_A>;
1216 amlogic,fifo-depth = <512>;
1217 status = "disabled";
1220 toddr_b: audio-controller@140 {
1221 compatible = "amlogic,axg-toddr";
1222 reg = <0x0 0x140 0x0 0x2c>;
1223 #sound-dai-cells = <0>;
1224 sound-name-prefix = "TODDR_B";
1225 interrupts = <GIC_SPI 85 IRQ_TYPE_EDGE_RISING>;
1226 clocks = <&clkc_audio AUD_CLKID_TODDR_B>;
1227 resets = <&arb AXG_ARB_TODDR_B>;
1228 amlogic,fifo-depth = <256>;
1229 status = "disabled";
1232 toddr_c: audio-controller@180 {
1233 compatible = "amlogic,axg-toddr";
1234 reg = <0x0 0x180 0x0 0x2c>;
1235 #sound-dai-cells = <0>;
1236 sound-name-prefix = "TODDR_C";
1237 interrupts = <GIC_SPI 86 IRQ_TYPE_EDGE_RISING>;
1238 clocks = <&clkc_audio AUD_CLKID_TODDR_C>;
1239 resets = <&arb AXG_ARB_TODDR_C>;
1240 amlogic,fifo-depth = <256>;
1241 status = "disabled";
1244 frddr_a: audio-controller@1c0 {
1245 compatible = "amlogic,axg-frddr";
1246 reg = <0x0 0x1c0 0x0 0x2c>;
1247 #sound-dai-cells = <0>;
1248 sound-name-prefix = "FRDDR_A";
1249 interrupts = <GIC_SPI 88 IRQ_TYPE_EDGE_RISING>;
1250 clocks = <&clkc_audio AUD_CLKID_FRDDR_A>;
1251 resets = <&arb AXG_ARB_FRDDR_A>;
1252 amlogic,fifo-depth = <512>;
1253 status = "disabled";
1256 frddr_b: audio-controller@200 {
1257 compatible = "amlogic,axg-frddr";
1258 reg = <0x0 0x200 0x0 0x2c>;
1259 #sound-dai-cells = <0>;
1260 sound-name-prefix = "FRDDR_B";
1261 interrupts = <GIC_SPI 89 IRQ_TYPE_EDGE_RISING>;
1262 clocks = <&clkc_audio AUD_CLKID_FRDDR_B>;
1263 resets = <&arb AXG_ARB_FRDDR_B>;
1264 amlogic,fifo-depth = <256>;
1265 status = "disabled";
1268 frddr_c: audio-controller@240 {
1269 compatible = "amlogic,axg-frddr";
1270 reg = <0x0 0x240 0x0 0x2c>;
1271 #sound-dai-cells = <0>;
1272 sound-name-prefix = "FRDDR_C";
1273 interrupts = <GIC_SPI 90 IRQ_TYPE_EDGE_RISING>;
1274 clocks = <&clkc_audio AUD_CLKID_FRDDR_C>;
1275 resets = <&arb AXG_ARB_FRDDR_C>;
1276 amlogic,fifo-depth = <256>;
1277 status = "disabled";
1280 arb: reset-controller@280 {
1281 compatible = "amlogic,meson-axg-audio-arb";
1282 reg = <0x0 0x280 0x0 0x4>;
1284 clocks = <&clkc_audio AUD_CLKID_DDR_ARB>;
1287 tdmin_a: audio-controller@300 {
1288 compatible = "amlogic,axg-tdmin";
1289 reg = <0x0 0x300 0x0 0x40>;
1290 sound-name-prefix = "TDMIN_A";
1291 clocks = <&clkc_audio AUD_CLKID_TDMIN_A>,
1292 <&clkc_audio AUD_CLKID_TDMIN_A_SCLK>,
1293 <&clkc_audio AUD_CLKID_TDMIN_A_SCLK_SEL>,
1294 <&clkc_audio AUD_CLKID_TDMIN_A_LRCLK>,
1295 <&clkc_audio AUD_CLKID_TDMIN_A_LRCLK>;
1296 clock-names = "pclk", "sclk", "sclk_sel",
1297 "lrclk", "lrclk_sel";
1298 status = "disabled";
1301 tdmin_b: audio-controller@340 {
1302 compatible = "amlogic,axg-tdmin";
1303 reg = <0x0 0x340 0x0 0x40>;
1304 sound-name-prefix = "TDMIN_B";
1305 clocks = <&clkc_audio AUD_CLKID_TDMIN_B>,
1306 <&clkc_audio AUD_CLKID_TDMIN_B_SCLK>,
1307 <&clkc_audio AUD_CLKID_TDMIN_B_SCLK_SEL>,
1308 <&clkc_audio AUD_CLKID_TDMIN_B_LRCLK>,
1309 <&clkc_audio AUD_CLKID_TDMIN_B_LRCLK>;
1310 clock-names = "pclk", "sclk", "sclk_sel",
1311 "lrclk", "lrclk_sel";
1312 status = "disabled";
1315 tdmin_c: audio-controller@380 {
1316 compatible = "amlogic,axg-tdmin";
1317 reg = <0x0 0x380 0x0 0x40>;
1318 sound-name-prefix = "TDMIN_C";
1319 clocks = <&clkc_audio AUD_CLKID_TDMIN_C>,
1320 <&clkc_audio AUD_CLKID_TDMIN_C_SCLK>,
1321 <&clkc_audio AUD_CLKID_TDMIN_C_SCLK_SEL>,
1322 <&clkc_audio AUD_CLKID_TDMIN_C_LRCLK>,
1323 <&clkc_audio AUD_CLKID_TDMIN_C_LRCLK>;
1324 clock-names = "pclk", "sclk", "sclk_sel",
1325 "lrclk", "lrclk_sel";
1326 status = "disabled";
1329 tdmin_lb: audio-controller@3c0 {
1330 compatible = "amlogic,axg-tdmin";
1331 reg = <0x0 0x3c0 0x0 0x40>;
1332 sound-name-prefix = "TDMIN_LB";
1333 clocks = <&clkc_audio AUD_CLKID_TDMIN_LB>,
1334 <&clkc_audio AUD_CLKID_TDMIN_LB_SCLK>,
1335 <&clkc_audio AUD_CLKID_TDMIN_LB_SCLK_SEL>,
1336 <&clkc_audio AUD_CLKID_TDMIN_LB_LRCLK>,
1337 <&clkc_audio AUD_CLKID_TDMIN_LB_LRCLK>;
1338 clock-names = "pclk", "sclk", "sclk_sel",
1339 "lrclk", "lrclk_sel";
1340 status = "disabled";
1343 spdifin: audio-controller@400 {
1344 compatible = "amlogic,axg-spdifin";
1345 reg = <0x0 0x400 0x0 0x30>;
1346 #sound-dai-cells = <0>;
1347 sound-name-prefix = "SPDIFIN";
1348 interrupts = <GIC_SPI 87 IRQ_TYPE_EDGE_RISING>;
1349 clocks = <&clkc_audio AUD_CLKID_SPDIFIN>,
1350 <&clkc_audio AUD_CLKID_SPDIFIN_CLK>;
1351 clock-names = "pclk", "refclk";
1352 status = "disabled";
1355 spdifout: audio-controller@480 {
1356 compatible = "amlogic,axg-spdifout";
1357 reg = <0x0 0x480 0x0 0x50>;
1358 #sound-dai-cells = <0>;
1359 sound-name-prefix = "SPDIFOUT";
1360 clocks = <&clkc_audio AUD_CLKID_SPDIFOUT>,
1361 <&clkc_audio AUD_CLKID_SPDIFOUT_CLK>;
1362 clock-names = "pclk", "mclk";
1363 status = "disabled";
1366 tdmout_a: audio-controller@500 {
1367 compatible = "amlogic,axg-tdmout";
1368 reg = <0x0 0x500 0x0 0x40>;
1369 sound-name-prefix = "TDMOUT_A";
1370 clocks = <&clkc_audio AUD_CLKID_TDMOUT_A>,
1371 <&clkc_audio AUD_CLKID_TDMOUT_A_SCLK>,
1372 <&clkc_audio AUD_CLKID_TDMOUT_A_SCLK_SEL>,
1373 <&clkc_audio AUD_CLKID_TDMOUT_A_LRCLK>,
1374 <&clkc_audio AUD_CLKID_TDMOUT_A_LRCLK>;
1375 clock-names = "pclk", "sclk", "sclk_sel",
1376 "lrclk", "lrclk_sel";
1377 status = "disabled";
1380 tdmout_b: audio-controller@540 {
1381 compatible = "amlogic,axg-tdmout";
1382 reg = <0x0 0x540 0x0 0x40>;
1383 sound-name-prefix = "TDMOUT_B";
1384 clocks = <&clkc_audio AUD_CLKID_TDMOUT_B>,
1385 <&clkc_audio AUD_CLKID_TDMOUT_B_SCLK>,
1386 <&clkc_audio AUD_CLKID_TDMOUT_B_SCLK_SEL>,
1387 <&clkc_audio AUD_CLKID_TDMOUT_B_LRCLK>,
1388 <&clkc_audio AUD_CLKID_TDMOUT_B_LRCLK>;
1389 clock-names = "pclk", "sclk", "sclk_sel",
1390 "lrclk", "lrclk_sel";
1391 status = "disabled";
1394 tdmout_c: audio-controller@580 {
1395 compatible = "amlogic,axg-tdmout";
1396 reg = <0x0 0x580 0x0 0x40>;
1397 sound-name-prefix = "TDMOUT_C";
1398 clocks = <&clkc_audio AUD_CLKID_TDMOUT_C>,
1399 <&clkc_audio AUD_CLKID_TDMOUT_C_SCLK>,
1400 <&clkc_audio AUD_CLKID_TDMOUT_C_SCLK_SEL>,
1401 <&clkc_audio AUD_CLKID_TDMOUT_C_LRCLK>,
1402 <&clkc_audio AUD_CLKID_TDMOUT_C_LRCLK>;
1403 clock-names = "pclk", "sclk", "sclk_sel",
1404 "lrclk", "lrclk_sel";
1405 status = "disabled";
1409 aobus: bus@ff800000 {
1410 compatible = "simple-bus";
1411 reg = <0x0 0xff800000 0x0 0x100000>;
1412 #address-cells = <2>;
1414 ranges = <0x0 0x0 0x0 0xff800000 0x0 0x100000>;
1416 sysctrl_AO: sys-ctrl@0 {
1417 compatible = "amlogic,meson-axg-ao-sysctrl", "simple-mfd", "syscon";
1418 reg = <0x0 0x0 0x0 0x100>;
1420 clkc_AO: clock-controller {
1421 compatible = "amlogic,meson-axg-aoclkc";
1424 clocks = <&xtal>, <&clkc CLKID_CLK81>;
1425 clock-names = "xtal", "mpeg-clk";
1429 pinctrl_aobus: pinctrl@14 {
1430 compatible = "amlogic,meson-axg-aobus-pinctrl";
1431 #address-cells = <2>;
1436 reg = <0x0 0x00014 0x0 0x8>,
1437 <0x0 0x0002c 0x0 0x4>,
1438 <0x0 0x00024 0x0 0x8>;
1439 reg-names = "mux", "pull", "gpio";
1442 gpio-ranges = <&pinctrl_aobus 0 0 15>;
1445 i2c_ao_sck_4_pins: i2c_ao_sck_4 {
1447 groups = "i2c_ao_sck_4";
1448 function = "i2c_ao";
1453 i2c_ao_sck_8_pins: i2c_ao_sck_8 {
1455 groups = "i2c_ao_sck_8";
1456 function = "i2c_ao";
1461 i2c_ao_sck_10_pins: i2c_ao_sck_10 {
1463 groups = "i2c_ao_sck_10";
1464 function = "i2c_ao";
1469 i2c_ao_sda_5_pins: i2c_ao_sda_5 {
1471 groups = "i2c_ao_sda_5";
1472 function = "i2c_ao";
1477 i2c_ao_sda_9_pins: i2c_ao_sda_9 {
1479 groups = "i2c_ao_sda_9";
1480 function = "i2c_ao";
1485 i2c_ao_sda_11_pins: i2c_ao_sda_11 {
1487 groups = "i2c_ao_sda_11";
1488 function = "i2c_ao";
1493 remote_input_ao_pins: remote_input_ao {
1495 groups = "remote_input_ao";
1496 function = "remote_input_ao";
1501 uart_ao_a_pins: uart_ao_a {
1503 groups = "uart_ao_tx_a",
1505 function = "uart_ao_a";
1510 uart_ao_a_cts_rts_pins: uart_ao_a_cts_rts {
1512 groups = "uart_ao_cts_a",
1514 function = "uart_ao_a";
1519 uart_ao_b_pins: uart_ao_b {
1521 groups = "uart_ao_tx_b",
1523 function = "uart_ao_b";
1528 uart_ao_b_cts_rts_pins: uart_ao_b_cts_rts {
1530 groups = "uart_ao_cts_b",
1532 function = "uart_ao_b";
1538 sec_AO: ao-secure@140 {
1539 compatible = "amlogic,meson-gx-ao-secure", "syscon";
1540 reg = <0x0 0x140 0x0 0x140>;
1541 amlogic,has-chip-id;
1544 pwm_AO_cd: pwm@2000 {
1545 compatible = "amlogic,meson-axg-ao-pwm";
1546 reg = <0x0 0x02000 0x0 0x20>;
1548 status = "disabled";
1551 uart_AO: serial@3000 {
1552 compatible = "amlogic,meson-gx-uart", "amlogic,meson-ao-uart";
1553 reg = <0x0 0x3000 0x0 0x18>;
1554 interrupts = <GIC_SPI 193 IRQ_TYPE_EDGE_RISING>;
1555 clocks = <&xtal>, <&clkc_AO CLKID_AO_UART1>, <&xtal>;
1556 clock-names = "xtal", "pclk", "baud";
1557 status = "disabled";
1560 uart_AO_B: serial@4000 {
1561 compatible = "amlogic,meson-gx-uart", "amlogic,meson-ao-uart";
1562 reg = <0x0 0x4000 0x0 0x18>;
1563 interrupts = <GIC_SPI 197 IRQ_TYPE_EDGE_RISING>;
1564 clocks = <&xtal>, <&clkc_AO CLKID_AO_UART2>, <&xtal>;
1565 clock-names = "xtal", "pclk", "baud";
1566 status = "disabled";
1570 compatible = "amlogic,meson-axg-i2c";
1571 reg = <0x0 0x05000 0x0 0x20>;
1572 interrupts = <GIC_SPI 195 IRQ_TYPE_EDGE_RISING>;
1573 clocks = <&clkc CLKID_AO_I2C>;
1574 #address-cells = <1>;
1576 status = "disabled";
1579 pwm_AO_ab: pwm@7000 {
1580 compatible = "amlogic,meson-axg-ao-pwm";
1581 reg = <0x0 0x07000 0x0 0x20>;
1583 status = "disabled";
1587 compatible = "amlogic,meson-gxbb-ir";
1588 reg = <0x0 0x8000 0x0 0x20>;
1589 interrupts = <GIC_SPI 196 IRQ_TYPE_EDGE_RISING>;
1590 status = "disabled";
1594 compatible = "amlogic,meson-axg-saradc",
1595 "amlogic,meson-saradc";
1596 reg = <0x0 0x9000 0x0 0x38>;
1597 #io-channel-cells = <1>;
1598 interrupts = <GIC_SPI 73 IRQ_TYPE_EDGE_RISING>;
1600 <&clkc_AO CLKID_AO_SAR_ADC>,
1601 <&clkc_AO CLKID_AO_SAR_ADC_CLK>,
1602 <&clkc_AO CLKID_AO_SAR_ADC_SEL>;
1603 clock-names = "clkin", "core", "adc_clk", "adc_sel";
1604 status = "disabled";
1608 gic: interrupt-controller@ffc01000 {
1609 compatible = "arm,gic-400";
1610 reg = <0x0 0xffc01000 0 0x1000>,
1611 <0x0 0xffc02000 0 0x2000>,
1612 <0x0 0xffc04000 0 0x2000>,
1613 <0x0 0xffc06000 0 0x2000>;
1614 interrupt-controller;
1615 interrupts = <GIC_PPI 9
1616 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>;
1617 #interrupt-cells = <3>;
1618 #address-cells = <0>;
1621 cbus: bus@ffd00000 {
1622 compatible = "simple-bus";
1623 reg = <0x0 0xffd00000 0x0 0x25000>;
1624 #address-cells = <2>;
1626 ranges = <0x0 0x0 0x0 0xffd00000 0x0 0x25000>;
1628 reset: reset-controller@1004 {
1629 compatible = "amlogic,meson-axg-reset";
1630 reg = <0x0 0x01004 0x0 0x9c>;
1634 gpio_intc: interrupt-controller@f080 {
1635 compatible = "amlogic,meson-axg-gpio-intc",
1636 "amlogic,meson-gpio-intc";
1637 reg = <0x0 0xf080 0x0 0x10>;
1638 interrupt-controller;
1639 #interrupt-cells = <2>;
1640 amlogic,channel-interrupts = <64 65 66 67 68 69 70 71>;
1644 compatible = "amlogic,meson-gxbb-wdt";
1645 reg = <0x0 0xf0d0 0x0 0x10>;
1650 compatible = "amlogic,meson-axg-ee-pwm";
1651 reg = <0x0 0x1b000 0x0 0x20>;
1653 status = "disabled";
1657 compatible = "amlogic,meson-axg-ee-pwm";
1658 reg = <0x0 0x1a000 0x0 0x20>;
1660 status = "disabled";
1664 compatible = "amlogic,meson-axg-spicc";
1665 reg = <0x0 0x13000 0x0 0x3c>;
1666 interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
1667 clocks = <&clkc CLKID_SPICC0>;
1668 clock-names = "core";
1669 #address-cells = <1>;
1671 status = "disabled";
1675 compatible = "amlogic,meson-axg-spicc";
1676 reg = <0x0 0x15000 0x0 0x3c>;
1677 interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
1678 clocks = <&clkc CLKID_SPICC1>;
1679 clock-names = "core";
1680 #address-cells = <1>;
1682 status = "disabled";
1685 clk_msr: clock-measure@18000 {
1686 compatible = "amlogic,meson-axg-clk-measure";
1687 reg = <0x0 0x18000 0x0 0x10>;
1691 compatible = "amlogic,meson-axg-i2c";
1692 reg = <0x0 0x1c000 0x0 0x20>;
1693 interrupts = <GIC_SPI 39 IRQ_TYPE_EDGE_RISING>;
1694 clocks = <&clkc CLKID_I2C>;
1695 #address-cells = <1>;
1697 status = "disabled";
1701 compatible = "amlogic,meson-axg-i2c";
1702 reg = <0x0 0x1d000 0x0 0x20>;
1703 interrupts = <GIC_SPI 215 IRQ_TYPE_EDGE_RISING>;
1704 clocks = <&clkc CLKID_I2C>;
1705 #address-cells = <1>;
1707 status = "disabled";
1711 compatible = "amlogic,meson-axg-i2c";
1712 reg = <0x0 0x1e000 0x0 0x20>;
1713 interrupts = <GIC_SPI 214 IRQ_TYPE_EDGE_RISING>;
1714 clocks = <&clkc CLKID_I2C>;
1715 #address-cells = <1>;
1717 status = "disabled";
1721 compatible = "amlogic,meson-axg-i2c";
1722 reg = <0x0 0x1f000 0x0 0x20>;
1723 interrupts = <GIC_SPI 21 IRQ_TYPE_EDGE_RISING>;
1724 clocks = <&clkc CLKID_I2C>;
1725 #address-cells = <1>;
1727 status = "disabled";
1730 uart_B: serial@23000 {
1731 compatible = "amlogic,meson-gx-uart";
1732 reg = <0x0 0x23000 0x0 0x18>;
1733 interrupts = <GIC_SPI 75 IRQ_TYPE_EDGE_RISING>;
1734 status = "disabled";
1735 clocks = <&xtal>, <&clkc CLKID_UART1>, <&xtal>;
1736 clock-names = "xtal", "pclk", "baud";
1739 uart_A: serial@24000 {
1740 compatible = "amlogic,meson-gx-uart";
1741 reg = <0x0 0x24000 0x0 0x18>;
1742 interrupts = <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>;
1743 status = "disabled";
1744 clocks = <&xtal>, <&clkc CLKID_UART0>, <&xtal>;
1745 clock-names = "xtal", "pclk", "baud";
1750 compatible = "simple-bus";
1751 reg = <0x0 0xffe00000 0x0 0x200000>;
1752 #address-cells = <2>;
1754 ranges = <0x0 0x0 0x0 0xffe00000 0x0 0x200000>;
1756 sd_emmc_b: sd@5000 {
1757 compatible = "amlogic,meson-axg-mmc";
1758 reg = <0x0 0x5000 0x0 0x800>;
1759 interrupts = <GIC_SPI 217 IRQ_TYPE_EDGE_RISING>;
1760 status = "disabled";
1761 clocks = <&clkc CLKID_SD_EMMC_B>,
1762 <&clkc CLKID_SD_EMMC_B_CLK0>,
1763 <&clkc CLKID_FCLK_DIV2>;
1764 clock-names = "core", "clkin0", "clkin1";
1765 resets = <&reset RESET_SD_EMMC_B>;
1768 sd_emmc_c: mmc@7000 {
1769 compatible = "amlogic,meson-axg-mmc";
1770 reg = <0x0 0x7000 0x0 0x800>;
1771 interrupts = <GIC_SPI 218 IRQ_TYPE_EDGE_RISING>;
1772 status = "disabled";
1773 clocks = <&clkc CLKID_SD_EMMC_C>,
1774 <&clkc CLKID_SD_EMMC_C_CLK0>,
1775 <&clkc CLKID_FCLK_DIV2>;
1776 clock-names = "core", "clkin0", "clkin1";
1777 resets = <&reset RESET_SD_EMMC_C>;
1780 usb2_phy1: phy@9020 {
1781 compatible = "amlogic,meson-gxl-usb2-phy";
1783 reg = <0x0 0x9020 0x0 0x20>;
1784 clocks = <&clkc CLKID_USB>;
1785 clock-names = "phy";
1786 resets = <&reset RESET_USB_OTG>;
1787 reset-names = "phy";
1791 sram: sram@fffc0000 {
1792 compatible = "mmio-sram";
1793 reg = <0x0 0xfffc0000 0x0 0x20000>;
1794 #address-cells = <1>;
1796 ranges = <0 0x0 0xfffc0000 0x20000>;
1798 cpu_scp_lpri: scp-sram@13000 {
1799 compatible = "amlogic,meson-axg-scp-shmem";
1800 reg = <0x13000 0x400>;
1803 cpu_scp_hpri: scp-sram@13400 {
1804 compatible = "amlogic,meson-axg-scp-shmem";
1805 reg = <0x13400 0x400>;
1811 compatible = "arm,armv8-timer";
1812 interrupts = <GIC_PPI 13
1813 (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
1815 (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
1817 (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
1819 (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>;
1823 compatible = "fixed-clock";
1824 clock-frequency = <24000000>;
1825 clock-output-names = "xtal";