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