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 dynamic-power-coefficient = <140>; 78 #cooling-cells = <2>; 79 }; 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>; 88 dynamic-power-coefficient = <140>; 89 #cooling-cells = <2>; 90 }; 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>; 99 dynamic-power-coefficient = <140>; 100 #cooling-cells = <2>; 101 }; 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>; 110 dynamic-power-coefficient = <140>; 111 #cooling-cells = <2>; 112 }; 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 443 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 464 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"; 1945 pinctrl-0 = <&nand_all_pins>; 1946 pinctrl-names = "default"; 1947 #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}; 2004