1// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2/* 3 * Copyright (c) 2018 Amlogic, Inc. All rights reserved. 4 */ 5 6#include <dt-bindings/phy/phy.h> 7#include <dt-bindings/gpio/gpio.h> 8#include <dt-bindings/clock/axg-audio-clkc.h> 9#include <dt-bindings/clock/g12a-clkc.h> 10#include <dt-bindings/clock/g12a-aoclkc.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-g12a-reset.h> 15 16/ { 17 compatible = "amlogic,g12a"; 18 19 interrupt-parent = <&gic>; 20 #address-cells = <2>; 21 #size-cells = <2>; 22 23 tdmif_a: audio-controller-0 { 24 compatible = "amlogic,axg-tdm-iface"; 25 #sound-dai-cells = <0>; 26 sound-name-prefix = "TDM_A"; 27 clocks = <&clkc_audio AUD_CLKID_MST_A_MCLK>, 28 <&clkc_audio AUD_CLKID_MST_A_SCLK>, 29 <&clkc_audio AUD_CLKID_MST_A_LRCLK>; 30 clock-names = "mclk", "sclk", "lrclk"; 31 status = "disabled"; 32 }; 33 34 tdmif_b: audio-controller-1 { 35 compatible = "amlogic,axg-tdm-iface"; 36 #sound-dai-cells = <0>; 37 sound-name-prefix = "TDM_B"; 38 clocks = <&clkc_audio AUD_CLKID_MST_B_MCLK>, 39 <&clkc_audio AUD_CLKID_MST_B_SCLK>, 40 <&clkc_audio AUD_CLKID_MST_B_LRCLK>; 41 clock-names = "mclk", "sclk", "lrclk"; 42 status = "disabled"; 43 }; 44 45 tdmif_c: audio-controller-2 { 46 compatible = "amlogic,axg-tdm-iface"; 47 #sound-dai-cells = <0>; 48 sound-name-prefix = "TDM_C"; 49 clocks = <&clkc_audio AUD_CLKID_MST_C_MCLK>, 50 <&clkc_audio AUD_CLKID_MST_C_SCLK>, 51 <&clkc_audio AUD_CLKID_MST_C_LRCLK>; 52 clock-names = "mclk", "sclk", "lrclk"; 53 status = "disabled"; 54 }; 55 56 cpus { 57 #address-cells = <0x2>; 58 #size-cells = <0x0>; 59 60 cpu0: cpu@0 { 61 device_type = "cpu"; 62 compatible = "arm,cortex-a53"; 63 reg = <0x0 0x0>; 64 enable-method = "psci"; 65 next-level-cache = <&l2>; 66 }; 67 68 cpu1: cpu@1 { 69 device_type = "cpu"; 70 compatible = "arm,cortex-a53"; 71 reg = <0x0 0x1>; 72 enable-method = "psci"; 73 next-level-cache = <&l2>; 74 }; 75 76 cpu2: cpu@2 { 77 device_type = "cpu"; 78 compatible = "arm,cortex-a53"; 79 reg = <0x0 0x2>; 80 enable-method = "psci"; 81 next-level-cache = <&l2>; 82 }; 83 84 cpu3: cpu@3 { 85 device_type = "cpu"; 86 compatible = "arm,cortex-a53"; 87 reg = <0x0 0x3>; 88 enable-method = "psci"; 89 next-level-cache = <&l2>; 90 }; 91 92 l2: l2-cache0 { 93 compatible = "cache"; 94 }; 95 }; 96 97 efuse: efuse { 98 compatible = "amlogic,meson-gxbb-efuse"; 99 clocks = <&clkc CLKID_EFUSE>; 100 #address-cells = <1>; 101 #size-cells = <1>; 102 read-only; 103 }; 104 105 psci { 106 compatible = "arm,psci-1.0"; 107 method = "smc"; 108 }; 109 110 reserved-memory { 111 #address-cells = <2>; 112 #size-cells = <2>; 113 ranges; 114 115 /* 3 MiB reserved for ARM Trusted Firmware (BL31) */ 116 secmon_reserved: secmon@5000000 { 117 reg = <0x0 0x05000000 0x0 0x300000>; 118 no-map; 119 }; 120 121 linux,cma { 122 compatible = "shared-dma-pool"; 123 reusable; 124 size = <0x0 0x10000000>; 125 alignment = <0x0 0x400000>; 126 linux,cma-default; 127 }; 128 }; 129 130 sm: secure-monitor { 131 compatible = "amlogic,meson-gxbb-sm"; 132 }; 133 134 soc { 135 compatible = "simple-bus"; 136 #address-cells = <2>; 137 #size-cells = <2>; 138 ranges; 139 140 ethmac: ethernet@ff3f0000 { 141 compatible = "amlogic,meson-axg-dwmac", 142 "snps,dwmac-3.70a", 143 "snps,dwmac"; 144 reg = <0x0 0xff3f0000 0x0 0x10000 145 0x0 0xff634540 0x0 0x8>; 146 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; 147 interrupt-names = "macirq"; 148 clocks = <&clkc CLKID_ETH>, 149 <&clkc CLKID_FCLK_DIV2>, 150 <&clkc CLKID_MPLL2>; 151 clock-names = "stmmaceth", "clkin0", "clkin1"; 152 status = "disabled"; 153 154 mdio0: mdio { 155 #address-cells = <1>; 156 #size-cells = <0>; 157 compatible = "snps,dwmac-mdio"; 158 }; 159 }; 160 161 apb: bus@ff600000 { 162 compatible = "simple-bus"; 163 reg = <0x0 0xff600000 0x0 0x200000>; 164 #address-cells = <2>; 165 #size-cells = <2>; 166 ranges = <0x0 0x0 0x0 0xff600000 0x0 0x200000>; 167 168 hdmi_tx: hdmi-tx@0 { 169 compatible = "amlogic,meson-g12a-dw-hdmi"; 170 reg = <0x0 0x0 0x0 0x10000>; 171 interrupts = <GIC_SPI 57 IRQ_TYPE_EDGE_RISING>; 172 resets = <&reset RESET_HDMITX_CAPB3>, 173 <&reset RESET_HDMITX_PHY>, 174 <&reset RESET_HDMITX>; 175 reset-names = "hdmitx_apb", "hdmitx", "hdmitx_phy"; 176 clocks = <&clkc CLKID_HDMI>, 177 <&clkc CLKID_HTX_PCLK>, 178 <&clkc CLKID_VPU_INTR>; 179 clock-names = "isfr", "iahb", "venci"; 180 #address-cells = <1>; 181 #size-cells = <0>; 182 #sound-dai-cells = <0>; 183 status = "disabled"; 184 185 /* VPU VENC Input */ 186 hdmi_tx_venc_port: port@0 { 187 reg = <0>; 188 189 hdmi_tx_in: endpoint { 190 remote-endpoint = <&hdmi_tx_out>; 191 }; 192 }; 193 194 /* TMDS Output */ 195 hdmi_tx_tmds_port: port@1 { 196 reg = <1>; 197 }; 198 }; 199 200 apb_efuse: bus@30000 { 201 compatible = "simple-bus"; 202 reg = <0x0 0x30000 0x0 0x2000>; 203 #address-cells = <2>; 204 #size-cells = <2>; 205 ranges = <0x0 0x0 0x0 0x30000 0x0 0x2000>; 206 207 hwrng: rng@218 { 208 compatible = "amlogic,meson-rng"; 209 reg = <0x0 0x218 0x0 0x4>; 210 }; 211 }; 212 213 periphs: bus@34400 { 214 compatible = "simple-bus"; 215 reg = <0x0 0x34400 0x0 0x400>; 216 #address-cells = <2>; 217 #size-cells = <2>; 218 ranges = <0x0 0x0 0x0 0x34400 0x0 0x400>; 219 220 periphs_pinctrl: pinctrl@40 { 221 compatible = "amlogic,meson-g12a-periphs-pinctrl"; 222 #address-cells = <2>; 223 #size-cells = <2>; 224 ranges; 225 226 gpio: bank@40 { 227 reg = <0x0 0x40 0x0 0x4c>, 228 <0x0 0xe8 0x0 0x18>, 229 <0x0 0x120 0x0 0x18>, 230 <0x0 0x2c0 0x0 0x40>, 231 <0x0 0x340 0x0 0x1c>; 232 reg-names = "gpio", 233 "pull", 234 "pull-enable", 235 "mux", 236 "ds"; 237 gpio-controller; 238 #gpio-cells = <2>; 239 gpio-ranges = <&periphs_pinctrl 0 0 86>; 240 }; 241 242 cec_ao_a_h_pins: cec_ao_a_h { 243 mux { 244 groups = "cec_ao_a_h"; 245 function = "cec_ao_a_h"; 246 bias-disable; 247 }; 248 }; 249 250 cec_ao_b_h_pins: cec_ao_b_h { 251 mux { 252 groups = "cec_ao_b_h"; 253 function = "cec_ao_b_h"; 254 bias-disable; 255 }; 256 }; 257 258 emmc_pins: emmc { 259 mux-0 { 260 groups = "emmc_nand_d0", 261 "emmc_nand_d1", 262 "emmc_nand_d2", 263 "emmc_nand_d3", 264 "emmc_nand_d4", 265 "emmc_nand_d5", 266 "emmc_nand_d6", 267 "emmc_nand_d7", 268 "emmc_cmd"; 269 function = "emmc"; 270 bias-pull-up; 271 drive-strength-microamp = <4000>; 272 }; 273 274 mux-1 { 275 groups = "emmc_clk"; 276 function = "emmc"; 277 bias-disable; 278 drive-strength-microamp = <4000>; 279 }; 280 }; 281 282 emmc_ds_pins: emmc-ds { 283 mux { 284 groups = "emmc_nand_ds"; 285 function = "emmc"; 286 bias-pull-down; 287 drive-strength-microamp = <4000>; 288 }; 289 }; 290 291 emmc_clk_gate_pins: emmc_clk_gate { 292 mux { 293 groups = "BOOT_8"; 294 function = "gpio_periphs"; 295 bias-pull-down; 296 drive-strength-microamp = <4000>; 297 }; 298 }; 299 300 hdmitx_ddc_pins: hdmitx_ddc { 301 mux { 302 groups = "hdmitx_sda", 303 "hdmitx_sck"; 304 function = "hdmitx"; 305 bias-disable; 306 drive-strength-microamp = <4000>; 307 }; 308 }; 309 310 hdmitx_hpd_pins: hdmitx_hpd { 311 mux { 312 groups = "hdmitx_hpd_in"; 313 function = "hdmitx"; 314 bias-disable; 315 }; 316 }; 317 318 319 i2c0_sda_c_pins: i2c0-sda-c { 320 mux { 321 groups = "i2c0_sda_c"; 322 function = "i2c0"; 323 bias-disable; 324 drive-strength-microamp = <3000>; 325 326 }; 327 }; 328 329 i2c0_sck_c_pins: i2c0-sck-c { 330 mux { 331 groups = "i2c0_sck_c"; 332 function = "i2c0"; 333 bias-disable; 334 drive-strength-microamp = <3000>; 335 }; 336 }; 337 338 i2c0_sda_z0_pins: i2c0-sda-z0 { 339 mux { 340 groups = "i2c0_sda_z0"; 341 function = "i2c0"; 342 bias-disable; 343 drive-strength-microamp = <3000>; 344 }; 345 }; 346 347 i2c0_sck_z1_pins: i2c0-sck-z1 { 348 mux { 349 groups = "i2c0_sck_z1"; 350 function = "i2c0"; 351 bias-disable; 352 drive-strength-microamp = <3000>; 353 }; 354 }; 355 356 i2c0_sda_z7_pins: i2c0-sda-z7 { 357 mux { 358 groups = "i2c0_sda_z7"; 359 function = "i2c0"; 360 bias-disable; 361 drive-strength-microamp = <3000>; 362 }; 363 }; 364 365 i2c0_sda_z8_pins: i2c0-sda-z8 { 366 mux { 367 groups = "i2c0_sda_z8"; 368 function = "i2c0"; 369 bias-disable; 370 drive-strength-microamp = <3000>; 371 }; 372 }; 373 374 i2c1_sda_x_pins: i2c1-sda-x { 375 mux { 376 groups = "i2c1_sda_x"; 377 function = "i2c1"; 378 bias-disable; 379 drive-strength-microamp = <3000>; 380 }; 381 }; 382 383 i2c1_sck_x_pins: i2c1-sck-x { 384 mux { 385 groups = "i2c1_sck_x"; 386 function = "i2c1"; 387 bias-disable; 388 drive-strength-microamp = <3000>; 389 }; 390 }; 391 392 i2c1_sda_h2_pins: i2c1-sda-h2 { 393 mux { 394 groups = "i2c1_sda_h2"; 395 function = "i2c1"; 396 bias-disable; 397 drive-strength-microamp = <3000>; 398 }; 399 }; 400 401 i2c1_sck_h3_pins: i2c1-sck-h3 { 402 mux { 403 groups = "i2c1_sck_h3"; 404 function = "i2c1"; 405 bias-disable; 406 drive-strength-microamp = <3000>; 407 }; 408 }; 409 410 i2c1_sda_h6_pins: i2c1-sda-h6 { 411 mux { 412 groups = "i2c1_sda_h6"; 413 function = "i2c1"; 414 bias-disable; 415 drive-strength-microamp = <3000>; 416 }; 417 }; 418 419 i2c1_sck_h7_pins: i2c1-sck-h7 { 420 mux { 421 groups = "i2c1_sck_h7"; 422 function = "i2c1"; 423 bias-disable; 424 drive-strength-microamp = <3000>; 425 }; 426 }; 427 428 i2c2_sda_x_pins: i2c2-sda-x { 429 mux { 430 groups = "i2c2_sda_x"; 431 function = "i2c2"; 432 bias-disable; 433 drive-strength-microamp = <3000>; 434 }; 435 }; 436 437 i2c2_sck_x_pins: i2c2-sck-x { 438 mux { 439 groups = "i2c2_sck_x"; 440 function = "i2c2"; 441 bias-disable; 442 drive-strength-microamp = <3000>; 443 }; 444 }; 445 446 i2c2_sda_z_pins: i2c2-sda-z { 447 mux { 448 groups = "i2c2_sda_z"; 449 function = "i2c2"; 450 bias-disable; 451 drive-strength-microamp = <3000>; 452 }; 453 }; 454 455 i2c2_sck_z_pins: i2c2-sck-z { 456 mux { 457 groups = "i2c2_sck_z"; 458 function = "i2c2"; 459 bias-disable; 460 drive-strength-microamp = <3000>; 461 }; 462 }; 463 464 i2c3_sda_h_pins: i2c3-sda-h { 465 mux { 466 groups = "i2c3_sda_h"; 467 function = "i2c3"; 468 bias-disable; 469 drive-strength-microamp = <3000>; 470 }; 471 }; 472 473 i2c3_sck_h_pins: i2c3-sck-h { 474 mux { 475 groups = "i2c3_sck_h"; 476 function = "i2c3"; 477 bias-disable; 478 drive-strength-microamp = <3000>; 479 }; 480 }; 481 482 i2c3_sda_a_pins: i2c3-sda-a { 483 mux { 484 groups = "i2c3_sda_a"; 485 function = "i2c3"; 486 bias-disable; 487 drive-strength-microamp = <3000>; 488 }; 489 }; 490 491 i2c3_sck_a_pins: i2c3-sck-a { 492 mux { 493 groups = "i2c3_sck_a"; 494 function = "i2c3"; 495 bias-disable; 496 drive-strength-microamp = <3000>; 497 }; 498 }; 499 500 mclk0_a_pins: mclk0-a { 501 mux { 502 groups = "mclk0_a"; 503 function = "mclk0"; 504 bias-disable; 505 drive-strength-microamp = <3000>; 506 }; 507 }; 508 509 mclk1_a_pins: mclk1-a { 510 mux { 511 groups = "mclk1_a"; 512 function = "mclk1"; 513 bias-disable; 514 drive-strength-microamp = <3000>; 515 }; 516 }; 517 518 mclk1_x_pins: mclk1-x { 519 mux { 520 groups = "mclk1_x"; 521 function = "mclk1"; 522 bias-disable; 523 drive-strength-microamp = <3000>; 524 }; 525 }; 526 527 mclk1_z_pins: mclk1-z { 528 mux { 529 groups = "mclk1_z"; 530 function = "mclk1"; 531 bias-disable; 532 drive-strength-microamp = <3000>; 533 }; 534 }; 535 536 pdm_din0_a_pins: pdm-din0-a { 537 mux { 538 groups = "pdm_din0_a"; 539 function = "pdm"; 540 bias-disable; 541 }; 542 }; 543 544 pdm_din0_c_pins: pdm-din0-c { 545 mux { 546 groups = "pdm_din0_c"; 547 function = "pdm"; 548 bias-disable; 549 }; 550 }; 551 552 pdm_din0_x_pins: pdm-din0-x { 553 mux { 554 groups = "pdm_din0_x"; 555 function = "pdm"; 556 bias-disable; 557 }; 558 }; 559 560 pdm_din0_z_pins: pdm-din0-z { 561 mux { 562 groups = "pdm_din0_z"; 563 function = "pdm"; 564 bias-disable; 565 }; 566 }; 567 568 pdm_din1_a_pins: pdm-din1-a { 569 mux { 570 groups = "pdm_din1_a"; 571 function = "pdm"; 572 bias-disable; 573 }; 574 }; 575 576 pdm_din1_c_pins: pdm-din1-c { 577 mux { 578 groups = "pdm_din1_c"; 579 function = "pdm"; 580 bias-disable; 581 }; 582 }; 583 584 pdm_din1_x_pins: pdm-din1-x { 585 mux { 586 groups = "pdm_din1_x"; 587 function = "pdm"; 588 bias-disable; 589 }; 590 }; 591 592 pdm_din1_z_pins: pdm-din1-z { 593 mux { 594 groups = "pdm_din1_z"; 595 function = "pdm"; 596 bias-disable; 597 }; 598 }; 599 600 pdm_din2_a_pins: pdm-din2-a { 601 mux { 602 groups = "pdm_din2_a"; 603 function = "pdm"; 604 bias-disable; 605 }; 606 }; 607 608 pdm_din2_c_pins: pdm-din2-c { 609 mux { 610 groups = "pdm_din2_c"; 611 function = "pdm"; 612 bias-disable; 613 }; 614 }; 615 616 pdm_din2_x_pins: pdm-din2-x { 617 mux { 618 groups = "pdm_din2_x"; 619 function = "pdm"; 620 bias-disable; 621 }; 622 }; 623 624 pdm_din2_z_pins: pdm-din2-z { 625 mux { 626 groups = "pdm_din2_z"; 627 function = "pdm"; 628 bias-disable; 629 }; 630 }; 631 632 pdm_din3_a_pins: pdm-din3-a { 633 mux { 634 groups = "pdm_din3_a"; 635 function = "pdm"; 636 bias-disable; 637 }; 638 }; 639 640 pdm_din3_c_pins: pdm-din3-c { 641 mux { 642 groups = "pdm_din3_c"; 643 function = "pdm"; 644 bias-disable; 645 }; 646 }; 647 648 pdm_din3_x_pins: pdm-din3-x { 649 mux { 650 groups = "pdm_din3_x"; 651 function = "pdm"; 652 bias-disable; 653 }; 654 }; 655 656 pdm_din3_z_pins: pdm-din3-z { 657 mux { 658 groups = "pdm_din3_z"; 659 function = "pdm"; 660 bias-disable; 661 }; 662 }; 663 664 pdm_dclk_a_pins: pdm-dclk-a { 665 mux { 666 groups = "pdm_dclk_a"; 667 function = "pdm"; 668 bias-disable; 669 drive-strength-microamp = <500>; 670 }; 671 }; 672 673 pdm_dclk_c_pins: pdm-dclk-c { 674 mux { 675 groups = "pdm_dclk_c"; 676 function = "pdm"; 677 bias-disable; 678 drive-strength-microamp = <500>; 679 }; 680 }; 681 682 pdm_dclk_x_pins: pdm-dclk-x { 683 mux { 684 groups = "pdm_dclk_x"; 685 function = "pdm"; 686 bias-disable; 687 drive-strength-microamp = <500>; 688 }; 689 }; 690 691 pdm_dclk_z_pins: pdm-dclk-z { 692 mux { 693 groups = "pdm_dclk_z"; 694 function = "pdm"; 695 bias-disable; 696 drive-strength-microamp = <500>; 697 }; 698 }; 699 700 pwm_a_pins: pwm-a { 701 mux { 702 groups = "pwm_a"; 703 function = "pwm_a"; 704 bias-disable; 705 }; 706 }; 707 708 pwm_b_x7_pins: pwm-b-x7 { 709 mux { 710 groups = "pwm_b_x7"; 711 function = "pwm_b"; 712 bias-disable; 713 }; 714 }; 715 716 pwm_b_x19_pins: pwm-b-x19 { 717 mux { 718 groups = "pwm_b_x19"; 719 function = "pwm_b"; 720 bias-disable; 721 }; 722 }; 723 724 pwm_c_c_pins: pwm-c-c { 725 mux { 726 groups = "pwm_c_c"; 727 function = "pwm_c"; 728 bias-disable; 729 }; 730 }; 731 732 pwm_c_x5_pins: pwm-c-x5 { 733 mux { 734 groups = "pwm_c_x5"; 735 function = "pwm_c"; 736 bias-disable; 737 }; 738 }; 739 740 pwm_c_x8_pins: pwm-c-x8 { 741 mux { 742 groups = "pwm_c_x8"; 743 function = "pwm_c"; 744 bias-disable; 745 }; 746 }; 747 748 pwm_d_x3_pins: pwm-d-x3 { 749 mux { 750 groups = "pwm_d_x3"; 751 function = "pwm_d"; 752 bias-disable; 753 }; 754 }; 755 756 pwm_d_x6_pins: pwm-d-x6 { 757 mux { 758 groups = "pwm_d_x6"; 759 function = "pwm_d"; 760 bias-disable; 761 }; 762 }; 763 764 pwm_e_pins: pwm-e { 765 mux { 766 groups = "pwm_e"; 767 function = "pwm_e"; 768 bias-disable; 769 }; 770 }; 771 772 pwm_f_x_pins: pwm-f-x { 773 mux { 774 groups = "pwm_f_x"; 775 function = "pwm_f"; 776 bias-disable; 777 }; 778 }; 779 780 pwm_f_h_pins: pwm-f-h { 781 mux { 782 groups = "pwm_f_h"; 783 function = "pwm_f"; 784 bias-disable; 785 }; 786 }; 787 788 sdcard_c_pins: sdcard_c { 789 mux-0 { 790 groups = "sdcard_d0_c", 791 "sdcard_d1_c", 792 "sdcard_d2_c", 793 "sdcard_d3_c", 794 "sdcard_cmd_c"; 795 function = "sdcard"; 796 bias-pull-up; 797 drive-strength-microamp = <4000>; 798 }; 799 800 mux-1 { 801 groups = "sdcard_clk_c"; 802 function = "sdcard"; 803 bias-disable; 804 drive-strength-microamp = <4000>; 805 }; 806 }; 807 808 sdcard_clk_gate_c_pins: sdcard_clk_gate_c { 809 mux { 810 groups = "GPIOC_4"; 811 function = "gpio_periphs"; 812 bias-pull-down; 813 drive-strength-microamp = <4000>; 814 }; 815 }; 816 817 sdcard_z_pins: sdcard_z { 818 mux-0 { 819 groups = "sdcard_d0_z", 820 "sdcard_d1_z", 821 "sdcard_d2_z", 822 "sdcard_d3_z", 823 "sdcard_cmd_z"; 824 function = "sdcard"; 825 bias-pull-up; 826 drive-strength-microamp = <4000>; 827 }; 828 829 mux-1 { 830 groups = "sdcard_clk_z"; 831 function = "sdcard"; 832 bias-disable; 833 drive-strength-microamp = <4000>; 834 }; 835 }; 836 837 sdcard_clk_gate_z_pins: sdcard_clk_gate_z { 838 mux { 839 groups = "GPIOZ_6"; 840 function = "gpio_periphs"; 841 bias-pull-down; 842 drive-strength-microamp = <4000>; 843 }; 844 }; 845 846 spdif_in_a10_pins: spdif-in-a10 { 847 mux { 848 groups = "spdif_in_a10"; 849 function = "spdif_in"; 850 bias-disable; 851 }; 852 }; 853 854 spdif_in_a12_pins: spdif-in-a12 { 855 mux { 856 groups = "spdif_in_a12"; 857 function = "spdif_in"; 858 bias-disable; 859 }; 860 }; 861 862 spdif_in_h_pins: spdif-in-h { 863 mux { 864 groups = "spdif_in_h"; 865 function = "spdif_in"; 866 bias-disable; 867 }; 868 }; 869 870 spdif_out_h_pins: spdif-out-h { 871 mux { 872 groups = "spdif_out_h"; 873 function = "spdif_out"; 874 drive-strength-microamp = <500>; 875 bias-disable; 876 }; 877 }; 878 879 spdif_out_a11_pins: spdif-out-a11 { 880 mux { 881 groups = "spdif_out_a11"; 882 function = "spdif_out"; 883 drive-strength-microamp = <500>; 884 bias-disable; 885 }; 886 }; 887 888 spdif_out_a13_pins: spdif-out-a13 { 889 mux { 890 groups = "spdif_out_a13"; 891 function = "spdif_out"; 892 drive-strength-microamp = <500>; 893 bias-disable; 894 }; 895 }; 896 897 tdm_a_din0_pins: tdm-a-din0 { 898 mux { 899 groups = "tdm_a_din0"; 900 function = "tdm_a"; 901 bias-disable; 902 }; 903 }; 904 905 906 tdm_a_din1_pins: tdm-a-din1 { 907 mux { 908 groups = "tdm_a_din1"; 909 function = "tdm_a"; 910 bias-disable; 911 }; 912 }; 913 914 tdm_a_dout0_pins: tdm-a-dout0 { 915 mux { 916 groups = "tdm_a_dout0"; 917 function = "tdm_a"; 918 bias-disable; 919 drive-strength-microamp = <3000>; 920 }; 921 }; 922 923 tdm_a_dout1_pins: tdm-a-dout1 { 924 mux { 925 groups = "tdm_a_dout1"; 926 function = "tdm_a"; 927 bias-disable; 928 drive-strength-microamp = <3000>; 929 }; 930 }; 931 932 tdm_a_fs_pins: tdm-a-fs { 933 mux { 934 groups = "tdm_a_fs"; 935 function = "tdm_a"; 936 bias-disable; 937 drive-strength-microamp = <3000>; 938 }; 939 }; 940 941 tdm_a_sclk_pins: tdm-a-sclk { 942 mux { 943 groups = "tdm_a_sclk"; 944 function = "tdm_a"; 945 bias-disable; 946 drive-strength-microamp = <3000>; 947 }; 948 }; 949 950 tdm_a_slv_fs_pins: tdm-a-slv-fs { 951 mux { 952 groups = "tdm_a_slv_fs"; 953 function = "tdm_a"; 954 bias-disable; 955 }; 956 }; 957 958 959 tdm_a_slv_sclk_pins: tdm-a-slv-sclk { 960 mux { 961 groups = "tdm_a_slv_sclk"; 962 function = "tdm_a"; 963 bias-disable; 964 }; 965 }; 966 967 tdm_b_din0_pins: tdm-b-din0 { 968 mux { 969 groups = "tdm_b_din0"; 970 function = "tdm_b"; 971 bias-disable; 972 }; 973 }; 974 975 tdm_b_din1_pins: tdm-b-din1 { 976 mux { 977 groups = "tdm_b_din1"; 978 function = "tdm_b"; 979 bias-disable; 980 }; 981 }; 982 983 tdm_b_din2_pins: tdm-b-din2 { 984 mux { 985 groups = "tdm_b_din2"; 986 function = "tdm_b"; 987 bias-disable; 988 }; 989 }; 990 991 tdm_b_din3_a_pins: tdm-b-din3-a { 992 mux { 993 groups = "tdm_b_din3_a"; 994 function = "tdm_b"; 995 bias-disable; 996 }; 997 }; 998 999 tdm_b_din3_h_pins: tdm-b-din3-h { 1000 mux { 1001 groups = "tdm_b_din3_h"; 1002 function = "tdm_b"; 1003 bias-disable; 1004 }; 1005 }; 1006 1007 tdm_b_dout0_pins: tdm-b-dout0 { 1008 mux { 1009 groups = "tdm_b_dout0"; 1010 function = "tdm_b"; 1011 bias-disable; 1012 drive-strength-microamp = <3000>; 1013 }; 1014 }; 1015 1016 tdm_b_dout1_pins: tdm-b-dout1 { 1017 mux { 1018 groups = "tdm_b_dout1"; 1019 function = "tdm_b"; 1020 bias-disable; 1021 drive-strength-microamp = <3000>; 1022 }; 1023 }; 1024 1025 tdm_b_dout2_pins: tdm-b-dout2 { 1026 mux { 1027 groups = "tdm_b_dout2"; 1028 function = "tdm_b"; 1029 bias-disable; 1030 drive-strength-microamp = <3000>; 1031 }; 1032 }; 1033 1034 tdm_b_dout3_a_pins: tdm-b-dout3-a { 1035 mux { 1036 groups = "tdm_b_dout3_a"; 1037 function = "tdm_b"; 1038 bias-disable; 1039 drive-strength-microamp = <3000>; 1040 }; 1041 }; 1042 1043 tdm_b_dout3_h_pins: tdm-b-dout3-h { 1044 mux { 1045 groups = "tdm_b_dout3_h"; 1046 function = "tdm_b"; 1047 bias-disable; 1048 drive-strength-microamp = <3000>; 1049 }; 1050 }; 1051 1052 tdm_b_fs_pins: tdm-b-fs { 1053 mux { 1054 groups = "tdm_b_fs"; 1055 function = "tdm_b"; 1056 bias-disable; 1057 drive-strength-microamp = <3000>; 1058 }; 1059 }; 1060 1061 tdm_b_sclk_pins: tdm-b-sclk { 1062 mux { 1063 groups = "tdm_b_sclk"; 1064 function = "tdm_b"; 1065 bias-disable; 1066 drive-strength-microamp = <3000>; 1067 }; 1068 }; 1069 1070 tdm_b_slv_fs_pins: tdm-b-slv-fs { 1071 mux { 1072 groups = "tdm_b_slv_fs"; 1073 function = "tdm_b"; 1074 bias-disable; 1075 }; 1076 }; 1077 1078 tdm_b_slv_sclk_pins: tdm-b-slv-sclk { 1079 mux { 1080 groups = "tdm_b_slv_sclk"; 1081 function = "tdm_b"; 1082 bias-disable; 1083 }; 1084 }; 1085 1086 tdm_c_din0_a_pins: tdm-c-din0-a { 1087 mux { 1088 groups = "tdm_c_din0_a"; 1089 function = "tdm_c"; 1090 bias-disable; 1091 }; 1092 }; 1093 1094 tdm_c_din0_z_pins: tdm-c-din0-z { 1095 mux { 1096 groups = "tdm_c_din0_z"; 1097 function = "tdm_c"; 1098 bias-disable; 1099 }; 1100 }; 1101 1102 tdm_c_din1_a_pins: tdm-c-din1-a { 1103 mux { 1104 groups = "tdm_c_din1_a"; 1105 function = "tdm_c"; 1106 bias-disable; 1107 }; 1108 }; 1109 1110 tdm_c_din1_z_pins: tdm-c-din1-z { 1111 mux { 1112 groups = "tdm_c_din1_z"; 1113 function = "tdm_c"; 1114 bias-disable; 1115 }; 1116 }; 1117 1118 tdm_c_din2_a_pins: tdm-c-din2-a { 1119 mux { 1120 groups = "tdm_c_din2_a"; 1121 function = "tdm_c"; 1122 bias-disable; 1123 }; 1124 }; 1125 1126 eth_leds_pins: eth-leds { 1127 mux { 1128 groups = "eth_link_led", 1129 "eth_act_led"; 1130 function = "eth"; 1131 bias-disable; 1132 }; 1133 }; 1134 1135 eth_pins: eth { 1136 mux { 1137 groups = "eth_mdio", 1138 "eth_mdc", 1139 "eth_rgmii_rx_clk", 1140 "eth_rx_dv", 1141 "eth_rxd0", 1142 "eth_rxd1", 1143 "eth_txen", 1144 "eth_txd0", 1145 "eth_txd1"; 1146 function = "eth"; 1147 drive-strength-microamp = <4000>; 1148 bias-disable; 1149 }; 1150 }; 1151 1152 eth_rgmii_pins: eth-rgmii { 1153 mux { 1154 groups = "eth_rxd2_rgmii", 1155 "eth_rxd3_rgmii", 1156 "eth_rgmii_tx_clk", 1157 "eth_txd2_rgmii", 1158 "eth_txd3_rgmii"; 1159 function = "eth"; 1160 drive-strength-microamp = <4000>; 1161 bias-disable; 1162 }; 1163 }; 1164 1165 tdm_c_din2_z_pins: tdm-c-din2-z { 1166 mux { 1167 groups = "tdm_c_din2_z"; 1168 function = "tdm_c"; 1169 bias-disable; 1170 }; 1171 }; 1172 1173 tdm_c_din3_a_pins: tdm-c-din3-a { 1174 mux { 1175 groups = "tdm_c_din3_a"; 1176 function = "tdm_c"; 1177 bias-disable; 1178 }; 1179 }; 1180 1181 tdm_c_din3_z_pins: tdm-c-din3-z { 1182 mux { 1183 groups = "tdm_c_din3_z"; 1184 function = "tdm_c"; 1185 bias-disable; 1186 }; 1187 }; 1188 1189 tdm_c_dout0_a_pins: tdm-c-dout0-a { 1190 mux { 1191 groups = "tdm_c_dout0_a"; 1192 function = "tdm_c"; 1193 bias-disable; 1194 drive-strength-microamp = <3000>; 1195 }; 1196 }; 1197 1198 tdm_c_dout0_z_pins: tdm-c-dout0-z { 1199 mux { 1200 groups = "tdm_c_dout0_z"; 1201 function = "tdm_c"; 1202 bias-disable; 1203 drive-strength-microamp = <3000>; 1204 }; 1205 }; 1206 1207 tdm_c_dout1_a_pins: tdm-c-dout1-a { 1208 mux { 1209 groups = "tdm_c_dout1_a"; 1210 function = "tdm_c"; 1211 bias-disable; 1212 drive-strength-microamp = <3000>; 1213 }; 1214 }; 1215 1216 tdm_c_dout1_z_pins: tdm-c-dout1-z { 1217 mux { 1218 groups = "tdm_c_dout1_z"; 1219 function = "tdm_c"; 1220 bias-disable; 1221 drive-strength-microamp = <3000>; 1222 }; 1223 }; 1224 1225 tdm_c_dout2_a_pins: tdm-c-dout2-a { 1226 mux { 1227 groups = "tdm_c_dout2_a"; 1228 function = "tdm_c"; 1229 bias-disable; 1230 drive-strength-microamp = <3000>; 1231 }; 1232 }; 1233 1234 tdm_c_dout2_z_pins: tdm-c-dout2-z { 1235 mux { 1236 groups = "tdm_c_dout2_z"; 1237 function = "tdm_c"; 1238 bias-disable; 1239 drive-strength-microamp = <3000>; 1240 }; 1241 }; 1242 1243 tdm_c_dout3_a_pins: tdm-c-dout3-a { 1244 mux { 1245 groups = "tdm_c_dout3_a"; 1246 function = "tdm_c"; 1247 bias-disable; 1248 drive-strength-microamp = <3000>; 1249 }; 1250 }; 1251 1252 tdm_c_dout3_z_pins: tdm-c-dout3-z { 1253 mux { 1254 groups = "tdm_c_dout3_z"; 1255 function = "tdm_c"; 1256 bias-disable; 1257 drive-strength-microamp = <3000>; 1258 }; 1259 }; 1260 1261 tdm_c_fs_a_pins: tdm-c-fs-a { 1262 mux { 1263 groups = "tdm_c_fs_a"; 1264 function = "tdm_c"; 1265 bias-disable; 1266 drive-strength-microamp = <3000>; 1267 }; 1268 }; 1269 1270 tdm_c_fs_z_pins: tdm-c-fs-z { 1271 mux { 1272 groups = "tdm_c_fs_z"; 1273 function = "tdm_c"; 1274 bias-disable; 1275 drive-strength-microamp = <3000>; 1276 }; 1277 }; 1278 1279 tdm_c_sclk_a_pins: tdm-c-sclk-a { 1280 mux { 1281 groups = "tdm_c_sclk_a"; 1282 function = "tdm_c"; 1283 bias-disable; 1284 drive-strength-microamp = <3000>; 1285 }; 1286 }; 1287 1288 tdm_c_sclk_z_pins: tdm-c-sclk-z { 1289 mux { 1290 groups = "tdm_c_sclk_z"; 1291 function = "tdm_c"; 1292 bias-disable; 1293 drive-strength-microamp = <3000>; 1294 }; 1295 }; 1296 1297 tdm_c_slv_fs_a_pins: tdm-c-slv-fs-a { 1298 mux { 1299 groups = "tdm_c_slv_fs_a"; 1300 function = "tdm_c"; 1301 bias-disable; 1302 }; 1303 }; 1304 1305 tdm_c_slv_fs_z_pins: tdm-c-slv-fs-z { 1306 mux { 1307 groups = "tdm_c_slv_fs_z"; 1308 function = "tdm_c"; 1309 bias-disable; 1310 }; 1311 }; 1312 1313 tdm_c_slv_sclk_a_pins: tdm-c-slv-sclk-a { 1314 mux { 1315 groups = "tdm_c_slv_sclk_a"; 1316 function = "tdm_c"; 1317 bias-disable; 1318 }; 1319 }; 1320 1321 tdm_c_slv_sclk_z_pins: tdm-c-slv-sclk-z { 1322 mux { 1323 groups = "tdm_c_slv_sclk_z"; 1324 function = "tdm_c"; 1325 bias-disable; 1326 }; 1327 }; 1328 1329 uart_a_pins: uart-a { 1330 mux { 1331 groups = "uart_a_tx", 1332 "uart_a_rx"; 1333 function = "uart_a"; 1334 bias-disable; 1335 }; 1336 }; 1337 1338 uart_a_cts_rts_pins: uart-a-cts-rts { 1339 mux { 1340 groups = "uart_a_cts", 1341 "uart_a_rts"; 1342 function = "uart_a"; 1343 bias-disable; 1344 }; 1345 }; 1346 1347 uart_b_pins: uart-b { 1348 mux { 1349 groups = "uart_b_tx", 1350 "uart_b_rx"; 1351 function = "uart_b"; 1352 bias-disable; 1353 }; 1354 }; 1355 1356 uart_c_pins: uart-c { 1357 mux { 1358 groups = "uart_c_tx", 1359 "uart_c_rx"; 1360 function = "uart_c"; 1361 bias-disable; 1362 }; 1363 }; 1364 1365 uart_c_cts_rts_pins: uart-c-cts-rts { 1366 mux { 1367 groups = "uart_c_cts", 1368 "uart_c_rts"; 1369 function = "uart_c"; 1370 bias-disable; 1371 }; 1372 }; 1373 }; 1374 }; 1375 1376 usb2_phy0: phy@36000 { 1377 compatible = "amlogic,g12a-usb2-phy"; 1378 reg = <0x0 0x36000 0x0 0x2000>; 1379 clocks = <&xtal>; 1380 clock-names = "xtal"; 1381 resets = <&reset RESET_USB_PHY20>; 1382 reset-names = "phy"; 1383 #phy-cells = <0>; 1384 }; 1385 1386 dmc: bus@38000 { 1387 compatible = "simple-bus"; 1388 reg = <0x0 0x38000 0x0 0x400>; 1389 #address-cells = <2>; 1390 #size-cells = <2>; 1391 ranges = <0x0 0x0 0x0 0x38000 0x0 0x400>; 1392 1393 canvas: video-lut@48 { 1394 compatible = "amlogic,canvas"; 1395 reg = <0x0 0x48 0x0 0x14>; 1396 }; 1397 }; 1398 1399 usb2_phy1: phy@3a000 { 1400 compatible = "amlogic,g12a-usb2-phy"; 1401 reg = <0x0 0x3a000 0x0 0x2000>; 1402 clocks = <&xtal>; 1403 clock-names = "xtal"; 1404 resets = <&reset RESET_USB_PHY21>; 1405 reset-names = "phy"; 1406 #phy-cells = <0>; 1407 }; 1408 1409 hiu: bus@3c000 { 1410 compatible = "simple-bus"; 1411 reg = <0x0 0x3c000 0x0 0x1400>; 1412 #address-cells = <2>; 1413 #size-cells = <2>; 1414 ranges = <0x0 0x0 0x0 0x3c000 0x0 0x1400>; 1415 1416 hhi: system-controller@0 { 1417 compatible = "amlogic,meson-gx-hhi-sysctrl", 1418 "simple-mfd", "syscon"; 1419 reg = <0 0 0 0x400>; 1420 1421 clkc: clock-controller { 1422 compatible = "amlogic,g12a-clkc"; 1423 #clock-cells = <1>; 1424 clocks = <&xtal>; 1425 clock-names = "xtal"; 1426 }; 1427 }; 1428 }; 1429 1430 pdm: audio-controller@40000 { 1431 compatible = "amlogic,g12a-pdm", 1432 "amlogic,axg-pdm"; 1433 reg = <0x0 0x40000 0x0 0x34>; 1434 #sound-dai-cells = <0>; 1435 sound-name-prefix = "PDM"; 1436 clocks = <&clkc_audio AUD_CLKID_PDM>, 1437 <&clkc_audio AUD_CLKID_PDM_DCLK>, 1438 <&clkc_audio AUD_CLKID_PDM_SYSCLK>; 1439 clock-names = "pclk", "dclk", "sysclk"; 1440 status = "disabled"; 1441 }; 1442 1443 audio: bus@42000 { 1444 compatible = "simple-bus"; 1445 reg = <0x0 0x42000 0x0 0x2000>; 1446 #address-cells = <2>; 1447 #size-cells = <2>; 1448 ranges = <0x0 0x0 0x0 0x42000 0x0 0x2000>; 1449 1450 clkc_audio: clock-controller@0 { 1451 status = "disabled"; 1452 compatible = "amlogic,g12a-audio-clkc"; 1453 reg = <0x0 0x0 0x0 0xb4>; 1454 #clock-cells = <1>; 1455 1456 clocks = <&clkc CLKID_AUDIO>, 1457 <&clkc CLKID_MPLL0>, 1458 <&clkc CLKID_MPLL1>, 1459 <&clkc CLKID_MPLL2>, 1460 <&clkc CLKID_MPLL3>, 1461 <&clkc CLKID_HIFI_PLL>, 1462 <&clkc CLKID_FCLK_DIV3>, 1463 <&clkc CLKID_FCLK_DIV4>, 1464 <&clkc CLKID_GP0_PLL>; 1465 clock-names = "pclk", 1466 "mst_in0", 1467 "mst_in1", 1468 "mst_in2", 1469 "mst_in3", 1470 "mst_in4", 1471 "mst_in5", 1472 "mst_in6", 1473 "mst_in7"; 1474 1475 resets = <&reset RESET_AUDIO>; 1476 }; 1477 1478 toddr_a: audio-controller@100 { 1479 compatible = "amlogic,g12a-toddr", 1480 "amlogic,axg-toddr"; 1481 reg = <0x0 0x100 0x0 0x1c>; 1482 #sound-dai-cells = <0>; 1483 sound-name-prefix = "TODDR_A"; 1484 interrupts = <GIC_SPI 148 IRQ_TYPE_EDGE_RISING>; 1485 clocks = <&clkc_audio AUD_CLKID_TODDR_A>; 1486 resets = <&arb AXG_ARB_TODDR_A>; 1487 status = "disabled"; 1488 }; 1489 1490 toddr_b: audio-controller@140 { 1491 compatible = "amlogic,g12a-toddr", 1492 "amlogic,axg-toddr"; 1493 reg = <0x0 0x140 0x0 0x1c>; 1494 #sound-dai-cells = <0>; 1495 sound-name-prefix = "TODDR_B"; 1496 interrupts = <GIC_SPI 149 IRQ_TYPE_EDGE_RISING>; 1497 clocks = <&clkc_audio AUD_CLKID_TODDR_B>; 1498 resets = <&arb AXG_ARB_TODDR_B>; 1499 status = "disabled"; 1500 }; 1501 1502 toddr_c: audio-controller@180 { 1503 compatible = "amlogic,g12a-toddr", 1504 "amlogic,axg-toddr"; 1505 reg = <0x0 0x180 0x0 0x1c>; 1506 #sound-dai-cells = <0>; 1507 sound-name-prefix = "TODDR_C"; 1508 interrupts = <GIC_SPI 150 IRQ_TYPE_EDGE_RISING>; 1509 clocks = <&clkc_audio AUD_CLKID_TODDR_C>; 1510 resets = <&arb AXG_ARB_TODDR_C>; 1511 status = "disabled"; 1512 }; 1513 1514 frddr_a: audio-controller@1c0 { 1515 compatible = "amlogic,g12a-frddr", 1516 "amlogic,axg-frddr"; 1517 reg = <0x0 0x1c0 0x0 0x1c>; 1518 #sound-dai-cells = <0>; 1519 sound-name-prefix = "FRDDR_A"; 1520 interrupts = <GIC_SPI 152 IRQ_TYPE_EDGE_RISING>; 1521 clocks = <&clkc_audio AUD_CLKID_FRDDR_A>; 1522 resets = <&arb AXG_ARB_FRDDR_A>; 1523 status = "disabled"; 1524 }; 1525 1526 frddr_b: audio-controller@200 { 1527 compatible = "amlogic,g12a-frddr", 1528 "amlogic,axg-frddr"; 1529 reg = <0x0 0x200 0x0 0x1c>; 1530 #sound-dai-cells = <0>; 1531 sound-name-prefix = "FRDDR_B"; 1532 interrupts = <GIC_SPI 153 IRQ_TYPE_EDGE_RISING>; 1533 clocks = <&clkc_audio AUD_CLKID_FRDDR_B>; 1534 resets = <&arb AXG_ARB_FRDDR_B>; 1535 status = "disabled"; 1536 }; 1537 1538 frddr_c: audio-controller@240 { 1539 compatible = "amlogic,g12a-frddr", 1540 "amlogic,axg-frddr"; 1541 reg = <0x0 0x240 0x0 0x1c>; 1542 #sound-dai-cells = <0>; 1543 sound-name-prefix = "FRDDR_C"; 1544 interrupts = <GIC_SPI 154 IRQ_TYPE_EDGE_RISING>; 1545 clocks = <&clkc_audio AUD_CLKID_FRDDR_C>; 1546 resets = <&arb AXG_ARB_FRDDR_C>; 1547 status = "disabled"; 1548 }; 1549 1550 arb: reset-controller@280 { 1551 status = "disabled"; 1552 compatible = "amlogic,meson-axg-audio-arb"; 1553 reg = <0x0 0x280 0x0 0x4>; 1554 #reset-cells = <1>; 1555 clocks = <&clkc_audio AUD_CLKID_DDR_ARB>; 1556 }; 1557 1558 tdmin_a: audio-controller@300 { 1559 compatible = "amlogic,g12a-tdmin", 1560 "amlogic,axg-tdmin"; 1561 reg = <0x0 0x300 0x0 0x40>; 1562 sound-name-prefix = "TDMIN_A"; 1563 clocks = <&clkc_audio AUD_CLKID_TDMIN_A>, 1564 <&clkc_audio AUD_CLKID_TDMIN_A_SCLK>, 1565 <&clkc_audio AUD_CLKID_TDMIN_A_SCLK_SEL>, 1566 <&clkc_audio AUD_CLKID_TDMIN_A_LRCLK>, 1567 <&clkc_audio AUD_CLKID_TDMIN_A_LRCLK>; 1568 clock-names = "pclk", "sclk", "sclk_sel", 1569 "lrclk", "lrclk_sel"; 1570 status = "disabled"; 1571 }; 1572 1573 tdmin_b: audio-controller@340 { 1574 compatible = "amlogic,g12a-tdmin", 1575 "amlogic,axg-tdmin"; 1576 reg = <0x0 0x340 0x0 0x40>; 1577 sound-name-prefix = "TDMIN_B"; 1578 clocks = <&clkc_audio AUD_CLKID_TDMIN_B>, 1579 <&clkc_audio AUD_CLKID_TDMIN_B_SCLK>, 1580 <&clkc_audio AUD_CLKID_TDMIN_B_SCLK_SEL>, 1581 <&clkc_audio AUD_CLKID_TDMIN_B_LRCLK>, 1582 <&clkc_audio AUD_CLKID_TDMIN_B_LRCLK>; 1583 clock-names = "pclk", "sclk", "sclk_sel", 1584 "lrclk", "lrclk_sel"; 1585 status = "disabled"; 1586 }; 1587 1588 tdmin_c: audio-controller@380 { 1589 compatible = "amlogic,g12a-tdmin", 1590 "amlogic,axg-tdmin"; 1591 reg = <0x0 0x380 0x0 0x40>; 1592 sound-name-prefix = "TDMIN_C"; 1593 clocks = <&clkc_audio AUD_CLKID_TDMIN_C>, 1594 <&clkc_audio AUD_CLKID_TDMIN_C_SCLK>, 1595 <&clkc_audio AUD_CLKID_TDMIN_C_SCLK_SEL>, 1596 <&clkc_audio AUD_CLKID_TDMIN_C_LRCLK>, 1597 <&clkc_audio AUD_CLKID_TDMIN_C_LRCLK>; 1598 clock-names = "pclk", "sclk", "sclk_sel", 1599 "lrclk", "lrclk_sel"; 1600 status = "disabled"; 1601 }; 1602 1603 tdmin_lb: audio-controller@3c0 { 1604 compatible = "amlogic,g12a-tdmin", 1605 "amlogic,axg-tdmin"; 1606 reg = <0x0 0x3c0 0x0 0x40>; 1607 sound-name-prefix = "TDMIN_LB"; 1608 clocks = <&clkc_audio AUD_CLKID_TDMIN_LB>, 1609 <&clkc_audio AUD_CLKID_TDMIN_LB_SCLK>, 1610 <&clkc_audio AUD_CLKID_TDMIN_LB_SCLK_SEL>, 1611 <&clkc_audio AUD_CLKID_TDMIN_LB_LRCLK>, 1612 <&clkc_audio AUD_CLKID_TDMIN_LB_LRCLK>; 1613 clock-names = "pclk", "sclk", "sclk_sel", 1614 "lrclk", "lrclk_sel"; 1615 status = "disabled"; 1616 }; 1617 1618 spdifin: audio-controller@400 { 1619 compatible = "amlogic,g12a-spdifin", 1620 "amlogic,axg-spdifin"; 1621 reg = <0x0 0x400 0x0 0x30>; 1622 #sound-dai-cells = <0>; 1623 sound-name-prefix = "SPDIFIN"; 1624 interrupts = <GIC_SPI 151 IRQ_TYPE_EDGE_RISING>; 1625 clocks = <&clkc_audio AUD_CLKID_SPDIFIN>, 1626 <&clkc_audio AUD_CLKID_SPDIFIN_CLK>; 1627 clock-names = "pclk", "refclk"; 1628 status = "disabled"; 1629 }; 1630 1631 spdifout: audio-controller@480 { 1632 compatible = "amlogic,g12a-spdifout", 1633 "amlogic,axg-spdifout"; 1634 reg = <0x0 0x480 0x0 0x50>; 1635 #sound-dai-cells = <0>; 1636 sound-name-prefix = "SPDIFOUT"; 1637 clocks = <&clkc_audio AUD_CLKID_SPDIFOUT>, 1638 <&clkc_audio AUD_CLKID_SPDIFOUT_CLK>; 1639 clock-names = "pclk", "mclk"; 1640 status = "disabled"; 1641 }; 1642 1643 tdmout_a: audio-controller@500 { 1644 compatible = "amlogic,g12a-tdmout"; 1645 reg = <0x0 0x500 0x0 0x40>; 1646 sound-name-prefix = "TDMOUT_A"; 1647 clocks = <&clkc_audio AUD_CLKID_TDMOUT_A>, 1648 <&clkc_audio AUD_CLKID_TDMOUT_A_SCLK>, 1649 <&clkc_audio AUD_CLKID_TDMOUT_A_SCLK_SEL>, 1650 <&clkc_audio AUD_CLKID_TDMOUT_A_LRCLK>, 1651 <&clkc_audio AUD_CLKID_TDMOUT_A_LRCLK>; 1652 clock-names = "pclk", "sclk", "sclk_sel", 1653 "lrclk", "lrclk_sel"; 1654 status = "disabled"; 1655 }; 1656 1657 tdmout_b: audio-controller@540 { 1658 compatible = "amlogic,g12a-tdmout"; 1659 reg = <0x0 0x540 0x0 0x40>; 1660 sound-name-prefix = "TDMOUT_B"; 1661 clocks = <&clkc_audio AUD_CLKID_TDMOUT_B>, 1662 <&clkc_audio AUD_CLKID_TDMOUT_B_SCLK>, 1663 <&clkc_audio AUD_CLKID_TDMOUT_B_SCLK_SEL>, 1664 <&clkc_audio AUD_CLKID_TDMOUT_B_LRCLK>, 1665 <&clkc_audio AUD_CLKID_TDMOUT_B_LRCLK>; 1666 clock-names = "pclk", "sclk", "sclk_sel", 1667 "lrclk", "lrclk_sel"; 1668 status = "disabled"; 1669 }; 1670 1671 tdmout_c: audio-controller@580 { 1672 compatible = "amlogic,g12a-tdmout"; 1673 reg = <0x0 0x580 0x0 0x40>; 1674 sound-name-prefix = "TDMOUT_C"; 1675 clocks = <&clkc_audio AUD_CLKID_TDMOUT_C>, 1676 <&clkc_audio AUD_CLKID_TDMOUT_C_SCLK>, 1677 <&clkc_audio AUD_CLKID_TDMOUT_C_SCLK_SEL>, 1678 <&clkc_audio AUD_CLKID_TDMOUT_C_LRCLK>, 1679 <&clkc_audio AUD_CLKID_TDMOUT_C_LRCLK>; 1680 clock-names = "pclk", "sclk", "sclk_sel", 1681 "lrclk", "lrclk_sel"; 1682 status = "disabled"; 1683 }; 1684 1685 spdifout_b: audio-controller@680 { 1686 compatible = "amlogic,g12a-spdifout", 1687 "amlogic,axg-spdifout"; 1688 reg = <0x0 0x680 0x0 0x50>; 1689 #sound-dai-cells = <0>; 1690 sound-name-prefix = "SPDIFOUT_B"; 1691 clocks = <&clkc_audio AUD_CLKID_SPDIFOUT_B>, 1692 <&clkc_audio AUD_CLKID_SPDIFOUT_B_CLK>; 1693 clock-names = "pclk", "mclk"; 1694 status = "disabled"; 1695 }; 1696 1697 tohdmitx: audio-controller@744 { 1698 compatible = "amlogic,g12a-tohdmitx"; 1699 reg = <0x0 0x744 0x0 0x4>; 1700 #sound-dai-cells = <1>; 1701 sound-name-prefix = "TOHDMITX"; 1702 status = "disabled"; 1703 }; 1704 }; 1705 1706 usb3_pcie_phy: phy@46000 { 1707 compatible = "amlogic,g12a-usb3-pcie-phy"; 1708 reg = <0x0 0x46000 0x0 0x2000>; 1709 clocks = <&clkc CLKID_PCIE_PLL>; 1710 clock-names = "ref_clk"; 1711 resets = <&reset RESET_PCIE_PHY>; 1712 reset-names = "phy"; 1713 assigned-clocks = <&clkc CLKID_PCIE_PLL>; 1714 assigned-clock-rates = <100000000>; 1715 #phy-cells = <1>; 1716 }; 1717 1718 eth_phy: mdio-multiplexer@4c000 { 1719 compatible = "amlogic,g12a-mdio-mux"; 1720 reg = <0x0 0x4c000 0x0 0xa4>; 1721 clocks = <&clkc CLKID_ETH_PHY>, 1722 <&xtal>, 1723 <&clkc CLKID_MPLL_50M>; 1724 clock-names = "pclk", "clkin0", "clkin1"; 1725 mdio-parent-bus = <&mdio0>; 1726 #address-cells = <1>; 1727 #size-cells = <0>; 1728 1729 ext_mdio: mdio@0 { 1730 reg = <0>; 1731 #address-cells = <1>; 1732 #size-cells = <0>; 1733 }; 1734 1735 int_mdio: mdio@1 { 1736 reg = <1>; 1737 #address-cells = <1>; 1738 #size-cells = <0>; 1739 1740 internal_ephy: ethernet_phy@8 { 1741 compatible = "ethernet-phy-id0180.3301", 1742 "ethernet-phy-ieee802.3-c22"; 1743 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>; 1744 reg = <8>; 1745 max-speed = <100>; 1746 }; 1747 }; 1748 }; 1749 }; 1750 1751 aobus: bus@ff800000 { 1752 compatible = "simple-bus"; 1753 reg = <0x0 0xff800000 0x0 0x100000>; 1754 #address-cells = <2>; 1755 #size-cells = <2>; 1756 ranges = <0x0 0x0 0x0 0xff800000 0x0 0x100000>; 1757 1758 rti: sys-ctrl@0 { 1759 compatible = "amlogic,meson-gx-ao-sysctrl", 1760 "simple-mfd", "syscon"; 1761 reg = <0x0 0x0 0x0 0x100>; 1762 #address-cells = <2>; 1763 #size-cells = <2>; 1764 ranges = <0x0 0x0 0x0 0x0 0x0 0x100>; 1765 1766 clkc_AO: clock-controller { 1767 compatible = "amlogic,meson-g12a-aoclkc"; 1768 #clock-cells = <1>; 1769 #reset-cells = <1>; 1770 clocks = <&xtal>, <&clkc CLKID_CLK81>; 1771 clock-names = "xtal", "mpeg-clk"; 1772 }; 1773 1774 pwrc_vpu: power-controller-vpu { 1775 compatible = "amlogic,meson-g12a-pwrc-vpu"; 1776 #power-domain-cells = <0>; 1777 amlogic,hhi-sysctrl = <&hhi>; 1778 resets = <&reset RESET_VIU>, 1779 <&reset RESET_VENC>, 1780 <&reset RESET_VCBUS>, 1781 <&reset RESET_BT656>, 1782 <&reset RESET_RDMA>, 1783 <&reset RESET_VENCI>, 1784 <&reset RESET_VENCP>, 1785 <&reset RESET_VDAC>, 1786 <&reset RESET_VDI6>, 1787 <&reset RESET_VENCL>, 1788 <&reset RESET_VID_LOCK>; 1789 clocks = <&clkc CLKID_VPU>, 1790 <&clkc CLKID_VAPB>; 1791 clock-names = "vpu", "vapb"; 1792 /* 1793 * VPU clocking is provided by two identical clock paths 1794 * VPU_0 and VPU_1 muxed to a single clock by a glitch 1795 * free mux to safely change frequency while running. 1796 * Same for VAPB but with a final gate after the glitch free mux. 1797 */ 1798 assigned-clocks = <&clkc CLKID_VPU_0_SEL>, 1799 <&clkc CLKID_VPU_0>, 1800 <&clkc CLKID_VPU>, /* Glitch free mux */ 1801 <&clkc CLKID_VAPB_0_SEL>, 1802 <&clkc CLKID_VAPB_0>, 1803 <&clkc CLKID_VAPB_SEL>; /* Glitch free mux */ 1804 assigned-clock-parents = <&clkc CLKID_FCLK_DIV3>, 1805 <0>, /* Do Nothing */ 1806 <&clkc CLKID_VPU_0>, 1807 <&clkc CLKID_FCLK_DIV4>, 1808 <0>, /* Do Nothing */ 1809 <&clkc CLKID_VAPB_0>; 1810 assigned-clock-rates = <0>, /* Do Nothing */ 1811 <666666666>, 1812 <0>, /* Do Nothing */ 1813 <0>, /* Do Nothing */ 1814 <250000000>, 1815 <0>; /* Do Nothing */ 1816 }; 1817 1818 ao_pinctrl: pinctrl@14 { 1819 compatible = "amlogic,meson-g12a-aobus-pinctrl"; 1820 #address-cells = <2>; 1821 #size-cells = <2>; 1822 ranges; 1823 1824 gpio_ao: bank@14 { 1825 reg = <0x0 0x14 0x0 0x8>, 1826 <0x0 0x1c 0x0 0x8>, 1827 <0x0 0x24 0x0 0x14>; 1828 reg-names = "mux", 1829 "ds", 1830 "gpio"; 1831 gpio-controller; 1832 #gpio-cells = <2>; 1833 gpio-ranges = <&ao_pinctrl 0 0 15>; 1834 }; 1835 1836 i2c_ao_sck_pins: i2c_ao_sck_pins { 1837 mux { 1838 groups = "i2c_ao_sck"; 1839 function = "i2c_ao"; 1840 bias-disable; 1841 drive-strength-microamp = <3000>; 1842 }; 1843 }; 1844 1845 i2c_ao_sda_pins: i2c_ao_sda { 1846 mux { 1847 groups = "i2c_ao_sda"; 1848 function = "i2c_ao"; 1849 bias-disable; 1850 drive-strength-microamp = <3000>; 1851 }; 1852 }; 1853 1854 i2c_ao_sck_e_pins: i2c_ao_sck_e { 1855 mux { 1856 groups = "i2c_ao_sck_e"; 1857 function = "i2c_ao"; 1858 bias-disable; 1859 drive-strength-microamp = <3000>; 1860 }; 1861 }; 1862 1863 i2c_ao_sda_e_pins: i2c_ao_sda_e { 1864 mux { 1865 groups = "i2c_ao_sda_e"; 1866 function = "i2c_ao"; 1867 bias-disable; 1868 drive-strength-microamp = <3000>; 1869 }; 1870 }; 1871 1872 mclk0_ao_pins: mclk0-ao { 1873 mux { 1874 groups = "mclk0_ao"; 1875 function = "mclk0_ao"; 1876 bias-disable; 1877 drive-strength-microamp = <3000>; 1878 }; 1879 }; 1880 1881 tdm_ao_b_din0_pins: tdm-ao-b-din0 { 1882 mux { 1883 groups = "tdm_ao_b_din0"; 1884 function = "tdm_ao_b"; 1885 bias-disable; 1886 }; 1887 }; 1888 1889 spdif_ao_out_pins: spdif-ao-out { 1890 mux { 1891 groups = "spdif_ao_out"; 1892 function = "spdif_ao_out"; 1893 drive-strength-microamp = <500>; 1894 bias-disable; 1895 }; 1896 }; 1897 1898 tdm_ao_b_din1_pins: tdm-ao-b-din1 { 1899 mux { 1900 groups = "tdm_ao_b_din1"; 1901 function = "tdm_ao_b"; 1902 bias-disable; 1903 }; 1904 }; 1905 1906 tdm_ao_b_din2_pins: tdm-ao-b-din2 { 1907 mux { 1908 groups = "tdm_ao_b_din2"; 1909 function = "tdm_ao_b"; 1910 bias-disable; 1911 }; 1912 }; 1913 1914 tdm_ao_b_dout0_pins: tdm-ao-b-dout0 { 1915 mux { 1916 groups = "tdm_ao_b_dout0"; 1917 function = "tdm_ao_b"; 1918 bias-disable; 1919 drive-strength-microamp = <3000>; 1920 }; 1921 }; 1922 1923 tdm_ao_b_dout1_pins: tdm-ao-b-dout1 { 1924 mux { 1925 groups = "tdm_ao_b_dout1"; 1926 function = "tdm_ao_b"; 1927 bias-disable; 1928 drive-strength-microamp = <3000>; 1929 }; 1930 }; 1931 1932 tdm_ao_b_dout2_pins: tdm-ao-b-dout2 { 1933 mux { 1934 groups = "tdm_ao_b_dout2"; 1935 function = "tdm_ao_b"; 1936 bias-disable; 1937 drive-strength-microamp = <3000>; 1938 }; 1939 }; 1940 1941 tdm_ao_b_fs_pins: tdm-ao-b-fs { 1942 mux { 1943 groups = "tdm_ao_b_fs"; 1944 function = "tdm_ao_b"; 1945 bias-disable; 1946 drive-strength-microamp = <3000>; 1947 }; 1948 }; 1949 1950 tdm_ao_b_sclk_pins: tdm-ao-b-sclk { 1951 mux { 1952 groups = "tdm_ao_b_sclk"; 1953 function = "tdm_ao_b"; 1954 bias-disable; 1955 drive-strength-microamp = <3000>; 1956 }; 1957 }; 1958 1959 tdm_ao_b_slv_fs_pins: tdm-ao-b-slv-fs { 1960 mux { 1961 groups = "tdm_ao_b_slv_fs"; 1962 function = "tdm_ao_b"; 1963 bias-disable; 1964 }; 1965 }; 1966 1967 tdm_ao_b_slv_sclk_pins: tdm-ao-b-slv-sclk { 1968 mux { 1969 groups = "tdm_ao_b_slv_sclk"; 1970 function = "tdm_ao_b"; 1971 bias-disable; 1972 }; 1973 }; 1974 1975 uart_ao_a_pins: uart-a-ao { 1976 mux { 1977 groups = "uart_ao_a_tx", 1978 "uart_ao_a_rx"; 1979 function = "uart_ao_a"; 1980 bias-disable; 1981 }; 1982 }; 1983 1984 uart_ao_a_cts_rts_pins: uart-ao-a-cts-rts { 1985 mux { 1986 groups = "uart_ao_a_cts", 1987 "uart_ao_a_rts"; 1988 function = "uart_ao_a"; 1989 bias-disable; 1990 }; 1991 }; 1992 1993 pwm_ao_a_pins: pwm-ao-a { 1994 mux { 1995 groups = "pwm_ao_a"; 1996 function = "pwm_ao_a"; 1997 bias-disable; 1998 }; 1999 }; 2000 2001 pwm_ao_b_pins: pwm-ao-b { 2002 mux { 2003 groups = "pwm_ao_b"; 2004 function = "pwm_ao_b"; 2005 bias-disable; 2006 }; 2007 }; 2008 2009 pwm_ao_c_4_pins: pwm-ao-c-4 { 2010 mux { 2011 groups = "pwm_ao_c_4"; 2012 function = "pwm_ao_c"; 2013 bias-disable; 2014 }; 2015 }; 2016 2017 pwm_ao_c_6_pins: pwm-ao-c-6 { 2018 mux { 2019 groups = "pwm_ao_c_6"; 2020 function = "pwm_ao_c"; 2021 bias-disable; 2022 }; 2023 }; 2024 2025 pwm_ao_d_5_pins: pwm-ao-d-5 { 2026 mux { 2027 groups = "pwm_ao_d_5"; 2028 function = "pwm_ao_d"; 2029 bias-disable; 2030 }; 2031 }; 2032 2033 pwm_ao_d_10_pins: pwm-ao-d-10 { 2034 mux { 2035 groups = "pwm_ao_d_10"; 2036 function = "pwm_ao_d"; 2037 bias-disable; 2038 }; 2039 }; 2040 2041 pwm_ao_d_e_pins: pwm-ao-d-e { 2042 mux { 2043 groups = "pwm_ao_d_e"; 2044 function = "pwm_ao_d"; 2045 }; 2046 }; 2047 2048 remote_input_ao_pins: remote-input-ao { 2049 mux { 2050 groups = "remote_ao_input"; 2051 function = "remote_ao_input"; 2052 bias-disable; 2053 }; 2054 }; 2055 }; 2056 }; 2057 2058 cec_AO: cec@100 { 2059 compatible = "amlogic,meson-gx-ao-cec"; 2060 reg = <0x0 0x00100 0x0 0x14>; 2061 interrupts = <GIC_SPI 199 IRQ_TYPE_EDGE_RISING>; 2062 clocks = <&clkc_AO CLKID_AO_CEC>; 2063 clock-names = "core"; 2064 status = "disabled"; 2065 }; 2066 2067 sec_AO: ao-secure@140 { 2068 compatible = "amlogic,meson-gx-ao-secure", "syscon"; 2069 reg = <0x0 0x140 0x0 0x140>; 2070 amlogic,has-chip-id; 2071 }; 2072 2073 cecb_AO: cec@280 { 2074 compatible = "amlogic,meson-g12a-ao-cec"; 2075 reg = <0x0 0x00280 0x0 0x1c>; 2076 interrupts = <GIC_SPI 203 IRQ_TYPE_EDGE_RISING>; 2077 clocks = <&clkc_AO CLKID_AO_CTS_OSCIN>; 2078 clock-names = "oscin"; 2079 status = "disabled"; 2080 }; 2081 2082 pwm_AO_cd: pwm@2000 { 2083 compatible = "amlogic,meson-g12a-ao-pwm-cd"; 2084 reg = <0x0 0x2000 0x0 0x20>; 2085 #pwm-cells = <3>; 2086 status = "disabled"; 2087 }; 2088 2089 uart_AO: serial@3000 { 2090 compatible = "amlogic,meson-gx-uart", 2091 "amlogic,meson-ao-uart"; 2092 reg = <0x0 0x3000 0x0 0x18>; 2093 interrupts = <GIC_SPI 193 IRQ_TYPE_EDGE_RISING>; 2094 clocks = <&xtal>, <&clkc_AO CLKID_AO_UART>, <&xtal>; 2095 clock-names = "xtal", "pclk", "baud"; 2096 status = "disabled"; 2097 }; 2098 2099 uart_AO_B: serial@4000 { 2100 compatible = "amlogic,meson-gx-uart", 2101 "amlogic,meson-ao-uart"; 2102 reg = <0x0 0x4000 0x0 0x18>; 2103 interrupts = <GIC_SPI 197 IRQ_TYPE_EDGE_RISING>; 2104 clocks = <&xtal>, <&clkc_AO CLKID_AO_UART2>, <&xtal>; 2105 clock-names = "xtal", "pclk", "baud"; 2106 status = "disabled"; 2107 }; 2108 2109 i2c_AO: i2c@5000 { 2110 compatible = "amlogic,meson-axg-i2c"; 2111 status = "disabled"; 2112 reg = <0x0 0x05000 0x0 0x20>; 2113 interrupts = <GIC_SPI 195 IRQ_TYPE_EDGE_RISING>; 2114 #address-cells = <1>; 2115 #size-cells = <0>; 2116 clocks = <&clkc CLKID_I2C>; 2117 }; 2118 2119 pwm_AO_ab: pwm@7000 { 2120 compatible = "amlogic,meson-g12a-ao-pwm-ab"; 2121 reg = <0x0 0x7000 0x0 0x20>; 2122 #pwm-cells = <3>; 2123 status = "disabled"; 2124 }; 2125 2126 ir: ir@8000 { 2127 compatible = "amlogic,meson-gxbb-ir"; 2128 reg = <0x0 0x8000 0x0 0x20>; 2129 interrupts = <GIC_SPI 196 IRQ_TYPE_EDGE_RISING>; 2130 status = "disabled"; 2131 }; 2132 2133 saradc: adc@9000 { 2134 compatible = "amlogic,meson-g12a-saradc", 2135 "amlogic,meson-saradc"; 2136 reg = <0x0 0x9000 0x0 0x48>; 2137 #io-channel-cells = <1>; 2138 interrupts = <GIC_SPI 200 IRQ_TYPE_EDGE_RISING>; 2139 clocks = <&xtal>, 2140 <&clkc_AO CLKID_AO_SAR_ADC>, 2141 <&clkc_AO CLKID_AO_SAR_ADC_CLK>, 2142 <&clkc_AO CLKID_AO_SAR_ADC_SEL>; 2143 clock-names = "clkin", "core", "adc_clk", "adc_sel"; 2144 status = "disabled"; 2145 }; 2146 }; 2147 2148 vpu: vpu@ff900000 { 2149 compatible = "amlogic,meson-g12a-vpu"; 2150 reg = <0x0 0xff900000 0x0 0x100000>, 2151 <0x0 0xff63c000 0x0 0x1000>; 2152 reg-names = "vpu", "hhi"; 2153 interrupts = <GIC_SPI 3 IRQ_TYPE_EDGE_RISING>; 2154 #address-cells = <1>; 2155 #size-cells = <0>; 2156 amlogic,canvas = <&canvas>; 2157 power-domains = <&pwrc_vpu>; 2158 2159 /* CVBS VDAC output port */ 2160 cvbs_vdac_port: port@0 { 2161 reg = <0>; 2162 }; 2163 2164 /* HDMI-TX output port */ 2165 hdmi_tx_port: port@1 { 2166 reg = <1>; 2167 2168 hdmi_tx_out: endpoint { 2169 remote-endpoint = <&hdmi_tx_in>; 2170 }; 2171 }; 2172 }; 2173 2174 gic: interrupt-controller@ffc01000 { 2175 compatible = "arm,gic-400"; 2176 reg = <0x0 0xffc01000 0 0x1000>, 2177 <0x0 0xffc02000 0 0x2000>, 2178 <0x0 0xffc04000 0 0x2000>, 2179 <0x0 0xffc06000 0 0x2000>; 2180 interrupt-controller; 2181 interrupts = <GIC_PPI 9 2182 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>; 2183 #interrupt-cells = <3>; 2184 #address-cells = <0>; 2185 }; 2186 2187 cbus: bus@ffd00000 { 2188 compatible = "simple-bus"; 2189 reg = <0x0 0xffd00000 0x0 0x100000>; 2190 #address-cells = <2>; 2191 #size-cells = <2>; 2192 ranges = <0x0 0x0 0x0 0xffd00000 0x0 0x100000>; 2193 2194 reset: reset-controller@1004 { 2195 compatible = "amlogic,meson-g12a-reset", 2196 "amlogic,meson-axg-reset"; 2197 reg = <0x0 0x1004 0x0 0x9c>; 2198 #reset-cells = <1>; 2199 }; 2200 2201 pwm_ef: pwm@19000 { 2202 compatible = "amlogic,meson-g12a-ee-pwm"; 2203 reg = <0x0 0x19000 0x0 0x20>; 2204 #pwm-cells = <3>; 2205 status = "disabled"; 2206 }; 2207 2208 pwm_cd: pwm@1a000 { 2209 compatible = "amlogic,meson-g12a-ee-pwm"; 2210 reg = <0x0 0x1a000 0x0 0x20>; 2211 #pwm-cells = <3>; 2212 status = "disabled"; 2213 }; 2214 2215 pwm_ab: pwm@1b000 { 2216 compatible = "amlogic,meson-g12a-ee-pwm"; 2217 reg = <0x0 0x1b000 0x0 0x20>; 2218 #pwm-cells = <3>; 2219 status = "disabled"; 2220 }; 2221 2222 i2c3: i2c@1c000 { 2223 compatible = "amlogic,meson-axg-i2c"; 2224 status = "disabled"; 2225 reg = <0x0 0x1c000 0x0 0x20>; 2226 interrupts = <GIC_SPI 39 IRQ_TYPE_EDGE_RISING>; 2227 #address-cells = <1>; 2228 #size-cells = <0>; 2229 clocks = <&clkc CLKID_I2C>; 2230 }; 2231 2232 i2c2: i2c@1d000 { 2233 compatible = "amlogic,meson-axg-i2c"; 2234 status = "disabled"; 2235 reg = <0x0 0x1d000 0x0 0x20>; 2236 interrupts = <GIC_SPI 215 IRQ_TYPE_EDGE_RISING>; 2237 #address-cells = <1>; 2238 #size-cells = <0>; 2239 clocks = <&clkc CLKID_I2C>; 2240 }; 2241 2242 i2c1: i2c@1e000 { 2243 compatible = "amlogic,meson-axg-i2c"; 2244 status = "disabled"; 2245 reg = <0x0 0x1e000 0x0 0x20>; 2246 interrupts = <GIC_SPI 214 IRQ_TYPE_EDGE_RISING>; 2247 #address-cells = <1>; 2248 #size-cells = <0>; 2249 clocks = <&clkc CLKID_I2C>; 2250 }; 2251 2252 i2c0: i2c@1f000 { 2253 compatible = "amlogic,meson-axg-i2c"; 2254 status = "disabled"; 2255 reg = <0x0 0x1f000 0x0 0x20>; 2256 interrupts = <GIC_SPI 21 IRQ_TYPE_EDGE_RISING>; 2257 #address-cells = <1>; 2258 #size-cells = <0>; 2259 clocks = <&clkc CLKID_I2C>; 2260 }; 2261 2262 clk_msr: clock-measure@18000 { 2263 compatible = "amlogic,meson-g12a-clk-measure"; 2264 reg = <0x0 0x18000 0x0 0x10>; 2265 }; 2266 2267 uart_C: serial@22000 { 2268 compatible = "amlogic,meson-gx-uart"; 2269 reg = <0x0 0x22000 0x0 0x18>; 2270 interrupts = <GIC_SPI 93 IRQ_TYPE_EDGE_RISING>; 2271 clocks = <&xtal>, <&clkc CLKID_UART2>, <&xtal>; 2272 clock-names = "xtal", "pclk", "baud"; 2273 status = "disabled"; 2274 }; 2275 2276 uart_B: serial@23000 { 2277 compatible = "amlogic,meson-gx-uart"; 2278 reg = <0x0 0x23000 0x0 0x18>; 2279 interrupts = <GIC_SPI 75 IRQ_TYPE_EDGE_RISING>; 2280 clocks = <&xtal>, <&clkc CLKID_UART1>, <&xtal>; 2281 clock-names = "xtal", "pclk", "baud"; 2282 status = "disabled"; 2283 }; 2284 2285 uart_A: serial@24000 { 2286 compatible = "amlogic,meson-gx-uart"; 2287 reg = <0x0 0x24000 0x0 0x18>; 2288 interrupts = <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>; 2289 clocks = <&xtal>, <&clkc CLKID_UART0>, <&xtal>; 2290 clock-names = "xtal", "pclk", "baud"; 2291 status = "disabled"; 2292 }; 2293 }; 2294 2295 sd_emmc_b: sd@ffe05000 { 2296 compatible = "amlogic,meson-axg-mmc"; 2297 reg = <0x0 0xffe05000 0x0 0x800>; 2298 interrupts = <GIC_SPI 190 IRQ_TYPE_EDGE_RISING>; 2299 status = "disabled"; 2300 clocks = <&clkc CLKID_SD_EMMC_B>, 2301 <&clkc CLKID_SD_EMMC_B_CLK0>, 2302 <&clkc CLKID_FCLK_DIV2>; 2303 clock-names = "core", "clkin0", "clkin1"; 2304 resets = <&reset RESET_SD_EMMC_B>; 2305 }; 2306 2307 sd_emmc_c: mmc@ffe07000 { 2308 compatible = "amlogic,meson-axg-mmc"; 2309 reg = <0x0 0xffe07000 0x0 0x800>; 2310 interrupts = <GIC_SPI 191 IRQ_TYPE_EDGE_RISING>; 2311 status = "disabled"; 2312 clocks = <&clkc CLKID_SD_EMMC_C>, 2313 <&clkc CLKID_SD_EMMC_C_CLK0>, 2314 <&clkc CLKID_FCLK_DIV2>; 2315 clock-names = "core", "clkin0", "clkin1"; 2316 resets = <&reset RESET_SD_EMMC_C>; 2317 }; 2318 2319 usb: usb@ffe09000 { 2320 status = "disabled"; 2321 compatible = "amlogic,meson-g12a-usb-ctrl"; 2322 reg = <0x0 0xffe09000 0x0 0xa0>; 2323 interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>; 2324 #address-cells = <2>; 2325 #size-cells = <2>; 2326 ranges; 2327 2328 clocks = <&clkc CLKID_USB>; 2329 resets = <&reset RESET_USB>; 2330 2331 dr_mode = "otg"; 2332 2333 phys = <&usb2_phy0>, <&usb2_phy1>, 2334 <&usb3_pcie_phy PHY_TYPE_USB3>; 2335 phy-names = "usb2-phy0", "usb2-phy1", "usb3-phy0"; 2336 2337 dwc2: usb@ff400000 { 2338 compatible = "amlogic,meson-g12a-usb", "snps,dwc2"; 2339 reg = <0x0 0xff400000 0x0 0x40000>; 2340 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>; 2341 clocks = <&clkc CLKID_USB1_DDR_BRIDGE>; 2342 clock-names = "ddr"; 2343 phys = <&usb2_phy1>; 2344 dr_mode = "peripheral"; 2345 g-rx-fifo-size = <192>; 2346 g-np-tx-fifo-size = <128>; 2347 g-tx-fifo-size = <128 128 16 16 16>; 2348 }; 2349 2350 dwc3: usb@ff500000 { 2351 compatible = "snps,dwc3"; 2352 reg = <0x0 0xff500000 0x0 0x100000>; 2353 interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>; 2354 dr_mode = "host"; 2355 snps,dis_u2_susphy_quirk; 2356 snps,quirk-frame-length-adjustment; 2357 }; 2358 }; 2359 2360 mali: gpu@ffe40000 { 2361 compatible = "amlogic,meson-g12a-mali", "arm,mali-bifrost"; 2362 reg = <0x0 0xffe40000 0x0 0x40000>; 2363 interrupt-parent = <&gic>; 2364 interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>, 2365 <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>, 2366 <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>; 2367 interrupt-names = "gpu", "mmu", "job"; 2368 clocks = <&clkc CLKID_MALI>; 2369 resets = <&reset RESET_DVALIN_CAPB3>, <&reset RESET_DVALIN>; 2370 2371 /* 2372 * Mali clocking is provided by two identical clock paths 2373 * MALI_0 and MALI_1 muxed to a single clock by a glitch 2374 * free mux to safely change frequency while running. 2375 */ 2376 assigned-clocks = <&clkc CLKID_MALI_0_SEL>, 2377 <&clkc CLKID_MALI_0>, 2378 <&clkc CLKID_MALI>; /* Glitch free mux */ 2379 assigned-clock-parents = <&clkc CLKID_FCLK_DIV2P5>, 2380 <0>, /* Do Nothing */ 2381 <&clkc CLKID_MALI_0>; 2382 assigned-clock-rates = <0>, /* Do Nothing */ 2383 <800000000>, 2384 <0>; /* Do Nothing */ 2385 }; 2386 }; 2387 2388 timer { 2389 compatible = "arm,armv8-timer"; 2390 interrupts = <GIC_PPI 13 2391 (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>, 2392 <GIC_PPI 14 2393 (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>, 2394 <GIC_PPI 11 2395 (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>, 2396 <GIC_PPI 10 2397 (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>; 2398 }; 2399 2400 xtal: xtal-clk { 2401 compatible = "fixed-clock"; 2402 clock-frequency = <24000000>; 2403 clock-output-names = "xtal"; 2404 #clock-cells = <0>; 2405 }; 2406 2407}; 2408