1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/display/renesas,du.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: Renesas R-Car Display Unit (DU) 8 9maintainers: 10 - Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> 11 12description: | 13 These DT bindings describe the Display Unit embedded in the Renesas R-Car 14 Gen1, R-Car Gen2, R-Car Gen3, RZ/G1 and RZ/G2 SoCs. 15 16properties: 17 compatible: 18 enum: 19 - renesas,du-r8a7742 # for RZ/G1H compatible DU 20 - renesas,du-r8a7743 # for RZ/G1M compatible DU 21 - renesas,du-r8a7744 # for RZ/G1N compatible DU 22 - renesas,du-r8a7745 # for RZ/G1E compatible DU 23 - renesas,du-r8a77470 # for RZ/G1C compatible DU 24 - renesas,du-r8a774a1 # for RZ/G2M compatible DU 25 - renesas,du-r8a774b1 # for RZ/G2N compatible DU 26 - renesas,du-r8a774c0 # for RZ/G2E compatible DU 27 - renesas,du-r8a774e1 # for RZ/G2H compatible DU 28 - renesas,du-r8a7779 # for R-Car H1 compatible DU 29 - renesas,du-r8a7790 # for R-Car H2 compatible DU 30 - renesas,du-r8a7791 # for R-Car M2-W compatible DU 31 - renesas,du-r8a7792 # for R-Car V2H compatible DU 32 - renesas,du-r8a7793 # for R-Car M2-N compatible DU 33 - renesas,du-r8a7794 # for R-Car E2 compatible DU 34 - renesas,du-r8a7795 # for R-Car H3 compatible DU 35 - renesas,du-r8a7796 # for R-Car M3-W compatible DU 36 - renesas,du-r8a77961 # for R-Car M3-W+ compatible DU 37 - renesas,du-r8a77965 # for R-Car M3-N compatible DU 38 - renesas,du-r8a77970 # for R-Car V3M compatible DU 39 - renesas,du-r8a77980 # for R-Car V3H compatible DU 40 - renesas,du-r8a77990 # for R-Car E3 compatible DU 41 - renesas,du-r8a77995 # for R-Car D3 compatible DU 42 - renesas,du-r8a779a0 # for R-Car V3U compatible DU 43 - renesas,du-r8a779g0 # for R-Car V4H compatible DU 44 - renesas,du-r8a779h0 # for R-Car V4M compatible DU 45 46 reg: 47 maxItems: 1 48 49 # See compatible-specific constraints below. 50 clocks: 51 minItems: 1 52 maxItems: 8 53 54 clock-names: 55 minItems: 1 56 maxItems: 8 57 58 interrupts: 59 minItems: 1 60 maxItems: 4 61 description: Interrupt specifiers, one per DU channel 62 63 resets: 64 minItems: 1 65 maxItems: 2 66 67 reset-names: 68 minItems: 1 69 maxItems: 2 70 71 power-domains: 72 maxItems: 1 73 74 ports: 75 $ref: /schemas/graph.yaml#/properties/ports 76 description: | 77 The connections to the DU output video ports are modeled using the OF 78 graph bindings specified in Documentation/devicetree/bindings/graph.txt. 79 The number of ports and their assignment are model-dependent. Each port 80 shall have a single endpoint. 81 82 patternProperties: 83 "^port@[0-3]$": 84 $ref: /schemas/graph.yaml#/properties/port 85 unevaluatedProperties: false 86 87 unevaluatedProperties: false 88 89 renesas,cmms: 90 $ref: /schemas/types.yaml#/definitions/phandle-array 91 minItems: 2 92 maxItems: 4 93 items: 94 maxItems: 1 95 description: 96 A list of phandles to the CMM instances present in the SoC, one for each 97 available DU channel. 98 99 renesas,vsps: 100 $ref: /schemas/types.yaml#/definitions/phandle-array 101 minItems: 1 102 maxItems: 4 103 items: 104 items: 105 - description: phandle to VSP instance that serves the DU channel 106 - description: Channel index identifying the LIF instance in that VSP 107 description: 108 A list of phandle and channel index tuples to the VSPs that handle the 109 memory interfaces for the DU channels. 110 111required: 112 - compatible 113 - reg 114 - clocks 115 - interrupts 116 - ports 117 118allOf: 119 - if: 120 properties: 121 compatible: 122 contains: 123 const: renesas,du-r8a7779 124 then: 125 properties: 126 clocks: 127 minItems: 1 128 items: 129 - description: Functional clock 130 - description: DU_DOTCLKIN0 input clock 131 - description: DU_DOTCLKIN1 input clock 132 133 clock-names: 134 minItems: 1 135 items: 136 - const: du.0 137 - pattern: '^dclkin\.[01]$' 138 - pattern: '^dclkin\.[01]$' 139 140 interrupts: 141 maxItems: 1 142 143 resets: 144 maxItems: 1 145 146 ports: 147 properties: 148 port@0: 149 description: DPAD 0 150 port@1: 151 description: DPAD 1 152 # port@2 is TCON, not supported yet 153 port@2: false 154 port@3: false 155 156 required: 157 - port@0 158 - port@1 159 160 required: 161 - interrupts 162 163 - if: 164 properties: 165 compatible: 166 contains: 167 enum: 168 - renesas,du-r8a7743 169 - renesas,du-r8a7744 170 - renesas,du-r8a7791 171 - renesas,du-r8a7793 172 then: 173 properties: 174 clocks: 175 minItems: 2 176 items: 177 - description: Functional clock for DU0 178 - description: Functional clock for DU1 179 - description: DU_DOTCLKIN0 input clock 180 - description: DU_DOTCLKIN1 input clock 181 182 clock-names: 183 minItems: 2 184 items: 185 - const: du.0 186 - const: du.1 187 - pattern: '^dclkin\.[01]$' 188 - pattern: '^dclkin\.[01]$' 189 190 interrupts: 191 minItems: 2 192 maxItems: 2 193 194 resets: 195 maxItems: 1 196 197 reset-names: 198 items: 199 - const: du.0 200 201 ports: 202 properties: 203 port@0: 204 description: DPAD 0 205 port@1: 206 description: LVDS 0 207 # port@2 is TCON, not supported yet 208 port@2: false 209 port@3: false 210 211 required: 212 - port@0 213 - port@1 214 215 required: 216 - clock-names 217 - interrupts 218 - resets 219 - reset-names 220 221 - if: 222 properties: 223 compatible: 224 contains: 225 enum: 226 - renesas,du-r8a7745 227 - renesas,du-r8a7792 228 then: 229 properties: 230 clocks: 231 minItems: 2 232 items: 233 - description: Functional clock for DU0 234 - description: Functional clock for DU1 235 - description: DU_DOTCLKIN0 input clock 236 - description: DU_DOTCLKIN1 input clock 237 238 clock-names: 239 minItems: 2 240 items: 241 - const: du.0 242 - const: du.1 243 - pattern: '^dclkin\.[01]$' 244 - pattern: '^dclkin\.[01]$' 245 246 interrupts: 247 minItems: 2 248 maxItems: 2 249 250 resets: 251 maxItems: 1 252 253 reset-names: 254 items: 255 - const: du.0 256 257 ports: 258 properties: 259 port@0: 260 description: DPAD 0 261 port@1: 262 description: DPAD 1 263 port@2: false 264 port@3: false 265 266 required: 267 - port@0 268 - port@1 269 270 required: 271 - clock-names 272 - interrupts 273 - resets 274 - reset-names 275 276 - if: 277 properties: 278 compatible: 279 contains: 280 enum: 281 - renesas,du-r8a7794 282 then: 283 properties: 284 clocks: 285 minItems: 2 286 items: 287 - description: Functional clock for DU0 288 - description: Functional clock for DU1 289 - description: DU_DOTCLKIN0 input clock 290 - description: DU_DOTCLKIN1 input clock 291 292 clock-names: 293 minItems: 2 294 items: 295 - const: du.0 296 - const: du.1 297 - pattern: '^dclkin\.[01]$' 298 - pattern: '^dclkin\.[01]$' 299 300 interrupts: 301 minItems: 2 302 maxItems: 2 303 304 resets: 305 maxItems: 1 306 307 reset-names: 308 items: 309 - const: du.0 310 311 ports: 312 properties: 313 port@0: 314 description: DPAD 0 315 port@1: 316 description: DPAD 1 317 # port@2 is TCON, not supported yet 318 port@2: false 319 port@3: false 320 321 required: 322 - port@0 323 - port@1 324 325 required: 326 - clock-names 327 - interrupts 328 - resets 329 - reset-names 330 331 - if: 332 properties: 333 compatible: 334 contains: 335 enum: 336 - renesas,du-r8a77470 337 then: 338 properties: 339 clocks: 340 minItems: 2 341 items: 342 - description: Functional clock for DU0 343 - description: Functional clock for DU1 344 - description: DU_DOTCLKIN0 input clock 345 - description: DU_DOTCLKIN1 input clock 346 347 clock-names: 348 minItems: 2 349 items: 350 - const: du.0 351 - const: du.1 352 - pattern: '^dclkin\.[01]$' 353 - pattern: '^dclkin\.[01]$' 354 355 interrupts: 356 minItems: 2 357 maxItems: 2 358 359 resets: 360 maxItems: 1 361 362 reset-names: 363 items: 364 - const: du.0 365 366 ports: 367 properties: 368 port@0: 369 description: DPAD 0 370 port@1: 371 description: DPAD 1 372 port@2: 373 description: LVDS 0 374 # port@3 is DVENC, not supported yet 375 port@3: false 376 377 required: 378 - port@0 379 - port@1 380 - port@2 381 382 required: 383 - clock-names 384 - interrupts 385 - resets 386 - reset-names 387 388 - if: 389 properties: 390 compatible: 391 contains: 392 enum: 393 - renesas,du-r8a7742 394 - renesas,du-r8a7790 395 then: 396 properties: 397 clocks: 398 minItems: 3 399 items: 400 - description: Functional clock for DU0 401 - description: Functional clock for DU1 402 - description: Functional clock for DU2 403 - description: DU_DOTCLKIN0 input clock 404 - description: DU_DOTCLKIN1 input clock 405 - description: DU_DOTCLKIN2 input clock 406 407 clock-names: 408 minItems: 3 409 items: 410 - const: du.0 411 - const: du.1 412 - const: du.2 413 - pattern: '^dclkin\.[012]$' 414 - pattern: '^dclkin\.[012]$' 415 - pattern: '^dclkin\.[012]$' 416 417 interrupts: 418 minItems: 3 419 maxItems: 3 420 421 resets: 422 maxItems: 1 423 424 reset-names: 425 items: 426 - const: du.0 427 428 ports: 429 properties: 430 port@0: 431 description: DPAD 0 432 port@1: 433 description: LVDS 0 434 port@2: 435 description: LVDS 1 436 # port@3 is TCON, not supported yet 437 port@3: false 438 439 required: 440 - port@0 441 - port@1 442 - port@2 443 444 required: 445 - clock-names 446 - interrupts 447 - resets 448 - reset-names 449 450 - if: 451 properties: 452 compatible: 453 contains: 454 enum: 455 - renesas,du-r8a7795 456 then: 457 properties: 458 clocks: 459 minItems: 4 460 items: 461 - description: Functional clock for DU0 462 - description: Functional clock for DU1 463 - description: Functional clock for DU2 464 - description: Functional clock for DU4 465 - description: DU_DOTCLKIN0 input clock 466 - description: DU_DOTCLKIN1 input clock 467 - description: DU_DOTCLKIN2 input clock 468 - description: DU_DOTCLKIN3 input clock 469 470 clock-names: 471 minItems: 4 472 items: 473 - const: du.0 474 - const: du.1 475 - const: du.2 476 - const: du.3 477 - pattern: '^dclkin\.[0123]$' 478 - pattern: '^dclkin\.[0123]$' 479 - pattern: '^dclkin\.[0123]$' 480 - pattern: '^dclkin\.[0123]$' 481 482 interrupts: 483 minItems: 4 484 maxItems: 4 485 486 resets: 487 minItems: 2 488 maxItems: 2 489 490 reset-names: 491 items: 492 - const: du.0 493 - const: du.2 494 495 ports: 496 properties: 497 port@0: 498 description: DPAD 0 499 port@1: 500 description: HDMI 0 501 port@2: 502 description: HDMI 1 503 port@3: 504 description: LVDS 0 505 506 required: 507 - port@0 508 - port@1 509 - port@2 510 - port@3 511 512 renesas,cmms: 513 minItems: 4 514 maxItems: 4 515 516 renesas,vsps: 517 minItems: 4 518 maxItems: 4 519 520 required: 521 - clock-names 522 - interrupts 523 - resets 524 - reset-names 525 - renesas,vsps 526 527 - if: 528 properties: 529 compatible: 530 contains: 531 enum: 532 - renesas,du-r8a774a1 533 - renesas,du-r8a7796 534 - renesas,du-r8a77961 535 then: 536 properties: 537 clocks: 538 minItems: 3 539 items: 540 - description: Functional clock for DU0 541 - description: Functional clock for DU1 542 - description: Functional clock for DU2 543 - description: DU_DOTCLKIN0 input clock 544 - description: DU_DOTCLKIN1 input clock 545 - description: DU_DOTCLKIN2 input clock 546 547 clock-names: 548 minItems: 3 549 items: 550 - const: du.0 551 - const: du.1 552 - const: du.2 553 - pattern: '^dclkin\.[012]$' 554 - pattern: '^dclkin\.[012]$' 555 - pattern: '^dclkin\.[012]$' 556 557 interrupts: 558 minItems: 3 559 maxItems: 3 560 561 resets: 562 minItems: 2 563 maxItems: 2 564 565 reset-names: 566 items: 567 - const: du.0 568 - const: du.2 569 570 ports: 571 properties: 572 port@0: 573 description: DPAD 0 574 port@1: 575 description: HDMI 0 576 port@2: 577 description: LVDS 0 578 port@3: false 579 580 required: 581 - port@0 582 - port@1 583 - port@2 584 585 renesas,cmms: 586 minItems: 3 587 maxItems: 3 588 589 renesas,vsps: 590 minItems: 3 591 maxItems: 3 592 593 required: 594 - clock-names 595 - interrupts 596 - resets 597 - reset-names 598 - renesas,vsps 599 600 - if: 601 properties: 602 compatible: 603 contains: 604 enum: 605 - renesas,du-r8a774b1 606 - renesas,du-r8a774e1 607 - renesas,du-r8a77965 608 then: 609 properties: 610 clocks: 611 minItems: 3 612 items: 613 - description: Functional clock for DU0 614 - description: Functional clock for DU1 615 - description: Functional clock for DU3 616 - description: DU_DOTCLKIN0 input clock 617 - description: DU_DOTCLKIN1 input clock 618 - description: DU_DOTCLKIN3 input clock 619 620 clock-names: 621 minItems: 3 622 items: 623 - const: du.0 624 - const: du.1 625 - const: du.3 626 - pattern: '^dclkin\.[013]$' 627 - pattern: '^dclkin\.[013]$' 628 - pattern: '^dclkin\.[013]$' 629 630 interrupts: 631 minItems: 3 632 maxItems: 3 633 634 resets: 635 minItems: 2 636 maxItems: 2 637 638 reset-names: 639 items: 640 - const: du.0 641 - const: du.3 642 643 ports: 644 properties: 645 port@0: 646 description: DPAD 0 647 port@1: 648 description: HDMI 0 649 port@2: 650 description: LVDS 0 651 port@3: false 652 653 required: 654 - port@0 655 - port@1 656 - port@2 657 658 renesas,cmms: 659 minItems: 3 660 maxItems: 3 661 662 renesas,vsps: 663 minItems: 3 664 maxItems: 3 665 666 required: 667 - clock-names 668 - interrupts 669 - resets 670 - reset-names 671 - renesas,vsps 672 673 - if: 674 properties: 675 compatible: 676 contains: 677 enum: 678 - renesas,du-r8a77970 679 - renesas,du-r8a77980 680 then: 681 properties: 682 clocks: 683 minItems: 1 684 items: 685 - description: Functional clock for DU0 686 - description: DU_DOTCLKIN0 input clock 687 688 clock-names: 689 minItems: 1 690 items: 691 - const: du.0 692 - const: dclkin.0 693 694 interrupts: 695 maxItems: 1 696 697 resets: 698 maxItems: 1 699 700 reset-names: 701 items: 702 - const: du.0 703 704 ports: 705 properties: 706 port@0: 707 description: DPAD 0 708 port@1: 709 description: LVDS 0 710 port@2: false 711 port@3: false 712 713 required: 714 - port@0 715 - port@1 716 717 renesas,vsps: 718 maxItems: 1 719 720 required: 721 - clock-names 722 - interrupts 723 - resets 724 - reset-names 725 - renesas,vsps 726 727 - if: 728 properties: 729 compatible: 730 contains: 731 enum: 732 - renesas,du-r8a774c0 733 - renesas,du-r8a77990 734 - renesas,du-r8a77995 735 then: 736 properties: 737 clocks: 738 minItems: 2 739 items: 740 - description: Functional clock for DU0 741 - description: Functional clock for DU1 742 - description: DU_DOTCLKIN0 input clock 743 - description: DU_DOTCLKIN1 input clock 744 745 clock-names: 746 minItems: 2 747 items: 748 - const: du.0 749 - const: du.1 750 - pattern: '^dclkin\.[01]$' 751 - pattern: '^dclkin\.[01]$' 752 753 interrupts: 754 minItems: 2 755 maxItems: 2 756 757 resets: 758 maxItems: 1 759 760 reset-names: 761 items: 762 - const: du.0 763 764 ports: 765 properties: 766 port@0: 767 description: DPAD 0 768 port@1: 769 description: LVDS 0 770 port@2: 771 description: LVDS 1 772 # port@3 is TCON, not supported yet 773 port@3: false 774 775 required: 776 - port@0 777 - port@1 778 - port@2 779 780 renesas,cmms: 781 minItems: 2 782 maxItems: 2 783 784 renesas,vsps: 785 minItems: 2 786 maxItems: 2 787 788 required: 789 - clock-names 790 - interrupts 791 - resets 792 - reset-names 793 - renesas,vsps 794 795 - if: 796 properties: 797 compatible: 798 contains: 799 enum: 800 - renesas,du-r8a779a0 801 - renesas,du-r8a779g0 802 then: 803 properties: 804 clocks: 805 items: 806 - description: Functional clock 807 808 clock-names: 809 items: 810 - const: du.0 811 812 interrupts: 813 maxItems: 2 814 815 resets: 816 maxItems: 1 817 818 reset-names: 819 items: 820 - const: du.0 821 822 ports: 823 properties: 824 port@0: 825 description: DSI 0 826 port@1: 827 description: DSI 1 828 port@2: false 829 port@3: false 830 831 required: 832 - port@0 833 - port@1 834 835 renesas,vsps: 836 minItems: 2 837 maxItems: 2 838 839 required: 840 - clock-names 841 - interrupts 842 - resets 843 - reset-names 844 - renesas,vsps 845 846 - if: 847 properties: 848 compatible: 849 contains: 850 enum: 851 - renesas,du-r8a779h0 852 then: 853 properties: 854 clocks: 855 items: 856 - description: Functional clock 857 858 clock-names: 859 items: 860 - const: du.0 861 862 interrupts: 863 maxItems: 1 864 865 resets: 866 maxItems: 1 867 868 reset-names: 869 items: 870 - const: du.0 871 872 ports: 873 properties: 874 port@0: 875 description: DSI 0 876 port@1: false 877 port@2: false 878 port@3: false 879 880 required: 881 - port@0 882 883 renesas,vsps: 884 maxItems: 1 885 886 required: 887 - clock-names 888 - interrupts 889 - resets 890 - reset-names 891 - renesas,vsps 892 893additionalProperties: false 894 895examples: 896 # R-Car H3 ES2.0 DU 897 - | 898 #include <dt-bindings/clock/renesas-cpg-mssr.h> 899 #include <dt-bindings/interrupt-controller/arm-gic.h> 900 901 display@feb00000 { 902 compatible = "renesas,du-r8a7795"; 903 reg = <0xfeb00000 0x80000>; 904 interrupts = <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>, 905 <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>, 906 <GIC_SPI 269 IRQ_TYPE_LEVEL_HIGH>, 907 <GIC_SPI 270 IRQ_TYPE_LEVEL_HIGH>; 908 clocks = <&cpg CPG_MOD 724>, 909 <&cpg CPG_MOD 723>, 910 <&cpg CPG_MOD 722>, 911 <&cpg CPG_MOD 721>; 912 clock-names = "du.0", "du.1", "du.2", "du.3"; 913 resets = <&cpg 724>, <&cpg 722>; 914 reset-names = "du.0", "du.2"; 915 916 renesas,cmms = <&cmm0>, <&cmm1>, <&cmm2>, <&cmm3>; 917 renesas,vsps = <&vspd0 0>, <&vspd1 0>, <&vspd2 0>, <&vspd0 1>; 918 919 ports { 920 #address-cells = <1>; 921 #size-cells = <0>; 922 923 port@0 { 924 reg = <0>; 925 endpoint { 926 remote-endpoint = <&adv7123_in>; 927 }; 928 }; 929 port@1 { 930 reg = <1>; 931 endpoint { 932 remote-endpoint = <&dw_hdmi0_in>; 933 }; 934 }; 935 port@2 { 936 reg = <2>; 937 endpoint { 938 remote-endpoint = <&dw_hdmi1_in>; 939 }; 940 }; 941 port@3 { 942 reg = <3>; 943 endpoint { 944 remote-endpoint = <&lvds0_in>; 945 }; 946 }; 947 }; 948 }; 949 950... 951