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