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