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>
15 #include <dt-bindings/power/meson-axg-power.h>
18 compatible = "amlogic,meson-axg";
20 interrupt-parent = <&gic>;
24 tdmif_a: audio-controller-0 {
25 compatible = "amlogic,axg-tdm-iface";
26 #sound-dai-cells = <0>;
27 sound-name-prefix = "TDM_A";
28 clocks = <&clkc_audio AUD_CLKID_MST_A_MCLK>,
29 <&clkc_audio AUD_CLKID_MST_A_SCLK>,
30 <&clkc_audio AUD_CLKID_MST_A_LRCLK>;
31 clock-names = "mclk", "sclk", "lrclk";
35 tdmif_b: audio-controller-1 {
36 compatible = "amlogic,axg-tdm-iface";
37 #sound-dai-cells = <0>;
38 sound-name-prefix = "TDM_B";
39 clocks = <&clkc_audio AUD_CLKID_MST_B_MCLK>,
40 <&clkc_audio AUD_CLKID_MST_B_SCLK>,
41 <&clkc_audio AUD_CLKID_MST_B_LRCLK>;
42 clock-names = "mclk", "sclk", "lrclk";
46 tdmif_c: audio-controller-2 {
47 compatible = "amlogic,axg-tdm-iface";
48 #sound-dai-cells = <0>;
49 sound-name-prefix = "TDM_C";
50 clocks = <&clkc_audio AUD_CLKID_MST_C_MCLK>,
51 <&clkc_audio AUD_CLKID_MST_C_SCLK>,
52 <&clkc_audio AUD_CLKID_MST_C_LRCLK>;
53 clock-names = "mclk", "sclk", "lrclk";
58 compatible = "arm,cortex-a53-pmu";
59 interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
60 <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>,
61 <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>,
62 <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>;
63 interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
67 #address-cells = <0x2>;
72 compatible = "arm,cortex-a53";
74 enable-method = "psci";
75 next-level-cache = <&l2>;
76 clocks = <&scpi_dvfs 0>;
81 compatible = "arm,cortex-a53";
83 enable-method = "psci";
84 next-level-cache = <&l2>;
85 clocks = <&scpi_dvfs 0>;
90 compatible = "arm,cortex-a53";
92 enable-method = "psci";
93 next-level-cache = <&l2>;
94 clocks = <&scpi_dvfs 0>;
99 compatible = "arm,cortex-a53";
101 enable-method = "psci";
102 next-level-cache = <&l2>;
103 clocks = <&scpi_dvfs 0>;
107 compatible = "cache";
112 compatible = "amlogic,meson-gxbb-sm";
116 compatible = "amlogic,meson-gxbb-efuse";
117 clocks = <&clkc CLKID_EFUSE>;
118 #address-cells = <1>;
121 secure-monitor = <&sm>;
125 compatible = "arm,psci-1.0";
130 #address-cells = <2>;
134 /* 16 MiB reserved for Hardware ROM Firmware */
135 hwrom_reserved: hwrom@0 {
136 reg = <0x0 0x0 0x0 0x1000000>;
140 /* Alternate 3 MiB reserved for ARM Trusted Firmware (BL31) */
141 secmon_reserved: secmon@5000000 {
142 reg = <0x0 0x05000000 0x0 0x300000>;
148 compatible = "arm,scpi-pre-1.0";
149 mboxes = <&mailbox 1 &mailbox 2>;
150 shmem = <&cpu_scp_lpri &cpu_scp_hpri>;
152 scpi_clocks: clocks {
153 compatible = "arm,scpi-clocks";
155 scpi_dvfs: clocks-0 {
156 compatible = "arm,scpi-dvfs-clocks";
159 clock-output-names = "vcpu";
163 scpi_sensors: sensors {
164 compatible = "amlogic,meson-gxbb-scpi-sensors", "arm,scpi-sensors";
165 #thermal-sensor-cells = <1>;
170 compatible = "simple-bus";
171 #address-cells = <2>;
175 pcieA: pcie@f9800000 {
176 compatible = "amlogic,axg-pcie", "snps,dw-pcie";
177 reg = <0x0 0xf9800000 0x0 0x400000>,
178 <0x0 0xff646000 0x0 0x2000>,
179 <0x0 0xf9f00000 0x0 0x100000>;
180 reg-names = "elbi", "cfg", "config";
181 interrupts = <GIC_SPI 177 IRQ_TYPE_EDGE_RISING>;
182 #interrupt-cells = <1>;
183 interrupt-map-mask = <0 0 0 0>;
184 interrupt-map = <0 0 0 0 &gic GIC_SPI 179 IRQ_TYPE_EDGE_RISING>;
185 bus-range = <0x0 0xff>;
186 #address-cells = <3>;
189 ranges = <0x82000000 0 0xf9c00000 0x0 0xf9c00000 0 0x00300000>;
191 clocks = <&clkc CLKID_USB>, <&clkc CLKID_PCIE_A>, <&clkc CLKID_PCIE_CML_EN0>;
192 clock-names = "general", "pclk", "port";
193 resets = <&reset RESET_PCIE_A>, <&reset RESET_PCIE_APB>;
194 reset-names = "port", "apb";
201 pcieB: pcie@fa000000 {
202 compatible = "amlogic,axg-pcie", "snps,dw-pcie";
203 reg = <0x0 0xfa000000 0x0 0x400000>,
204 <0x0 0xff648000 0x0 0x2000>,
205 <0x0 0xfa400000 0x0 0x100000>;
206 reg-names = "elbi", "cfg", "config";
207 interrupts = <GIC_SPI 167 IRQ_TYPE_EDGE_RISING>;
208 #interrupt-cells = <1>;
209 interrupt-map-mask = <0 0 0 0>;
210 interrupt-map = <0 0 0 0 &gic GIC_SPI 169 IRQ_TYPE_EDGE_RISING>;
211 bus-range = <0x0 0xff>;
212 #address-cells = <3>;
215 ranges = <0x82000000 0 0xfa500000 0x0 0xfa500000 0 0x00300000>;
217 clocks = <&clkc CLKID_USB>, <&clkc CLKID_PCIE_B>, <&clkc CLKID_PCIE_CML_EN1>;
218 clock-names = "general", "pclk", "port";
219 resets = <&reset RESET_PCIE_B>, <&reset RESET_PCIE_APB>;
220 reset-names = "port", "apb";
228 compatible = "amlogic,meson-axg-usb-ctrl";
229 reg = <0x0 0xffe09080 0x0 0x20>;
230 interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
231 #address-cells = <2>;
235 clocks = <&clkc CLKID_USB>, <&clkc CLKID_USB1_DDR_BRIDGE>;
236 clock-names = "usb_ctrl", "ddr";
237 resets = <&reset RESET_USB_OTG>;
242 phy-names = "usb2-phy1";
245 compatible = "amlogic,meson-g12a-usb", "snps,dwc2";
246 reg = <0x0 0xff400000 0x0 0x40000>;
247 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
248 clocks = <&clkc CLKID_USB1>;
251 dr_mode = "peripheral";
252 g-rx-fifo-size = <192>;
253 g-np-tx-fifo-size = <128>;
254 g-tx-fifo-size = <128 128 16 16 16>;
258 compatible = "snps,dwc3";
259 reg = <0x0 0xff500000 0x0 0x100000>;
260 interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
262 maximum-speed = "high-speed";
263 snps,dis_u2_susphy_quirk;
267 ethmac: ethernet@ff3f0000 {
268 compatible = "amlogic,meson-axg-dwmac",
271 reg = <0x0 0xff3f0000 0x0 0x10000>,
272 <0x0 0xff634540 0x0 0x8>;
273 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
274 interrupt-names = "macirq";
275 clocks = <&clkc CLKID_ETH>,
276 <&clkc CLKID_FCLK_DIV2>,
278 <&clkc CLKID_FCLK_DIV2>;
279 clock-names = "stmmaceth", "clkin0", "clkin1",
281 rx-fifo-depth = <4096>;
282 tx-fifo-depth = <2048>;
283 power-domains = <&pwrc PWRC_AXG_ETHERNET_MEM_ID>;
287 pcie_phy: phy@ff644000 {
288 compatible = "amlogic,axg-pcie-phy";
289 reg = <0x0 0xff644000 0x0 0x1c>;
290 resets = <&reset RESET_PCIE_PHY>;
291 phys = <&mipi_pcie_analog_dphy>;
292 phy-names = "analog";
296 pdm: audio-controller@ff632000 {
297 compatible = "amlogic,axg-pdm";
298 reg = <0x0 0xff632000 0x0 0x34>;
299 #sound-dai-cells = <0>;
300 sound-name-prefix = "PDM";
301 clocks = <&clkc_audio AUD_CLKID_PDM>,
302 <&clkc_audio AUD_CLKID_PDM_DCLK>,
303 <&clkc_audio AUD_CLKID_PDM_SYSCLK>;
304 clock-names = "pclk", "dclk", "sysclk";
308 periphs: bus@ff634000 {
309 compatible = "simple-bus";
310 reg = <0x0 0xff634000 0x0 0x2000>;
311 #address-cells = <2>;
313 ranges = <0x0 0x0 0x0 0xff634000 0x0 0x2000>;
316 compatible = "amlogic,meson-rng";
317 reg = <0x0 0x18 0x0 0x4>;
318 clocks = <&clkc CLKID_RNG0>;
319 clock-names = "core";
322 pinctrl_periphs: pinctrl@480 {
323 compatible = "amlogic,meson-axg-periphs-pinctrl";
324 #address-cells = <2>;
329 reg = <0x0 0x00480 0x0 0x40>,
330 <0x0 0x004e8 0x0 0x14>,
331 <0x0 0x00520 0x0 0x14>,
332 <0x0 0x00430 0x0 0x3c>;
333 reg-names = "mux", "pull", "pull-enable", "gpio";
336 gpio-ranges = <&pinctrl_periphs 0 0 86>;
348 i2c1_x_pins: i2c1_x {
350 groups = "i2c1_sck_x",
357 i2c1_z_pins: i2c1_z {
359 groups = "i2c1_sck_z",
366 i2c2_a_pins: i2c2_a {
368 groups = "i2c2_sck_a",
375 i2c2_x_pins: i2c2_x {
377 groups = "i2c2_sck_x",
384 i2c3_a6_pins: i2c3_a6 {
386 groups = "i2c3_sda_a6",
393 i2c3_a12_pins: i2c3_a12 {
395 groups = "i2c3_sda_a12",
402 i2c3_a19_pins: i2c3_a19 {
404 groups = "i2c3_sda_a19",
413 groups = "emmc_nand_d0",
433 emmc_ds_pins: emmc_ds {
441 emmc_clk_gate_pins: emmc_clk_gate {
444 function = "gpio_periphs";
449 eth_rgmii_x_pins: eth-x-rgmii {
451 groups = "eth_mdio_x",
453 "eth_rgmii_rx_clk_x",
470 eth_rgmii_y_pins: eth-y-rgmii {
472 groups = "eth_mdio_y",
474 "eth_rgmii_rx_clk_y",
491 eth_rmii_x_pins: eth-x-rmii {
493 groups = "eth_mdio_x",
495 "eth_rgmii_rx_clk_x",
507 eth_rmii_y_pins: eth-y-rmii {
509 groups = "eth_mdio_y",
511 "eth_rgmii_rx_clk_y",
523 mclk_b_pins: mclk_b {
531 mclk_c_pins: mclk_c {
539 pdm_dclk_a14_pins: pdm_dclk_a14 {
541 groups = "pdm_dclk_a14";
547 pdm_dclk_a19_pins: pdm_dclk_a19 {
549 groups = "pdm_dclk_a19";
555 pdm_din0_pins: pdm_din0 {
563 pdm_din1_pins: pdm_din1 {
571 pdm_din2_pins: pdm_din2 {
579 pdm_din3_pins: pdm_din3 {
587 pwm_a_a_pins: pwm_a_a {
595 pwm_a_x18_pins: pwm_a_x18 {
597 groups = "pwm_a_x18";
603 pwm_a_x20_pins: pwm_a_x20 {
605 groups = "pwm_a_x20";
611 pwm_a_z_pins: pwm_a_z {
619 pwm_b_a_pins: pwm_b_a {
627 pwm_b_x_pins: pwm_b_x {
635 pwm_b_z_pins: pwm_b_z {
643 pwm_c_a_pins: pwm_c_a {
651 pwm_c_x10_pins: pwm_c_x10 {
653 groups = "pwm_c_x10";
659 pwm_c_x17_pins: pwm_c_x17 {
661 groups = "pwm_c_x17";
667 pwm_d_x11_pins: pwm_d_x11 {
669 groups = "pwm_d_x11";
675 pwm_d_x16_pins: pwm_d_x16 {
677 groups = "pwm_d_x16";
701 sdio_clk_gate_pins: sdio_clk_gate {
704 function = "gpio_periphs";
709 spdif_in_z_pins: spdif_in_z {
711 groups = "spdif_in_z";
712 function = "spdif_in";
717 spdif_in_a1_pins: spdif_in_a1 {
719 groups = "spdif_in_a1";
720 function = "spdif_in";
725 spdif_in_a7_pins: spdif_in_a7 {
727 groups = "spdif_in_a7";
728 function = "spdif_in";
733 spdif_in_a19_pins: spdif_in_a19 {
735 groups = "spdif_in_a19";
736 function = "spdif_in";
741 spdif_in_a20_pins: spdif_in_a20 {
743 groups = "spdif_in_a20";
744 function = "spdif_in";
749 spdif_out_a1_pins: spdif_out_a1 {
751 groups = "spdif_out_a1";
752 function = "spdif_out";
757 spdif_out_a11_pins: spdif_out_a11 {
759 groups = "spdif_out_a11";
760 function = "spdif_out";
765 spdif_out_a19_pins: spdif_out_a19 {
767 groups = "spdif_out_a19";
768 function = "spdif_out";
773 spdif_out_a20_pins: spdif_out_a20 {
775 groups = "spdif_out_a20";
776 function = "spdif_out";
781 spdif_out_z_pins: spdif_out_z {
783 groups = "spdif_out_z";
784 function = "spdif_out";
791 groups = "spi0_miso",
799 spi0_ss0_pins: spi0_ss0 {
807 spi0_ss1_pins: spi0_ss1 {
815 spi0_ss2_pins: spi0_ss2 {
823 spi1_a_pins: spi1_a {
825 groups = "spi1_miso_a",
833 spi1_ss0_a_pins: spi1_ss0_a {
835 groups = "spi1_ss0_a";
841 spi1_ss1_pins: spi1_ss1 {
849 spi1_x_pins: spi1_x {
851 groups = "spi1_miso_x",
859 spi1_ss0_x_pins: spi1_ss0_x {
861 groups = "spi1_ss0_x";
867 tdma_din0_pins: tdma_din0 {
869 groups = "tdma_din0";
875 tdma_dout0_x14_pins: tdma_dout0_x14 {
877 groups = "tdma_dout0_x14";
883 tdma_dout0_x15_pins: tdma_dout0_x15 {
885 groups = "tdma_dout0_x15";
891 tdma_dout1_pins: tdma_dout1 {
893 groups = "tdma_dout1";
899 tdma_din1_pins: tdma_din1 {
901 groups = "tdma_din1";
907 tdma_fs_pins: tdma_fs {
915 tdma_fs_slv_pins: tdma_fs_slv {
917 groups = "tdma_fs_slv";
923 tdma_sclk_pins: tdma_sclk {
925 groups = "tdma_sclk";
931 tdma_sclk_slv_pins: tdma_sclk_slv {
933 groups = "tdma_sclk_slv";
939 tdmb_din0_pins: tdmb_din0 {
941 groups = "tdmb_din0";
947 tdmb_din1_pins: tdmb_din1 {
949 groups = "tdmb_din1";
955 tdmb_din2_pins: tdmb_din2 {
957 groups = "tdmb_din2";
963 tdmb_din3_pins: tdmb_din3 {
965 groups = "tdmb_din3";
971 tdmb_dout0_pins: tdmb_dout0 {
973 groups = "tdmb_dout0";
979 tdmb_dout1_pins: tdmb_dout1 {
981 groups = "tdmb_dout1";
987 tdmb_dout2_pins: tdmb_dout2 {
989 groups = "tdmb_dout2";
995 tdmb_dout3_pins: tdmb_dout3 {
997 groups = "tdmb_dout3";
1003 tdmb_fs_pins: tdmb_fs {
1011 tdmb_fs_slv_pins: tdmb_fs_slv {
1013 groups = "tdmb_fs_slv";
1019 tdmb_sclk_pins: tdmb_sclk {
1021 groups = "tdmb_sclk";
1027 tdmb_sclk_slv_pins: tdmb_sclk_slv {
1029 groups = "tdmb_sclk_slv";
1035 tdmc_fs_pins: tdmc_fs {
1043 tdmc_fs_slv_pins: tdmc_fs_slv {
1045 groups = "tdmc_fs_slv";
1051 tdmc_sclk_pins: tdmc_sclk {
1053 groups = "tdmc_sclk";
1059 tdmc_sclk_slv_pins: tdmc_sclk_slv {
1061 groups = "tdmc_sclk_slv";
1067 tdmc_din0_pins: tdmc_din0 {
1069 groups = "tdmc_din0";
1075 tdmc_din1_pins: tdmc_din1 {
1077 groups = "tdmc_din1";
1083 tdmc_din2_pins: tdmc_din2 {
1085 groups = "tdmc_din2";
1091 tdmc_din3_pins: tdmc_din3 {
1093 groups = "tdmc_din3";
1099 tdmc_dout0_pins: tdmc_dout0 {
1101 groups = "tdmc_dout0";
1107 tdmc_dout1_pins: tdmc_dout1 {
1109 groups = "tdmc_dout1";
1115 tdmc_dout2_pins: tdmc_dout2 {
1117 groups = "tdmc_dout2";
1123 tdmc_dout3_pins: tdmc_dout3 {
1125 groups = "tdmc_dout3";
1131 uart_a_pins: uart_a {
1133 groups = "uart_tx_a",
1135 function = "uart_a";
1140 uart_a_cts_rts_pins: uart_a_cts_rts {
1142 groups = "uart_cts_a",
1144 function = "uart_a";
1149 uart_b_x_pins: uart_b_x {
1151 groups = "uart_tx_b_x",
1153 function = "uart_b";
1158 uart_b_x_cts_rts_pins: uart_b_x_cts_rts {
1160 groups = "uart_cts_b_x",
1162 function = "uart_b";
1167 uart_b_z_pins: uart_b_z {
1169 groups = "uart_tx_b_z",
1171 function = "uart_b";
1176 uart_b_z_cts_rts_pins: uart_b_z_cts_rts {
1178 groups = "uart_cts_b_z",
1180 function = "uart_b";
1185 uart_ao_b_z_pins: uart_ao_b_z {
1187 groups = "uart_ao_tx_b_z",
1189 function = "uart_ao_b_z";
1194 uart_ao_b_z_cts_rts_pins: uart_ao_b_z_cts_rts {
1196 groups = "uart_ao_cts_b_z",
1198 function = "uart_ao_b_z";
1205 hiubus: bus@ff63c000 {
1206 compatible = "simple-bus";
1207 reg = <0x0 0xff63c000 0x0 0x1c00>;
1208 #address-cells = <2>;
1210 ranges = <0x0 0x0 0x0 0xff63c000 0x0 0x1c00>;
1212 sysctrl: system-controller@0 {
1213 compatible = "amlogic,meson-axg-hhi-sysctrl",
1214 "simple-mfd", "syscon";
1215 reg = <0 0 0 0x400>;
1217 clkc: clock-controller {
1218 compatible = "amlogic,axg-clkc";
1221 clock-names = "xtal";
1224 pwrc: power-controller {
1225 compatible = "amlogic,meson-axg-pwrc";
1226 #power-domain-cells = <1>;
1227 amlogic,ao-sysctrl = <&sysctrl_AO>;
1228 resets = <&reset RESET_VIU>,
1229 <&reset RESET_VENC>,
1230 <&reset RESET_VCBUS>,
1231 <&reset RESET_VENCL>,
1232 <&reset RESET_VID_LOCK>;
1233 reset-names = "viu", "venc", "vcbus",
1234 "vencl", "vid_lock";
1235 clocks = <&clkc CLKID_VPU>,
1237 clock-names = "vpu", "vapb";
1239 * VPU clocking is provided by two identical clock paths
1240 * VPU_0 and VPU_1 muxed to a single clock by a glitch
1241 * free mux to safely change frequency while running.
1242 * Same for VAPB but with a final gate after the glitch free mux.
1244 assigned-clocks = <&clkc CLKID_VPU_0_SEL>,
1245 <&clkc CLKID_VPU_0>,
1246 <&clkc CLKID_VPU>, /* Glitch free mux */
1247 <&clkc CLKID_VAPB_0_SEL>,
1248 <&clkc CLKID_VAPB_0>,
1249 <&clkc CLKID_VAPB_SEL>; /* Glitch free mux */
1250 assigned-clock-parents = <&clkc CLKID_FCLK_DIV4>,
1251 <0>, /* Do Nothing */
1252 <&clkc CLKID_VPU_0>,
1253 <&clkc CLKID_FCLK_DIV4>,
1254 <0>, /* Do Nothing */
1255 <&clkc CLKID_VAPB_0>;
1256 assigned-clock-rates = <0>, /* Do Nothing */
1258 <0>, /* Do Nothing */
1259 <0>, /* Do Nothing */
1261 <0>; /* Do Nothing */
1264 mipi_pcie_analog_dphy: phy {
1265 compatible = "amlogic,axg-mipi-pcie-analog-phy";
1267 status = "disabled";
1272 mailbox: mailbox@ff63c404 {
1273 compatible = "amlogic,meson-gxbb-mhu";
1274 reg = <0 0xff63c404 0 0x4c>;
1275 interrupts = <GIC_SPI 208 IRQ_TYPE_EDGE_RISING>,
1276 <GIC_SPI 209 IRQ_TYPE_EDGE_RISING>,
1277 <GIC_SPI 210 IRQ_TYPE_EDGE_RISING>;
1281 mipi_dphy: phy@ff640000 {
1282 compatible = "amlogic,axg-mipi-dphy";
1283 reg = <0x0 0xff640000 0x0 0x100>;
1284 clocks = <&clkc CLKID_MIPI_DSI_PHY>;
1285 clock-names = "pclk";
1286 resets = <&reset RESET_MIPI_PHY>;
1287 reset-names = "phy";
1288 phys = <&mipi_pcie_analog_dphy>;
1289 phy-names = "analog";
1291 status = "disabled";
1294 audio: bus@ff642000 {
1295 compatible = "simple-bus";
1296 reg = <0x0 0xff642000 0x0 0x2000>;
1297 #address-cells = <2>;
1299 ranges = <0x0 0x0 0x0 0xff642000 0x0 0x2000>;
1301 clkc_audio: clock-controller@0 {
1302 compatible = "amlogic,axg-audio-clkc";
1303 reg = <0x0 0x0 0x0 0xb4>;
1306 clocks = <&clkc CLKID_AUDIO>,
1307 <&clkc CLKID_MPLL0>,
1308 <&clkc CLKID_MPLL1>,
1309 <&clkc CLKID_MPLL2>,
1310 <&clkc CLKID_MPLL3>,
1311 <&clkc CLKID_HIFI_PLL>,
1312 <&clkc CLKID_FCLK_DIV3>,
1313 <&clkc CLKID_FCLK_DIV4>,
1314 <&clkc CLKID_GP0_PLL>;
1315 clock-names = "pclk",
1325 resets = <&reset RESET_AUDIO>;
1328 toddr_a: audio-controller@100 {
1329 compatible = "amlogic,axg-toddr";
1330 reg = <0x0 0x100 0x0 0x2c>;
1331 #sound-dai-cells = <0>;
1332 sound-name-prefix = "TODDR_A";
1333 interrupts = <GIC_SPI 84 IRQ_TYPE_EDGE_RISING>;
1334 clocks = <&clkc_audio AUD_CLKID_TODDR_A>;
1335 resets = <&arb AXG_ARB_TODDR_A>;
1336 amlogic,fifo-depth = <512>;
1337 status = "disabled";
1340 toddr_b: audio-controller@140 {
1341 compatible = "amlogic,axg-toddr";
1342 reg = <0x0 0x140 0x0 0x2c>;
1343 #sound-dai-cells = <0>;
1344 sound-name-prefix = "TODDR_B";
1345 interrupts = <GIC_SPI 85 IRQ_TYPE_EDGE_RISING>;
1346 clocks = <&clkc_audio AUD_CLKID_TODDR_B>;
1347 resets = <&arb AXG_ARB_TODDR_B>;
1348 amlogic,fifo-depth = <256>;
1349 status = "disabled";
1352 toddr_c: audio-controller@180 {
1353 compatible = "amlogic,axg-toddr";
1354 reg = <0x0 0x180 0x0 0x2c>;
1355 #sound-dai-cells = <0>;
1356 sound-name-prefix = "TODDR_C";
1357 interrupts = <GIC_SPI 86 IRQ_TYPE_EDGE_RISING>;
1358 clocks = <&clkc_audio AUD_CLKID_TODDR_C>;
1359 resets = <&arb AXG_ARB_TODDR_C>;
1360 amlogic,fifo-depth = <256>;
1361 status = "disabled";
1364 frddr_a: audio-controller@1c0 {
1365 compatible = "amlogic,axg-frddr";
1366 reg = <0x0 0x1c0 0x0 0x2c>;
1367 #sound-dai-cells = <0>;
1368 sound-name-prefix = "FRDDR_A";
1369 interrupts = <GIC_SPI 88 IRQ_TYPE_EDGE_RISING>;
1370 clocks = <&clkc_audio AUD_CLKID_FRDDR_A>;
1371 resets = <&arb AXG_ARB_FRDDR_A>;
1372 amlogic,fifo-depth = <512>;
1373 status = "disabled";
1376 frddr_b: audio-controller@200 {
1377 compatible = "amlogic,axg-frddr";
1378 reg = <0x0 0x200 0x0 0x2c>;
1379 #sound-dai-cells = <0>;
1380 sound-name-prefix = "FRDDR_B";
1381 interrupts = <GIC_SPI 89 IRQ_TYPE_EDGE_RISING>;
1382 clocks = <&clkc_audio AUD_CLKID_FRDDR_B>;
1383 resets = <&arb AXG_ARB_FRDDR_B>;
1384 amlogic,fifo-depth = <256>;
1385 status = "disabled";
1388 frddr_c: audio-controller@240 {
1389 compatible = "amlogic,axg-frddr";
1390 reg = <0x0 0x240 0x0 0x2c>;
1391 #sound-dai-cells = <0>;
1392 sound-name-prefix = "FRDDR_C";
1393 interrupts = <GIC_SPI 90 IRQ_TYPE_EDGE_RISING>;
1394 clocks = <&clkc_audio AUD_CLKID_FRDDR_C>;
1395 resets = <&arb AXG_ARB_FRDDR_C>;
1396 amlogic,fifo-depth = <256>;
1397 status = "disabled";
1400 arb: reset-controller@280 {
1401 compatible = "amlogic,meson-axg-audio-arb";
1402 reg = <0x0 0x280 0x0 0x4>;
1404 clocks = <&clkc_audio AUD_CLKID_DDR_ARB>;
1407 tdmin_a: audio-controller@300 {
1408 compatible = "amlogic,axg-tdmin";
1409 reg = <0x0 0x300 0x0 0x40>;
1410 sound-name-prefix = "TDMIN_A";
1411 clocks = <&clkc_audio AUD_CLKID_TDMIN_A>,
1412 <&clkc_audio AUD_CLKID_TDMIN_A_SCLK>,
1413 <&clkc_audio AUD_CLKID_TDMIN_A_SCLK_SEL>,
1414 <&clkc_audio AUD_CLKID_TDMIN_A_LRCLK>,
1415 <&clkc_audio AUD_CLKID_TDMIN_A_LRCLK>;
1416 clock-names = "pclk", "sclk", "sclk_sel",
1417 "lrclk", "lrclk_sel";
1418 status = "disabled";
1421 tdmin_b: audio-controller@340 {
1422 compatible = "amlogic,axg-tdmin";
1423 reg = <0x0 0x340 0x0 0x40>;
1424 sound-name-prefix = "TDMIN_B";
1425 clocks = <&clkc_audio AUD_CLKID_TDMIN_B>,
1426 <&clkc_audio AUD_CLKID_TDMIN_B_SCLK>,
1427 <&clkc_audio AUD_CLKID_TDMIN_B_SCLK_SEL>,
1428 <&clkc_audio AUD_CLKID_TDMIN_B_LRCLK>,
1429 <&clkc_audio AUD_CLKID_TDMIN_B_LRCLK>;
1430 clock-names = "pclk", "sclk", "sclk_sel",
1431 "lrclk", "lrclk_sel";
1432 status = "disabled";
1435 tdmin_c: audio-controller@380 {
1436 compatible = "amlogic,axg-tdmin";
1437 reg = <0x0 0x380 0x0 0x40>;
1438 sound-name-prefix = "TDMIN_C";
1439 clocks = <&clkc_audio AUD_CLKID_TDMIN_C>,
1440 <&clkc_audio AUD_CLKID_TDMIN_C_SCLK>,
1441 <&clkc_audio AUD_CLKID_TDMIN_C_SCLK_SEL>,
1442 <&clkc_audio AUD_CLKID_TDMIN_C_LRCLK>,
1443 <&clkc_audio AUD_CLKID_TDMIN_C_LRCLK>;
1444 clock-names = "pclk", "sclk", "sclk_sel",
1445 "lrclk", "lrclk_sel";
1446 status = "disabled";
1449 tdmin_lb: audio-controller@3c0 {
1450 compatible = "amlogic,axg-tdmin";
1451 reg = <0x0 0x3c0 0x0 0x40>;
1452 sound-name-prefix = "TDMIN_LB";
1453 clocks = <&clkc_audio AUD_CLKID_TDMIN_LB>,
1454 <&clkc_audio AUD_CLKID_TDMIN_LB_SCLK>,
1455 <&clkc_audio AUD_CLKID_TDMIN_LB_SCLK_SEL>,
1456 <&clkc_audio AUD_CLKID_TDMIN_LB_LRCLK>,
1457 <&clkc_audio AUD_CLKID_TDMIN_LB_LRCLK>;
1458 clock-names = "pclk", "sclk", "sclk_sel",
1459 "lrclk", "lrclk_sel";
1460 status = "disabled";
1463 spdifin: audio-controller@400 {
1464 compatible = "amlogic,axg-spdifin";
1465 reg = <0x0 0x400 0x0 0x30>;
1466 #sound-dai-cells = <0>;
1467 sound-name-prefix = "SPDIFIN";
1468 interrupts = <GIC_SPI 87 IRQ_TYPE_EDGE_RISING>;
1469 clocks = <&clkc_audio AUD_CLKID_SPDIFIN>,
1470 <&clkc_audio AUD_CLKID_SPDIFIN_CLK>;
1471 clock-names = "pclk", "refclk";
1472 status = "disabled";
1475 spdifout: audio-controller@480 {
1476 compatible = "amlogic,axg-spdifout";
1477 reg = <0x0 0x480 0x0 0x50>;
1478 #sound-dai-cells = <0>;
1479 sound-name-prefix = "SPDIFOUT";
1480 clocks = <&clkc_audio AUD_CLKID_SPDIFOUT>,
1481 <&clkc_audio AUD_CLKID_SPDIFOUT_CLK>;
1482 clock-names = "pclk", "mclk";
1483 status = "disabled";
1486 tdmout_a: audio-controller@500 {
1487 compatible = "amlogic,axg-tdmout";
1488 reg = <0x0 0x500 0x0 0x40>;
1489 sound-name-prefix = "TDMOUT_A";
1490 clocks = <&clkc_audio AUD_CLKID_TDMOUT_A>,
1491 <&clkc_audio AUD_CLKID_TDMOUT_A_SCLK>,
1492 <&clkc_audio AUD_CLKID_TDMOUT_A_SCLK_SEL>,
1493 <&clkc_audio AUD_CLKID_TDMOUT_A_LRCLK>,
1494 <&clkc_audio AUD_CLKID_TDMOUT_A_LRCLK>;
1495 clock-names = "pclk", "sclk", "sclk_sel",
1496 "lrclk", "lrclk_sel";
1497 status = "disabled";
1500 tdmout_b: audio-controller@540 {
1501 compatible = "amlogic,axg-tdmout";
1502 reg = <0x0 0x540 0x0 0x40>;
1503 sound-name-prefix = "TDMOUT_B";
1504 clocks = <&clkc_audio AUD_CLKID_TDMOUT_B>,
1505 <&clkc_audio AUD_CLKID_TDMOUT_B_SCLK>,
1506 <&clkc_audio AUD_CLKID_TDMOUT_B_SCLK_SEL>,
1507 <&clkc_audio AUD_CLKID_TDMOUT_B_LRCLK>,
1508 <&clkc_audio AUD_CLKID_TDMOUT_B_LRCLK>;
1509 clock-names = "pclk", "sclk", "sclk_sel",
1510 "lrclk", "lrclk_sel";
1511 status = "disabled";
1514 tdmout_c: audio-controller@580 {
1515 compatible = "amlogic,axg-tdmout";
1516 reg = <0x0 0x580 0x0 0x40>;
1517 sound-name-prefix = "TDMOUT_C";
1518 clocks = <&clkc_audio AUD_CLKID_TDMOUT_C>,
1519 <&clkc_audio AUD_CLKID_TDMOUT_C_SCLK>,
1520 <&clkc_audio AUD_CLKID_TDMOUT_C_SCLK_SEL>,
1521 <&clkc_audio AUD_CLKID_TDMOUT_C_LRCLK>,
1522 <&clkc_audio AUD_CLKID_TDMOUT_C_LRCLK>;
1523 clock-names = "pclk", "sclk", "sclk_sel",
1524 "lrclk", "lrclk_sel";
1525 status = "disabled";
1529 aobus: bus@ff800000 {
1530 compatible = "simple-bus";
1531 reg = <0x0 0xff800000 0x0 0x100000>;
1532 #address-cells = <2>;
1534 ranges = <0x0 0x0 0x0 0xff800000 0x0 0x100000>;
1536 sysctrl_AO: sys-ctrl@0 {
1537 compatible = "amlogic,meson-axg-ao-sysctrl", "simple-mfd", "syscon";
1538 reg = <0x0 0x0 0x0 0x100>;
1540 clkc_AO: clock-controller {
1541 compatible = "amlogic,meson-axg-aoclkc";
1544 clocks = <&xtal>, <&clkc CLKID_CLK81>;
1545 clock-names = "xtal", "mpeg-clk";
1549 pinctrl_aobus: pinctrl@14 {
1550 compatible = "amlogic,meson-axg-aobus-pinctrl";
1551 #address-cells = <2>;
1556 reg = <0x0 0x00014 0x0 0x8>,
1557 <0x0 0x0002c 0x0 0x4>,
1558 <0x0 0x00024 0x0 0x8>;
1559 reg-names = "mux", "pull", "gpio";
1562 gpio-ranges = <&pinctrl_aobus 0 0 15>;
1565 i2c_ao_sck_4_pins: i2c_ao_sck_4 {
1567 groups = "i2c_ao_sck_4";
1568 function = "i2c_ao";
1573 i2c_ao_sck_8_pins: i2c_ao_sck_8 {
1575 groups = "i2c_ao_sck_8";
1576 function = "i2c_ao";
1581 i2c_ao_sck_10_pins: i2c_ao_sck_10 {
1583 groups = "i2c_ao_sck_10";
1584 function = "i2c_ao";
1589 i2c_ao_sda_5_pins: i2c_ao_sda_5 {
1591 groups = "i2c_ao_sda_5";
1592 function = "i2c_ao";
1597 i2c_ao_sda_9_pins: i2c_ao_sda_9 {
1599 groups = "i2c_ao_sda_9";
1600 function = "i2c_ao";
1605 i2c_ao_sda_11_pins: i2c_ao_sda_11 {
1607 groups = "i2c_ao_sda_11";
1608 function = "i2c_ao";
1613 remote_input_ao_pins: remote_input_ao {
1615 groups = "remote_input_ao";
1616 function = "remote_input_ao";
1621 uart_ao_a_pins: uart_ao_a {
1623 groups = "uart_ao_tx_a",
1625 function = "uart_ao_a";
1630 uart_ao_a_cts_rts_pins: uart_ao_a_cts_rts {
1632 groups = "uart_ao_cts_a",
1634 function = "uart_ao_a";
1639 uart_ao_b_pins: uart_ao_b {
1641 groups = "uart_ao_tx_b",
1643 function = "uart_ao_b";
1648 uart_ao_b_cts_rts_pins: uart_ao_b_cts_rts {
1650 groups = "uart_ao_cts_b",
1652 function = "uart_ao_b";
1658 sec_AO: ao-secure@140 {
1659 compatible = "amlogic,meson-gx-ao-secure", "syscon";
1660 reg = <0x0 0x140 0x0 0x140>;
1661 amlogic,has-chip-id;
1664 pwm_AO_cd: pwm@2000 {
1665 compatible = "amlogic,meson-axg-ao-pwm";
1666 reg = <0x0 0x02000 0x0 0x20>;
1668 status = "disabled";
1671 uart_AO: serial@3000 {
1672 compatible = "amlogic,meson-gx-uart", "amlogic,meson-ao-uart";
1673 reg = <0x0 0x3000 0x0 0x18>;
1674 interrupts = <GIC_SPI 193 IRQ_TYPE_EDGE_RISING>;
1675 clocks = <&xtal>, <&clkc_AO CLKID_AO_UART1>, <&xtal>;
1676 clock-names = "xtal", "pclk", "baud";
1677 status = "disabled";
1680 uart_AO_B: serial@4000 {
1681 compatible = "amlogic,meson-gx-uart", "amlogic,meson-ao-uart";
1682 reg = <0x0 0x4000 0x0 0x18>;
1683 interrupts = <GIC_SPI 197 IRQ_TYPE_EDGE_RISING>;
1684 clocks = <&xtal>, <&clkc_AO CLKID_AO_UART2>, <&xtal>;
1685 clock-names = "xtal", "pclk", "baud";
1686 status = "disabled";
1690 compatible = "amlogic,meson-axg-i2c";
1691 reg = <0x0 0x05000 0x0 0x20>;
1692 interrupts = <GIC_SPI 195 IRQ_TYPE_EDGE_RISING>;
1693 clocks = <&clkc CLKID_AO_I2C>;
1694 #address-cells = <1>;
1696 status = "disabled";
1699 pwm_AO_ab: pwm@7000 {
1700 compatible = "amlogic,meson-axg-ao-pwm";
1701 reg = <0x0 0x07000 0x0 0x20>;
1703 status = "disabled";
1707 compatible = "amlogic,meson-gxbb-ir";
1708 reg = <0x0 0x8000 0x0 0x20>;
1709 interrupts = <GIC_SPI 196 IRQ_TYPE_EDGE_RISING>;
1710 status = "disabled";
1714 compatible = "amlogic,meson-axg-saradc",
1715 "amlogic,meson-saradc";
1716 reg = <0x0 0x9000 0x0 0x38>;
1717 #io-channel-cells = <1>;
1718 interrupts = <GIC_SPI 73 IRQ_TYPE_EDGE_RISING>;
1720 <&clkc_AO CLKID_AO_SAR_ADC>,
1721 <&clkc_AO CLKID_AO_SAR_ADC_CLK>,
1722 <&clkc_AO CLKID_AO_SAR_ADC_SEL>;
1723 clock-names = "clkin", "core", "adc_clk", "adc_sel";
1724 status = "disabled";
1728 ge2d: ge2d@ff940000 {
1729 compatible = "amlogic,axg-ge2d";
1730 reg = <0x0 0xff940000 0x0 0x10000>;
1731 interrupts = <GIC_SPI 150 IRQ_TYPE_EDGE_RISING>;
1732 clocks = <&clkc CLKID_VAPB>;
1733 resets = <&reset RESET_GE2D>;
1736 gic: interrupt-controller@ffc01000 {
1737 compatible = "arm,gic-400";
1738 reg = <0x0 0xffc01000 0 0x1000>,
1739 <0x0 0xffc02000 0 0x2000>,
1740 <0x0 0xffc04000 0 0x2000>,
1741 <0x0 0xffc06000 0 0x2000>;
1742 interrupt-controller;
1743 interrupts = <GIC_PPI 9
1744 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>;
1745 #interrupt-cells = <3>;
1746 #address-cells = <0>;
1749 cbus: bus@ffd00000 {
1750 compatible = "simple-bus";
1751 reg = <0x0 0xffd00000 0x0 0x25000>;
1752 #address-cells = <2>;
1754 ranges = <0x0 0x0 0x0 0xffd00000 0x0 0x25000>;
1756 reset: reset-controller@1004 {
1757 compatible = "amlogic,meson-axg-reset";
1758 reg = <0x0 0x01004 0x0 0x9c>;
1762 gpio_intc: interrupt-controller@f080 {
1763 compatible = "amlogic,meson-axg-gpio-intc",
1764 "amlogic,meson-gpio-intc";
1765 reg = <0x0 0xf080 0x0 0x10>;
1766 interrupt-controller;
1767 #interrupt-cells = <2>;
1768 amlogic,channel-interrupts = <64 65 66 67 68 69 70 71>;
1772 compatible = "amlogic,meson-gxbb-wdt";
1773 reg = <0x0 0xf0d0 0x0 0x10>;
1778 compatible = "amlogic,meson-axg-ee-pwm";
1779 reg = <0x0 0x1b000 0x0 0x20>;
1781 status = "disabled";
1785 compatible = "amlogic,meson-axg-ee-pwm";
1786 reg = <0x0 0x1a000 0x0 0x20>;
1788 status = "disabled";
1792 compatible = "amlogic,meson-axg-spicc";
1793 reg = <0x0 0x13000 0x0 0x3c>;
1794 interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
1795 clocks = <&clkc CLKID_SPICC0>;
1796 clock-names = "core";
1797 #address-cells = <1>;
1799 status = "disabled";
1803 compatible = "amlogic,meson-axg-spicc";
1804 reg = <0x0 0x15000 0x0 0x3c>;
1805 interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
1806 clocks = <&clkc CLKID_SPICC1>;
1807 clock-names = "core";
1808 #address-cells = <1>;
1810 status = "disabled";
1813 clk_msr: clock-measure@18000 {
1814 compatible = "amlogic,meson-axg-clk-measure";
1815 reg = <0x0 0x18000 0x0 0x10>;
1819 compatible = "amlogic,meson-axg-i2c";
1820 reg = <0x0 0x1c000 0x0 0x20>;
1821 interrupts = <GIC_SPI 39 IRQ_TYPE_EDGE_RISING>;
1822 clocks = <&clkc CLKID_I2C>;
1823 #address-cells = <1>;
1825 status = "disabled";
1829 compatible = "amlogic,meson-axg-i2c";
1830 reg = <0x0 0x1d000 0x0 0x20>;
1831 interrupts = <GIC_SPI 215 IRQ_TYPE_EDGE_RISING>;
1832 clocks = <&clkc CLKID_I2C>;
1833 #address-cells = <1>;
1835 status = "disabled";
1839 compatible = "amlogic,meson-axg-i2c";
1840 reg = <0x0 0x1e000 0x0 0x20>;
1841 interrupts = <GIC_SPI 214 IRQ_TYPE_EDGE_RISING>;
1842 clocks = <&clkc CLKID_I2C>;
1843 #address-cells = <1>;
1845 status = "disabled";
1849 compatible = "amlogic,meson-axg-i2c";
1850 reg = <0x0 0x1f000 0x0 0x20>;
1851 interrupts = <GIC_SPI 21 IRQ_TYPE_EDGE_RISING>;
1852 clocks = <&clkc CLKID_I2C>;
1853 #address-cells = <1>;
1855 status = "disabled";
1858 uart_B: serial@23000 {
1859 compatible = "amlogic,meson-gx-uart";
1860 reg = <0x0 0x23000 0x0 0x18>;
1861 interrupts = <GIC_SPI 75 IRQ_TYPE_EDGE_RISING>;
1862 status = "disabled";
1863 clocks = <&xtal>, <&clkc CLKID_UART1>, <&xtal>;
1864 clock-names = "xtal", "pclk", "baud";
1867 uart_A: serial@24000 {
1868 compatible = "amlogic,meson-gx-uart";
1869 reg = <0x0 0x24000 0x0 0x18>;
1870 interrupts = <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>;
1871 status = "disabled";
1872 clocks = <&xtal>, <&clkc CLKID_UART0>, <&xtal>;
1873 clock-names = "xtal", "pclk", "baud";
1879 compatible = "simple-bus";
1880 reg = <0x0 0xffe00000 0x0 0x200000>;
1881 #address-cells = <2>;
1883 ranges = <0x0 0x0 0x0 0xffe00000 0x0 0x200000>;
1885 sd_emmc_b: sd@5000 {
1886 compatible = "amlogic,meson-axg-mmc";
1887 reg = <0x0 0x5000 0x0 0x800>;
1888 interrupts = <GIC_SPI 217 IRQ_TYPE_LEVEL_HIGH>;
1889 status = "disabled";
1890 clocks = <&clkc CLKID_SD_EMMC_B>,
1891 <&clkc CLKID_SD_EMMC_B_CLK0>,
1892 <&clkc CLKID_FCLK_DIV2>;
1893 clock-names = "core", "clkin0", "clkin1";
1894 resets = <&reset RESET_SD_EMMC_B>;
1897 sd_emmc_c: mmc@7000 {
1898 compatible = "amlogic,meson-axg-mmc";
1899 reg = <0x0 0x7000 0x0 0x800>;
1900 interrupts = <GIC_SPI 218 IRQ_TYPE_LEVEL_HIGH>;
1901 status = "disabled";
1902 clocks = <&clkc CLKID_SD_EMMC_C>,
1903 <&clkc CLKID_SD_EMMC_C_CLK0>,
1904 <&clkc CLKID_FCLK_DIV2>;
1905 clock-names = "core", "clkin0", "clkin1";
1906 resets = <&reset RESET_SD_EMMC_C>;
1909 usb2_phy1: phy@9020 {
1910 compatible = "amlogic,meson-gxl-usb2-phy";
1912 reg = <0x0 0x9020 0x0 0x20>;
1913 clocks = <&clkc CLKID_USB>;
1914 clock-names = "phy";
1915 resets = <&reset RESET_USB_OTG>;
1916 reset-names = "phy";
1920 sram: sram@fffc0000 {
1921 compatible = "mmio-sram";
1922 reg = <0x0 0xfffc0000 0x0 0x20000>;
1923 #address-cells = <1>;
1925 ranges = <0 0x0 0xfffc0000 0x20000>;
1927 cpu_scp_lpri: scp-sram@13000 {
1928 compatible = "amlogic,meson-axg-scp-shmem";
1929 reg = <0x13000 0x400>;
1932 cpu_scp_hpri: scp-sram@13400 {
1933 compatible = "amlogic,meson-axg-scp-shmem";
1934 reg = <0x13400 0x400>;
1940 compatible = "arm,armv8-timer";
1941 interrupts = <GIC_PPI 13
1942 (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
1944 (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
1946 (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
1948 (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>;
1952 compatible = "fixed-clock";
1953 clock-frequency = <24000000>;
1954 clock-output-names = "xtal";