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