1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
3 * Copyright (c) 2017 Amlogic, Inc. All rights reserved.
6 #include <dt-bindings/gpio/gpio.h>
7 #include <dt-bindings/interrupt-controller/irq.h>
8 #include <dt-bindings/interrupt-controller/arm-gic.h>
9 #include <dt-bindings/clock/axg-audio-clkc.h>
10 #include <dt-bindings/clock/axg-clkc.h>
11 #include <dt-bindings/clock/axg-aoclkc.h>
12 #include <dt-bindings/gpio/meson-axg-gpio.h>
13 #include <dt-bindings/reset/amlogic,meson-axg-reset.h>
16 compatible = "amlogic,meson-axg";
18 interrupt-parent = <&gic>;
27 /* 16 MiB reserved for Hardware ROM Firmware */
28 hwrom_reserved: hwrom@0 {
29 reg = <0x0 0x0 0x0 0x1000000>;
33 /* Alternate 3 MiB reserved for ARM Trusted Firmware (BL31) */
34 secmon_reserved: secmon@5000000 {
35 reg = <0x0 0x05000000 0x0 0x300000>;
41 #address-cells = <0x2>;
46 compatible = "arm,cortex-a53", "arm,armv8";
48 enable-method = "psci";
49 next-level-cache = <&l2>;
50 clocks = <&scpi_dvfs 0>;
55 compatible = "arm,cortex-a53", "arm,armv8";
57 enable-method = "psci";
58 next-level-cache = <&l2>;
59 clocks = <&scpi_dvfs 0>;
64 compatible = "arm,cortex-a53", "arm,armv8";
66 enable-method = "psci";
67 next-level-cache = <&l2>;
68 clocks = <&scpi_dvfs 0>;
73 compatible = "arm,cortex-a53", "arm,armv8";
75 enable-method = "psci";
76 next-level-cache = <&l2>;
77 clocks = <&scpi_dvfs 0>;
86 compatible = "arm,cortex-a53-pmu";
87 interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
88 <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>,
89 <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>,
90 <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>;
91 interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
95 compatible = "arm,psci-1.0";
99 tdmif_a: audio-controller@0 {
100 compatible = "amlogic,axg-tdm-iface";
101 #sound-dai-cells = <0>;
102 sound-name-prefix = "TDM_A";
103 clocks = <&clkc_audio AUD_CLKID_MST_A_MCLK>,
104 <&clkc_audio AUD_CLKID_MST_A_SCLK>,
105 <&clkc_audio AUD_CLKID_MST_A_LRCLK>;
106 clock-names = "mclk", "sclk", "lrclk";
110 tdmif_b: audio-controller@1 {
111 compatible = "amlogic,axg-tdm-iface";
112 #sound-dai-cells = <0>;
113 sound-name-prefix = "TDM_B";
114 clocks = <&clkc_audio AUD_CLKID_MST_B_MCLK>,
115 <&clkc_audio AUD_CLKID_MST_B_SCLK>,
116 <&clkc_audio AUD_CLKID_MST_B_LRCLK>;
117 clock-names = "mclk", "sclk", "lrclk";
121 tdmif_c: audio-controller@2 {
122 compatible = "amlogic,axg-tdm-iface";
123 #sound-dai-cells = <0>;
124 sound-name-prefix = "TDM_C";
125 clocks = <&clkc_audio AUD_CLKID_MST_C_MCLK>,
126 <&clkc_audio AUD_CLKID_MST_C_SCLK>,
127 <&clkc_audio AUD_CLKID_MST_C_LRCLK>;
128 clock-names = "mclk", "sclk", "lrclk";
133 compatible = "arm,armv8-timer";
134 interrupts = <GIC_PPI 13
135 (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
137 (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
139 (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
141 (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>;
145 compatible = "fixed-clock";
146 clock-frequency = <24000000>;
147 clock-output-names = "xtal";
151 ao_alt_xtal: ao_alt_xtal-clk {
152 compatible = "fixed-clock";
153 clock-frequency = <32000000>;
154 clock-output-names = "ao_alt_xtal";
159 compatible = "arm,scpi-pre-1.0";
160 mboxes = <&mailbox 1 &mailbox 2>;
161 shmem = <&cpu_scp_lpri &cpu_scp_hpri>;
163 scpi_clocks: clocks {
164 compatible = "arm,scpi-clocks";
166 scpi_dvfs: clocks-0 {
167 compatible = "arm,scpi-dvfs-clocks";
170 clock-output-names = "vcpu";
174 scpi_sensors: sensors {
175 compatible = "amlogic,meson-gxbb-scpi-sensors", "arm,scpi-sensors";
176 #thermal-sensor-cells = <1>;
181 compatible = "simple-bus";
182 #address-cells = <2>;
187 compatible = "simple-bus";
188 reg = <0x0 0xffe00000 0x0 0x200000>;
189 #address-cells = <2>;
191 ranges = <0x0 0x0 0x0 0xffe00000 0x0 0x200000>;
194 compatible = "amlogic,meson-axg-mmc";
195 reg = <0x0 0x5000 0x0 0x800>;
196 interrupts = <GIC_SPI 217 IRQ_TYPE_LEVEL_HIGH>;
198 clocks = <&clkc CLKID_SD_EMMC_B>,
199 <&clkc CLKID_SD_EMMC_B_CLK0>,
200 <&clkc CLKID_FCLK_DIV2>;
201 clock-names = "core", "clkin0", "clkin1";
202 resets = <&reset RESET_SD_EMMC_B>;
205 sd_emmc_c: mmc@7000 {
206 compatible = "amlogic,meson-axg-mmc";
207 reg = <0x0 0x7000 0x0 0x800>;
208 interrupts = <GIC_SPI 218 IRQ_TYPE_LEVEL_HIGH>;
210 clocks = <&clkc CLKID_SD_EMMC_C>,
211 <&clkc CLKID_SD_EMMC_C_CLK0>,
212 <&clkc CLKID_FCLK_DIV2>;
213 clock-names = "core", "clkin0", "clkin1";
214 resets = <&reset RESET_SD_EMMC_C>;
218 audio: bus@ff642000 {
219 compatible = "simple-bus";
220 reg = <0x0 0xff642000 0x0 0x2000>;
221 #address-cells = <2>;
223 ranges = <0x0 0x0 0x0 0xff642000 0x0 0x2000>;
225 clkc_audio: clock-controller@0 {
226 compatible = "amlogic,axg-audio-clkc";
227 reg = <0x0 0x0 0x0 0xb4>;
230 clocks = <&clkc CLKID_AUDIO>,
235 <&clkc CLKID_HIFI_PLL>,
236 <&clkc CLKID_FCLK_DIV3>,
237 <&clkc CLKID_FCLK_DIV4>,
238 <&clkc CLKID_GP0_PLL>;
239 clock-names = "pclk",
249 resets = <&reset RESET_AUDIO>;
252 arb: reset-controller@280 {
253 compatible = "amlogic,meson-axg-audio-arb";
254 reg = <0x0 0x280 0x0 0x4>;
256 clocks = <&clkc_audio AUD_CLKID_DDR_ARB>;
259 tdmin_a: audio-controller@300 {
260 compatible = "amlogic,axg-tdmin";
261 reg = <0x0 0x300 0x0 0x40>;
262 sound-name-prefix = "TDMIN_A";
263 clocks = <&clkc_audio AUD_CLKID_TDMIN_A>,
264 <&clkc_audio AUD_CLKID_TDMIN_A_SCLK>,
265 <&clkc_audio AUD_CLKID_TDMIN_A_SCLK_SEL>,
266 <&clkc_audio AUD_CLKID_TDMIN_A_LRCLK>,
267 <&clkc_audio AUD_CLKID_TDMIN_A_LRCLK>;
268 clock-names = "pclk", "sclk", "sclk_sel",
269 "lrclk", "lrclk_sel";
273 tdmin_b: audio-controller@340 {
274 compatible = "amlogic,axg-tdmin";
275 reg = <0x0 0x340 0x0 0x40>;
276 sound-name-prefix = "TDMIN_B";
277 clocks = <&clkc_audio AUD_CLKID_TDMIN_B>,
278 <&clkc_audio AUD_CLKID_TDMIN_B_SCLK>,
279 <&clkc_audio AUD_CLKID_TDMIN_B_SCLK_SEL>,
280 <&clkc_audio AUD_CLKID_TDMIN_B_LRCLK>,
281 <&clkc_audio AUD_CLKID_TDMIN_B_LRCLK>;
282 clock-names = "pclk", "sclk", "sclk_sel",
283 "lrclk", "lrclk_sel";
287 tdmin_c: audio-controller@380 {
288 compatible = "amlogic,axg-tdmin";
289 reg = <0x0 0x380 0x0 0x40>;
290 sound-name-prefix = "TDMIN_C";
291 clocks = <&clkc_audio AUD_CLKID_TDMIN_C>,
292 <&clkc_audio AUD_CLKID_TDMIN_C_SCLK>,
293 <&clkc_audio AUD_CLKID_TDMIN_C_SCLK_SEL>,
294 <&clkc_audio AUD_CLKID_TDMIN_C_LRCLK>,
295 <&clkc_audio AUD_CLKID_TDMIN_C_LRCLK>;
296 clock-names = "pclk", "sclk", "sclk_sel",
297 "lrclk", "lrclk_sel";
301 tdmin_lb: audio-controller@3c0 {
302 compatible = "amlogic,axg-tdmin";
303 reg = <0x0 0x3c0 0x0 0x40>;
304 sound-name-prefix = "TDMIN_LB";
305 clocks = <&clkc_audio AUD_CLKID_TDMIN_LB>,
306 <&clkc_audio AUD_CLKID_TDMIN_LB_SCLK>,
307 <&clkc_audio AUD_CLKID_TDMIN_LB_SCLK_SEL>,
308 <&clkc_audio AUD_CLKID_TDMIN_LB_LRCLK>,
309 <&clkc_audio AUD_CLKID_TDMIN_LB_LRCLK>;
310 clock-names = "pclk", "sclk", "sclk_sel",
311 "lrclk", "lrclk_sel";
315 spdifout: audio-controller@480 {
316 compatible = "amlogic,axg-spdifout";
317 reg = <0x0 0x480 0x0 0x50>;
318 #sound-dai-cells = <0>;
319 sound-name-prefix = "SPDIFOUT";
320 clocks = <&clkc_audio AUD_CLKID_SPDIFOUT>,
321 <&clkc_audio AUD_CLKID_SPDIFOUT_CLK>;
322 clock-names = "pclk", "mclk";
326 tdmout_a: audio-controller@500 {
327 compatible = "amlogic,axg-tdmout";
328 reg = <0x0 0x500 0x0 0x40>;
329 sound-name-prefix = "TDMOUT_A";
330 clocks = <&clkc_audio AUD_CLKID_TDMOUT_A>,
331 <&clkc_audio AUD_CLKID_TDMOUT_A_SCLK>,
332 <&clkc_audio AUD_CLKID_TDMOUT_A_SCLK_SEL>,
333 <&clkc_audio AUD_CLKID_TDMOUT_A_LRCLK>,
334 <&clkc_audio AUD_CLKID_TDMOUT_A_LRCLK>;
335 clock-names = "pclk", "sclk", "sclk_sel",
336 "lrclk", "lrclk_sel";
340 tdmout_b: audio-controller@540 {
341 compatible = "amlogic,axg-tdmout";
342 reg = <0x0 0x540 0x0 0x40>;
343 sound-name-prefix = "TDMOUT_B";
344 clocks = <&clkc_audio AUD_CLKID_TDMOUT_B>,
345 <&clkc_audio AUD_CLKID_TDMOUT_B_SCLK>,
346 <&clkc_audio AUD_CLKID_TDMOUT_B_SCLK_SEL>,
347 <&clkc_audio AUD_CLKID_TDMOUT_B_LRCLK>,
348 <&clkc_audio AUD_CLKID_TDMOUT_B_LRCLK>;
349 clock-names = "pclk", "sclk", "sclk_sel",
350 "lrclk", "lrclk_sel";
354 tdmout_c: audio-controller@580 {
355 compatible = "amlogic,axg-tdmout";
356 reg = <0x0 0x580 0x0 0x40>;
357 sound-name-prefix = "TDMOUT_C";
358 clocks = <&clkc_audio AUD_CLKID_TDMOUT_C>,
359 <&clkc_audio AUD_CLKID_TDMOUT_C_SCLK>,
360 <&clkc_audio AUD_CLKID_TDMOUT_C_SCLK_SEL>,
361 <&clkc_audio AUD_CLKID_TDMOUT_C_LRCLK>,
362 <&clkc_audio AUD_CLKID_TDMOUT_C_LRCLK>;
363 clock-names = "pclk", "sclk", "sclk_sel",
364 "lrclk", "lrclk_sel";
370 compatible = "simple-bus";
371 reg = <0x0 0xffd00000 0x0 0x25000>;
372 #address-cells = <2>;
374 ranges = <0x0 0x0 0x0 0xffd00000 0x0 0x25000>;
376 gpio_intc: interrupt-controller@f080 {
377 compatible = "amlogic,meson-gpio-intc";
378 reg = <0x0 0xf080 0x0 0x10>;
379 interrupt-controller;
380 #interrupt-cells = <2>;
381 amlogic,channel-interrupts = <64 65 66 67 68 69 70 71>;
386 compatible = "amlogic,meson-axg-ee-pwm";
387 reg = <0x0 0x1b000 0x0 0x20>;
393 compatible = "amlogic,meson-axg-ee-pwm";
394 reg = <0x0 0x1a000 0x0 0x20>;
399 reset: reset-controller@1004 {
400 compatible = "amlogic,meson-axg-reset";
401 reg = <0x0 0x01004 0x0 0x9c>;
406 compatible = "amlogic,meson-axg-spicc";
407 reg = <0x0 0x13000 0x0 0x3c>;
408 interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
409 clocks = <&clkc CLKID_SPICC0>;
410 clock-names = "core";
411 #address-cells = <1>;
417 compatible = "amlogic,meson-axg-spicc";
418 reg = <0x0 0x15000 0x0 0x3c>;
419 interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
420 clocks = <&clkc CLKID_SPICC1>;
421 clock-names = "core";
422 #address-cells = <1>;
428 compatible = "amlogic,meson-axg-i2c";
429 reg = <0x0 0x1f000 0x0 0x20>;
430 interrupts = <GIC_SPI 21 IRQ_TYPE_EDGE_RISING>;
431 clocks = <&clkc CLKID_I2C>;
432 #address-cells = <1>;
438 compatible = "amlogic,meson-axg-i2c";
439 reg = <0x0 0x1e000 0x0 0x20>;
440 interrupts = <GIC_SPI 214 IRQ_TYPE_EDGE_RISING>;
441 clocks = <&clkc CLKID_I2C>;
442 #address-cells = <1>;
448 compatible = "amlogic,meson-axg-i2c";
449 reg = <0x0 0x1d000 0x0 0x20>;
450 interrupts = <GIC_SPI 215 IRQ_TYPE_EDGE_RISING>;
451 clocks = <&clkc CLKID_I2C>;
452 #address-cells = <1>;
458 compatible = "amlogic,meson-axg-i2c";
459 reg = <0x0 0x1c000 0x0 0x20>;
460 interrupts = <GIC_SPI 39 IRQ_TYPE_EDGE_RISING>;
461 clocks = <&clkc CLKID_I2C>;
462 #address-cells = <1>;
467 uart_A: serial@24000 {
468 compatible = "amlogic,meson-gx-uart";
469 reg = <0x0 0x24000 0x0 0x18>;
470 interrupts = <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>;
472 clocks = <&xtal>, <&clkc CLKID_UART0>, <&xtal>;
473 clock-names = "xtal", "pclk", "baud";
476 uart_B: serial@23000 {
477 compatible = "amlogic,meson-gx-uart";
478 reg = <0x0 0x23000 0x0 0x18>;
479 interrupts = <GIC_SPI 75 IRQ_TYPE_EDGE_RISING>;
481 clocks = <&xtal>, <&clkc CLKID_UART1>, <&xtal>;
482 clock-names = "xtal", "pclk", "baud";
486 ethmac: ethernet@ff3f0000 {
487 compatible = "amlogic,meson-axg-dwmac", "snps,dwmac";
488 reg = <0x0 0xff3f0000 0x0 0x10000
489 0x0 0xff634540 0x0 0x8>;
490 interrupts = <GIC_SPI 8 IRQ_TYPE_EDGE_RISING>;
491 interrupt-names = "macirq";
492 clocks = <&clkc CLKID_ETH>,
493 <&clkc CLKID_FCLK_DIV2>,
495 clock-names = "stmmaceth", "clkin0", "clkin1";
499 gic: interrupt-controller@ffc01000 {
500 compatible = "arm,gic-400";
501 reg = <0x0 0xffc01000 0 0x1000>,
502 <0x0 0xffc02000 0 0x2000>,
503 <0x0 0xffc04000 0 0x2000>,
504 <0x0 0xffc06000 0 0x2000>;
505 interrupt-controller;
506 interrupts = <GIC_PPI 9
507 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>;
508 #interrupt-cells = <3>;
509 #address-cells = <0>;
512 hiubus: bus@ff63c000 {
513 compatible = "simple-bus";
514 reg = <0x0 0xff63c000 0x0 0x1c00>;
515 #address-cells = <2>;
517 ranges = <0x0 0x0 0x0 0xff63c000 0x0 0x1c00>;
519 sysctrl: system-controller@0 {
520 compatible = "amlogic,meson-axg-hhi-sysctrl", "syscon", "simple-mfd";
523 clkc: clock-controller {
524 compatible = "amlogic,axg-clkc";
530 mailbox: mailbox@ff63dc00 {
531 compatible = "amlogic,meson-gx-mhu", "amlogic,meson-gxbb-mhu";
532 reg = <0 0xff63dc00 0 0x400>;
533 interrupts = <GIC_SPI 208 IRQ_TYPE_EDGE_RISING>,
534 <GIC_SPI 209 IRQ_TYPE_EDGE_RISING>,
535 <GIC_SPI 210 IRQ_TYPE_EDGE_RISING>;
539 periphs: periphs@ff634000 {
540 compatible = "simple-bus";
541 reg = <0x0 0xff634000 0x0 0x2000>;
542 #address-cells = <2>;
544 ranges = <0x0 0x0 0x0 0xff634000 0x0 0x2000>;
547 compatible = "amlogic,meson-rng";
548 reg = <0x0 0x18 0x0 0x4>;
549 clocks = <&clkc CLKID_RNG0>;
550 clock-names = "core";
553 pinctrl_periphs: pinctrl@480 {
554 compatible = "amlogic,meson-axg-periphs-pinctrl";
555 #address-cells = <2>;
560 reg = <0x0 0x00480 0x0 0x40>,
561 <0x0 0x004e8 0x0 0x14>,
562 <0x0 0x00520 0x0 0x14>,
563 <0x0 0x00430 0x0 0x3c>;
564 reg-names = "mux", "pull", "pull-enable", "gpio";
567 gpio-ranges = <&pinctrl_periphs 0 0 86>;
572 groups = "emmc_nand_d0",
587 emmc_clk_gate_pins: emmc_clk_gate {
590 function = "gpio_periphs";
610 sdio_clk_gate_pins: sdio_clk_gate {
613 function = "gpio_periphs";
621 eth_rmii_x_pins: eth-x-rmii {
623 groups = "eth_mdio_x",
625 "eth_rgmii_rx_clk_x",
636 eth_rmii_y_pins: eth-y-rmii {
638 groups = "eth_mdio_y",
640 "eth_rgmii_rx_clk_y",
651 eth_rgmii_x_pins: eth-x-rgmii {
653 groups = "eth_mdio_x",
655 "eth_rgmii_rx_clk_x",
671 eth_rgmii_y_pins: eth-y-rgmii {
673 groups = "eth_mdio_y",
675 "eth_rgmii_rx_clk_y",
691 pdm_dclk_a14_pins: pdm_dclk_a14 {
693 groups = "pdm_dclk_a14";
698 pdm_dclk_a19_pins: pdm_dclk_a19 {
700 groups = "pdm_dclk_a19";
705 pdm_din0_pins: pdm_din0 {
712 pdm_din1_pins: pdm_din1 {
719 pdm_din2_pins: pdm_din2 {
726 pdm_din3_pins: pdm_din3 {
733 pwm_a_a_pins: pwm_a_a {
740 pwm_a_x18_pins: pwm_a_x18 {
742 groups = "pwm_a_x18";
747 pwm_a_x20_pins: pwm_a_x20 {
749 groups = "pwm_a_x20";
754 pwm_a_z_pins: pwm_a_z {
761 pwm_b_a_pins: pwm_b_a {
768 pwm_b_x_pins: pwm_b_x {
775 pwm_b_z_pins: pwm_b_z {
782 pwm_c_a_pins: pwm_c_a {
789 pwm_c_x10_pins: pwm_c_x10 {
791 groups = "pwm_c_x10";
796 pwm_c_x17_pins: pwm_c_x17 {
798 groups = "pwm_c_x17";
803 pwm_d_x11_pins: pwm_d_x11 {
805 groups = "pwm_d_x11";
810 pwm_d_x16_pins: pwm_d_x16 {
812 groups = "pwm_d_x16";
817 spdif_in_z_pins: spdif_in_z {
819 groups = "spdif_in_z";
820 function = "spdif_in";
824 spdif_in_a1_pins: spdif_in_a1 {
826 groups = "spdif_in_a1";
827 function = "spdif_in";
831 spdif_in_a7_pins: spdif_in_a7 {
833 groups = "spdif_in_a7";
834 function = "spdif_in";
838 spdif_in_a19_pins: spdif_in_a19 {
840 groups = "spdif_in_a19";
841 function = "spdif_in";
845 spdif_in_a20_pins: spdif_in_a20 {
847 groups = "spdif_in_a20";
848 function = "spdif_in";
852 spdif_out_z_pins: spdif_out_z {
854 groups = "spdif_out_z";
855 function = "spdif_out";
859 spdif_out_a1_pins: spdif_out_a1 {
861 groups = "spdif_out_a1";
862 function = "spdif_out";
866 spdif_out_a11_pins: spdif_out_a11 {
868 groups = "spdif_out_a11";
869 function = "spdif_out";
873 spdif_out_a19_pins: spdif_out_a19 {
875 groups = "spdif_out_a19";
876 function = "spdif_out";
880 spdif_out_a20_pins: spdif_out_a20 {
882 groups = "spdif_out_a20";
883 function = "spdif_out";
889 groups = "spi0_miso",
896 spi0_ss0_pins: spi0_ss0 {
903 spi0_ss1_pins: spi0_ss1 {
910 spi0_ss2_pins: spi0_ss2 {
918 spi1_a_pins: spi1_a {
920 groups = "spi1_miso_a",
927 spi1_ss0_a_pins: spi1_ss0_a {
929 groups = "spi1_ss0_a";
934 spi1_ss1_pins: spi1_ss1 {
941 spi1_x_pins: spi1_x {
943 groups = "spi1_miso_x",
950 spi1_ss0_x_pins: spi1_ss0_x {
952 groups = "spi1_ss0_x";
965 i2c1_z_pins: i2c1_z {
967 groups = "i2c1_sck_z",
973 i2c1_x_pins: i2c1_x {
975 groups = "i2c1_sck_x",
981 i2c2_x_pins: i2c2_x {
983 groups = "i2c2_sck_x",
989 i2c2_a_pins: i2c2_a {
991 groups = "i2c2_sck_a",
997 i2c3_a6_pins: i2c3_a6 {
999 groups = "i2c3_sda_a6",
1005 i2c3_a12_pins: i2c3_a12 {
1007 groups = "i2c3_sda_a12",
1013 i2c3_a19_pins: i2c3_a19 {
1015 groups = "i2c3_sda_a19",
1021 uart_a_pins: uart_a {
1023 groups = "uart_tx_a",
1025 function = "uart_a";
1029 uart_a_cts_rts_pins: uart_a_cts_rts {
1031 groups = "uart_cts_a",
1033 function = "uart_a";
1037 uart_b_x_pins: uart_b_x {
1039 groups = "uart_tx_b_x",
1041 function = "uart_b";
1045 uart_b_x_cts_rts_pins: uart_b_x_cts_rts {
1047 groups = "uart_cts_b_x",
1049 function = "uart_b";
1053 uart_b_z_pins: uart_b_z {
1055 groups = "uart_tx_b_z",
1057 function = "uart_b";
1061 uart_b_z_cts_rts_pins: uart_b_z_cts_rts {
1063 groups = "uart_cts_b_z",
1065 function = "uart_b";
1069 uart_ao_b_z_pins: uart_ao_b_z {
1071 groups = "uart_ao_tx_b_z",
1073 function = "uart_ao_b_z";
1077 uart_ao_b_z_cts_rts_pins: uart_ao_b_z_cts_rts {
1079 groups = "uart_ao_cts_b_z",
1081 function = "uart_ao_b_z";
1085 mclk_b_pins: mclk_b {
1088 function = "mclk_b";
1092 mclk_c_pins: mclk_c {
1095 function = "mclk_c";
1099 tdma_sclk_pins: tdma_sclk {
1101 groups = "tdma_sclk";
1106 tdma_sclk_slv_pins: tdma_sclk_slv {
1108 groups = "tdma_sclk_slv";
1113 tdma_fs_pins: tdma_fs {
1120 tdma_fs_slv_pins: tdma_fs_slv {
1122 groups = "tdma_fs_slv";
1127 tdma_din0_pins: tdma_din0 {
1129 groups = "tdma_din0";
1134 tdma_dout0_x14_pins: tdma_dout0_x14 {
1136 groups = "tdma_dout0_x14";
1141 tdma_dout0_x15_pins: tdma_dout0_x15 {
1143 groups = "tdma_dout0_x15";
1148 tdma_dout1_pins: tdma_dout1 {
1150 groups = "tdma_dout1";
1155 tdma_din1_pins: tdma_din1 {
1157 groups = "tdma_din1";
1162 tdmb_sclk_pins: tdmb_sclk {
1164 groups = "tdmb_sclk";
1169 tdmb_sclk_slv_pins: tdmb_sclk_slv {
1171 groups = "tdmb_sclk_slv";
1176 tdmb_fs_pins: tdmb_fs {
1183 tdmb_fs_slv_pins: tdmb_fs_slv {
1185 groups = "tdmb_fs_slv";
1190 tdmb_din0_pins: tdmb_din0 {
1192 groups = "tdmb_din0";
1197 tdmb_dout0_pins: tdmb_dout0 {
1199 groups = "tdmb_dout0";
1204 tdmb_din1_pins: tdmb_din1 {
1206 groups = "tdmb_din1";
1211 tdmb_dout1_pins: tdmb_dout1 {
1213 groups = "tdmb_dout1";
1218 tdmb_din2_pins: tdmb_din2 {
1220 groups = "tdmb_din2";
1225 tdmb_dout2_pins: tdmb_dout2 {
1227 groups = "tdmb_dout2";
1232 tdmb_din3_pins: tdmb_din3 {
1234 groups = "tdmb_din3";
1239 tdmb_dout3_pins: tdmb_dout3 {
1241 groups = "tdmb_dout3";
1246 tdmc_sclk_pins: tdmc_sclk {
1248 groups = "tdmc_sclk";
1253 tdmc_sclk_slv_pins: tdmc_sclk_slv {
1255 groups = "tdmc_sclk_slv";
1260 tdmc_fs_pins: tdmc_fs {
1267 tdmc_fs_slv_pins: tdmc_fs_slv {
1269 groups = "tdmc_fs_slv";
1274 tdmc_din0_pins: tdmc_din0 {
1276 groups = "tdmc_din0";
1281 tdmc_dout0_pins: tdmc_dout0 {
1283 groups = "tdmc_dout0";
1288 tdmc_din1_pins: tdmc_din1 {
1290 groups = "tdmc_din1";
1295 tdmc_dout1_pins: tdmc_dout1 {
1297 groups = "tdmc_dout1";
1302 tdmc_din2_pins: tdmc_din2 {
1304 groups = "tdmc_din2";
1309 tdmc_dout2_pins: tdmc_dout2 {
1311 groups = "tdmc_dout2";
1316 tdmc_din3_pins: tdmc_din3 {
1318 groups = "tdmc_din3";
1323 tdmc_dout3_pins: tdmc_dout3 {
1325 groups = "tdmc_dout3";
1332 sram: sram@fffc0000 {
1333 compatible = "amlogic,meson-axg-sram", "mmio-sram";
1334 reg = <0x0 0xfffc0000 0x0 0x20000>;
1335 #address-cells = <1>;
1337 ranges = <0 0x0 0xfffc0000 0x20000>;
1339 cpu_scp_lpri: scp-shmem@0 {
1340 compatible = "amlogic,meson-axg-scp-shmem";
1341 reg = <0x13000 0x400>;
1344 cpu_scp_hpri: scp-shmem@200 {
1345 compatible = "amlogic,meson-axg-scp-shmem";
1346 reg = <0x13400 0x400>;
1350 aobus: bus@ff800000 {
1351 compatible = "simple-bus";
1352 reg = <0x0 0xff800000 0x0 0x100000>;
1353 #address-cells = <2>;
1355 ranges = <0x0 0x0 0x0 0xff800000 0x0 0x100000>;
1357 sysctrl_AO: sys-ctrl@0 {
1358 compatible = "amlogic,meson-axg-ao-sysctrl", "syscon", "simple-mfd";
1359 reg = <0x0 0x0 0x0 0x100>;
1361 clkc_AO: clock-controller {
1362 compatible = "amlogic,meson-axg-aoclkc";
1368 pinctrl_aobus: pinctrl@14 {
1369 compatible = "amlogic,meson-axg-aobus-pinctrl";
1370 #address-cells = <2>;
1375 reg = <0x0 0x00014 0x0 0x8>,
1376 <0x0 0x0002c 0x0 0x4>,
1377 <0x0 0x00024 0x0 0x8>;
1378 reg-names = "mux", "pull", "gpio";
1381 gpio-ranges = <&pinctrl_aobus 0 0 15>;
1384 i2c_ao_sck_4_pins: i2c_ao_sck_4 {
1386 groups = "i2c_ao_sck_4";
1387 function = "i2c_ao";
1391 i2c_ao_sck_8_pins: i2c_ao_sck_8 {
1393 groups = "i2c_ao_sck_8";
1394 function = "i2c_ao";
1398 i2c_ao_sck_10_pins: i2c_ao_sck_10 {
1400 groups = "i2c_ao_sck_10";
1401 function = "i2c_ao";
1405 i2c_ao_sda_5_pins: i2c_ao_sda_5 {
1407 groups = "i2c_ao_sda_5";
1408 function = "i2c_ao";
1412 i2c_ao_sda_9_pins: i2c_ao_sda_9 {
1414 groups = "i2c_ao_sda_9";
1415 function = "i2c_ao";
1419 i2c_ao_sda_11_pins: i2c_ao_sda_11 {
1421 groups = "i2c_ao_sda_11";
1422 function = "i2c_ao";
1426 remote_input_ao_pins: remote_input_ao {
1428 groups = "remote_input_ao";
1429 function = "remote_input_ao";
1433 uart_ao_a_pins: uart_ao_a {
1435 groups = "uart_ao_tx_a",
1437 function = "uart_ao_a";
1441 uart_ao_a_cts_rts_pins: uart_ao_a_cts_rts {
1443 groups = "uart_ao_cts_a",
1445 function = "uart_ao_a";
1449 uart_ao_b_pins: uart_ao_b {
1451 groups = "uart_ao_tx_b",
1453 function = "uart_ao_b";
1457 uart_ao_b_cts_rts_pins: uart_ao_b_cts_rts {
1459 groups = "uart_ao_cts_b",
1461 function = "uart_ao_b";
1466 sec_AO: ao-secure@140 {
1467 compatible = "amlogic,meson-gx-ao-secure", "syscon";
1468 reg = <0x0 0x140 0x0 0x140>;
1469 amlogic,has-chip-id;
1472 pwm_AO_ab: pwm@7000 {
1473 compatible = "amlogic,meson-axg-ao-pwm";
1474 reg = <0x0 0x07000 0x0 0x20>;
1476 status = "disabled";
1479 pwm_AO_cd: pwm@2000 {
1480 compatible = "amlogic,meson-axg-ao-pwm";
1481 reg = <0x0 0x02000 0x0 0x20>;
1483 status = "disabled";
1487 compatible = "amlogic,meson-axg-i2c";
1488 reg = <0x0 0x05000 0x0 0x20>;
1489 interrupts = <GIC_SPI 195 IRQ_TYPE_EDGE_RISING>;
1490 clocks = <&clkc CLKID_AO_I2C>;
1491 #address-cells = <1>;
1493 status = "disabled";
1496 uart_AO: serial@3000 {
1497 compatible = "amlogic,meson-gx-uart", "amlogic,meson-ao-uart";
1498 reg = <0x0 0x3000 0x0 0x18>;
1499 interrupts = <GIC_SPI 193 IRQ_TYPE_EDGE_RISING>;
1500 clocks = <&xtal>, <&clkc_AO CLKID_AO_UART1>, <&xtal>;
1501 clock-names = "xtal", "pclk", "baud";
1502 status = "disabled";
1505 uart_AO_B: serial@4000 {
1506 compatible = "amlogic,meson-gx-uart", "amlogic,meson-ao-uart";
1507 reg = <0x0 0x4000 0x0 0x18>;
1508 interrupts = <GIC_SPI 197 IRQ_TYPE_EDGE_RISING>;
1509 clocks = <&xtal>, <&clkc_AO CLKID_AO_UART2>, <&xtal>;
1510 clock-names = "xtal", "pclk", "baud";
1511 status = "disabled";
1515 compatible = "amlogic,meson-gxbb-ir";
1516 reg = <0x0 0x8000 0x0 0x20>;
1517 interrupts = <GIC_SPI 196 IRQ_TYPE_EDGE_RISING>;
1518 status = "disabled";
1522 compatible = "amlogic,meson-axg-saradc",
1523 "amlogic,meson-saradc";
1524 reg = <0x0 0x9000 0x0 0x38>;
1525 #io-channel-cells = <1>;
1526 interrupts = <GIC_SPI 73 IRQ_TYPE_EDGE_RISING>;
1528 <&clkc_AO CLKID_AO_SAR_ADC>,
1529 <&clkc_AO CLKID_AO_SAR_ADC_CLK>,
1530 <&clkc_AO CLKID_AO_SAR_ADC_SEL>;
1531 clock-names = "clkin", "core", "adc_clk", "adc_sel";
1532 status = "disabled";