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