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