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