868 lines · yaml
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)2%YAML 1.23---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-Car14 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 DU20 - renesas,du-r8a7743 # for RZ/G1M compatible DU21 - renesas,du-r8a7744 # for RZ/G1N compatible DU22 - renesas,du-r8a7745 # for RZ/G1E compatible DU23 - renesas,du-r8a77470 # for RZ/G1C compatible DU24 - renesas,du-r8a774a1 # for RZ/G2M compatible DU25 - renesas,du-r8a774b1 # for RZ/G2N compatible DU26 - renesas,du-r8a774c0 # for RZ/G2E compatible DU27 - renesas,du-r8a774e1 # for RZ/G2H compatible DU28 - renesas,du-r8a7779 # for R-Car H1 compatible DU29 - renesas,du-r8a7790 # for R-Car H2 compatible DU30 - renesas,du-r8a7791 # for R-Car M2-W compatible DU31 - renesas,du-r8a7792 # for R-Car V2H compatible DU32 - renesas,du-r8a7793 # for R-Car M2-N compatible DU33 - renesas,du-r8a7794 # for R-Car E2 compatible DU34 - renesas,du-r8a7795 # for R-Car H3 compatible DU35 - renesas,du-r8a7796 # for R-Car M3-W compatible DU36 - renesas,du-r8a77961 # for R-Car M3-W+ compatible DU37 - renesas,du-r8a77965 # for R-Car M3-N compatible DU38 - renesas,du-r8a77970 # for R-Car V3M compatible DU39 - renesas,du-r8a77980 # for R-Car V3H compatible DU40 - renesas,du-r8a77990 # for R-Car E3 compatible DU41 - renesas,du-r8a77995 # for R-Car D3 compatible DU42 - renesas,du-r8a779a0 # for R-Car V3U compatible DU43 - renesas,du-r8a779g0 # for R-Car V4H compatible DU44 45 reg:46 maxItems: 147 48 # See compatible-specific constraints below.49 clocks: true50 clock-names: true51 interrupts:52 description: Interrupt specifiers, one per DU channel53 resets: true54 reset-names: true55 56 power-domains:57 maxItems: 158 59 ports:60 $ref: /schemas/graph.yaml#/properties/ports61 description: |62 The connections to the DU output video ports are modeled using the OF63 graph bindings specified in Documentation/devicetree/bindings/graph.txt.64 The number of ports and their assignment are model-dependent. Each port65 shall have a single endpoint.66 67 patternProperties:68 "^port@[0-3]$":69 $ref: /schemas/graph.yaml#/properties/port70 unevaluatedProperties: false71 72 required:73 - port@074 - port@175 76 unevaluatedProperties: false77 78 renesas,cmms:79 $ref: /schemas/types.yaml#/definitions/phandle-array80 items:81 maxItems: 182 description:83 A list of phandles to the CMM instances present in the SoC, one for each84 available DU channel.85 86 renesas,vsps:87 $ref: /schemas/types.yaml#/definitions/phandle-array88 items:89 items:90 - description: phandle to VSP instance that serves the DU channel91 - description: Channel index identifying the LIF instance in that VSP92 description:93 A list of phandle and channel index tuples to the VSPs that handle the94 memory interfaces for the DU channels.95 96required:97 - compatible98 - reg99 - clocks100 - interrupts101 - ports102 103allOf:104 - if:105 properties:106 compatible:107 contains:108 const: renesas,du-r8a7779109 then:110 properties:111 clocks:112 minItems: 1113 items:114 - description: Functional clock115 - description: DU_DOTCLKIN0 input clock116 - description: DU_DOTCLKIN1 input clock117 118 clock-names:119 minItems: 1120 items:121 - const: du.0122 - pattern: '^dclkin\.[01]$'123 - pattern: '^dclkin\.[01]$'124 125 interrupts:126 maxItems: 1127 128 resets:129 maxItems: 1130 131 ports:132 properties:133 port@0:134 description: DPAD 0135 port@1:136 description: DPAD 1137 # port@2 is TCON, not supported yet138 port@2: false139 port@3: false140 141 required:142 - port@0143 - port@1144 145 required:146 - interrupts147 148 - if:149 properties:150 compatible:151 contains:152 enum:153 - renesas,du-r8a7743154 - renesas,du-r8a7744155 - renesas,du-r8a7791156 - renesas,du-r8a7793157 then:158 properties:159 clocks:160 minItems: 2161 items:162 - description: Functional clock for DU0163 - description: Functional clock for DU1164 - description: DU_DOTCLKIN0 input clock165 - description: DU_DOTCLKIN1 input clock166 167 clock-names:168 minItems: 2169 items:170 - const: du.0171 - const: du.1172 - pattern: '^dclkin\.[01]$'173 - pattern: '^dclkin\.[01]$'174 175 interrupts:176 maxItems: 2177 178 resets:179 maxItems: 1180 181 reset-names:182 items:183 - const: du.0184 185 ports:186 properties:187 port@0:188 description: DPAD 0189 port@1:190 description: LVDS 0191 # port@2 is TCON, not supported yet192 port@2: false193 port@3: false194 195 required:196 - port@0197 - port@1198 199 required:200 - clock-names201 - interrupts202 - resets203 - reset-names204 205 - if:206 properties:207 compatible:208 contains:209 enum:210 - renesas,du-r8a7745211 - renesas,du-r8a7792212 then:213 properties:214 clocks:215 minItems: 2216 items:217 - description: Functional clock for DU0218 - description: Functional clock for DU1219 - description: DU_DOTCLKIN0 input clock220 - description: DU_DOTCLKIN1 input clock221 222 clock-names:223 minItems: 2224 items:225 - const: du.0226 - const: du.1227 - pattern: '^dclkin\.[01]$'228 - pattern: '^dclkin\.[01]$'229 230 interrupts:231 maxItems: 2232 233 resets:234 maxItems: 1235 236 reset-names:237 items:238 - const: du.0239 240 ports:241 properties:242 port@0:243 description: DPAD 0244 port@1:245 description: DPAD 1246 port@2: false247 port@3: false248 249 required:250 - port@0251 - port@1252 253 required:254 - clock-names255 - interrupts256 - resets257 - reset-names258 259 - if:260 properties:261 compatible:262 contains:263 enum:264 - renesas,du-r8a7794265 then:266 properties:267 clocks:268 minItems: 2269 items:270 - description: Functional clock for DU0271 - description: Functional clock for DU1272 - description: DU_DOTCLKIN0 input clock273 - description: DU_DOTCLKIN1 input clock274 275 clock-names:276 minItems: 2277 items:278 - const: du.0279 - const: du.1280 - pattern: '^dclkin\.[01]$'281 - pattern: '^dclkin\.[01]$'282 283 interrupts:284 maxItems: 2285 286 resets:287 maxItems: 1288 289 reset-names:290 items:291 - const: du.0292 293 ports:294 properties:295 port@0:296 description: DPAD 0297 port@1:298 description: DPAD 1299 # port@2 is TCON, not supported yet300 port@2: false301 port@3: false302 303 required:304 - port@0305 - port@1306 307 required:308 - clock-names309 - interrupts310 - resets311 - reset-names312 313 - if:314 properties:315 compatible:316 contains:317 enum:318 - renesas,du-r8a77470319 then:320 properties:321 clocks:322 minItems: 2323 items:324 - description: Functional clock for DU0325 - description: Functional clock for DU1326 - description: DU_DOTCLKIN0 input clock327 - description: DU_DOTCLKIN1 input clock328 329 clock-names:330 minItems: 2331 items:332 - const: du.0333 - const: du.1334 - pattern: '^dclkin\.[01]$'335 - pattern: '^dclkin\.[01]$'336 337 interrupts:338 maxItems: 2339 340 resets:341 maxItems: 1342 343 reset-names:344 items:345 - const: du.0346 347 ports:348 properties:349 port@0:350 description: DPAD 0351 port@1:352 description: DPAD 1353 port@2:354 description: LVDS 0355 # port@3 is DVENC, not supported yet356 port@3: false357 358 required:359 - port@0360 - port@1361 - port@2362 363 required:364 - clock-names365 - interrupts366 - resets367 - reset-names368 369 - if:370 properties:371 compatible:372 contains:373 enum:374 - renesas,du-r8a7742375 - renesas,du-r8a7790376 then:377 properties:378 clocks:379 minItems: 3380 items:381 - description: Functional clock for DU0382 - description: Functional clock for DU1383 - description: Functional clock for DU2384 - description: DU_DOTCLKIN0 input clock385 - description: DU_DOTCLKIN1 input clock386 - description: DU_DOTCLKIN2 input clock387 388 clock-names:389 minItems: 3390 items:391 - const: du.0392 - const: du.1393 - const: du.2394 - pattern: '^dclkin\.[012]$'395 - pattern: '^dclkin\.[012]$'396 - pattern: '^dclkin\.[012]$'397 398 interrupts:399 maxItems: 3400 401 resets:402 maxItems: 1403 404 reset-names:405 items:406 - const: du.0407 408 ports:409 properties:410 port@0:411 description: DPAD 0412 port@1:413 description: LVDS 0414 port@2:415 description: LVDS 1416 # port@3 is TCON, not supported yet417 port@3: false418 419 required:420 - port@0421 - port@1422 - port@2423 424 required:425 - clock-names426 - interrupts427 - resets428 - reset-names429 430 - if:431 properties:432 compatible:433 contains:434 enum:435 - renesas,du-r8a7795436 then:437 properties:438 clocks:439 minItems: 4440 items:441 - description: Functional clock for DU0442 - description: Functional clock for DU1443 - description: Functional clock for DU2444 - description: Functional clock for DU4445 - description: DU_DOTCLKIN0 input clock446 - description: DU_DOTCLKIN1 input clock447 - description: DU_DOTCLKIN2 input clock448 - description: DU_DOTCLKIN3 input clock449 450 clock-names:451 minItems: 4452 items:453 - const: du.0454 - const: du.1455 - const: du.2456 - const: du.3457 - pattern: '^dclkin\.[0123]$'458 - pattern: '^dclkin\.[0123]$'459 - pattern: '^dclkin\.[0123]$'460 - pattern: '^dclkin\.[0123]$'461 462 interrupts:463 maxItems: 4464 465 resets:466 maxItems: 2467 468 reset-names:469 items:470 - const: du.0471 - const: du.2472 473 ports:474 properties:475 port@0:476 description: DPAD 0477 port@1:478 description: HDMI 0479 port@2:480 description: HDMI 1481 port@3:482 description: LVDS 0483 484 required:485 - port@0486 - port@1487 - port@2488 - port@3489 490 renesas,cmms:491 minItems: 4492 493 renesas,vsps:494 minItems: 4495 496 required:497 - clock-names498 - interrupts499 - resets500 - reset-names501 - renesas,vsps502 503 - if:504 properties:505 compatible:506 contains:507 enum:508 - renesas,du-r8a774a1509 - renesas,du-r8a7796510 - renesas,du-r8a77961511 then:512 properties:513 clocks:514 minItems: 3515 items:516 - description: Functional clock for DU0517 - description: Functional clock for DU1518 - description: Functional clock for DU2519 - description: DU_DOTCLKIN0 input clock520 - description: DU_DOTCLKIN1 input clock521 - description: DU_DOTCLKIN2 input clock522 523 clock-names:524 minItems: 3525 items:526 - const: du.0527 - const: du.1528 - const: du.2529 - pattern: '^dclkin\.[012]$'530 - pattern: '^dclkin\.[012]$'531 - pattern: '^dclkin\.[012]$'532 533 interrupts:534 maxItems: 3535 536 resets:537 maxItems: 2538 539 reset-names:540 items:541 - const: du.0542 - const: du.2543 544 ports:545 properties:546 port@0:547 description: DPAD 0548 port@1:549 description: HDMI 0550 port@2:551 description: LVDS 0552 port@3: false553 554 required:555 - port@0556 - port@1557 - port@2558 559 renesas,cmms:560 minItems: 3561 562 renesas,vsps:563 minItems: 3564 565 required:566 - clock-names567 - interrupts568 - resets569 - reset-names570 - renesas,vsps571 572 - if:573 properties:574 compatible:575 contains:576 enum:577 - renesas,du-r8a774b1578 - renesas,du-r8a774e1579 - renesas,du-r8a77965580 then:581 properties:582 clocks:583 minItems: 3584 items:585 - description: Functional clock for DU0586 - description: Functional clock for DU1587 - description: Functional clock for DU3588 - description: DU_DOTCLKIN0 input clock589 - description: DU_DOTCLKIN1 input clock590 - description: DU_DOTCLKIN3 input clock591 592 clock-names:593 minItems: 3594 items:595 - const: du.0596 - const: du.1597 - const: du.3598 - pattern: '^dclkin\.[013]$'599 - pattern: '^dclkin\.[013]$'600 - pattern: '^dclkin\.[013]$'601 602 interrupts:603 maxItems: 3604 605 resets:606 maxItems: 2607 608 reset-names:609 items:610 - const: du.0611 - const: du.3612 613 ports:614 properties:615 port@0:616 description: DPAD 0617 port@1:618 description: HDMI 0619 port@2:620 description: LVDS 0621 port@3: false622 623 required:624 - port@0625 - port@1626 - port@2627 628 renesas,cmms:629 minItems: 3630 631 renesas,vsps:632 minItems: 3633 634 required:635 - clock-names636 - interrupts637 - resets638 - reset-names639 - renesas,vsps640 641 - if:642 properties:643 compatible:644 contains:645 enum:646 - renesas,du-r8a77970647 - renesas,du-r8a77980648 then:649 properties:650 clocks:651 minItems: 1652 items:653 - description: Functional clock for DU0654 - description: DU_DOTCLKIN0 input clock655 656 clock-names:657 minItems: 1658 items:659 - const: du.0660 - const: dclkin.0661 662 interrupts:663 maxItems: 1664 665 resets:666 maxItems: 1667 668 reset-names:669 items:670 - const: du.0671 672 ports:673 properties:674 port@0:675 description: DPAD 0676 port@1:677 description: LVDS 0678 port@2: false679 port@3: false680 681 required:682 - port@0683 - port@1684 685 renesas,vsps:686 minItems: 1687 688 required:689 - clock-names690 - interrupts691 - resets692 - reset-names693 - renesas,vsps694 695 - if:696 properties:697 compatible:698 contains:699 enum:700 - renesas,du-r8a774c0701 - renesas,du-r8a77990702 - renesas,du-r8a77995703 then:704 properties:705 clocks:706 minItems: 2707 items:708 - description: Functional clock for DU0709 - description: Functional clock for DU1710 - description: DU_DOTCLKIN0 input clock711 - description: DU_DOTCLKIN1 input clock712 713 clock-names:714 minItems: 2715 items:716 - const: du.0717 - const: du.1718 - pattern: '^dclkin\.[01]$'719 - pattern: '^dclkin\.[01]$'720 721 interrupts:722 maxItems: 2723 724 resets:725 maxItems: 1726 727 reset-names:728 items:729 - const: du.0730 731 ports:732 properties:733 port@0:734 description: DPAD 0735 port@1:736 description: LVDS 0737 port@2:738 description: LVDS 1739 # port@3 is TCON, not supported yet740 port@3: false741 742 required:743 - port@0744 - port@1745 - port@2746 747 renesas,cmms:748 minItems: 2749 750 renesas,vsps:751 minItems: 2752 753 required:754 - clock-names755 - interrupts756 - resets757 - reset-names758 - renesas,vsps759 760 - if:761 properties:762 compatible:763 contains:764 enum:765 - renesas,du-r8a779a0766 - renesas,du-r8a779g0767 then:768 properties:769 clocks:770 items:771 - description: Functional clock772 773 clock-names:774 items:775 - const: du.0776 777 interrupts:778 maxItems: 2779 780 resets:781 maxItems: 1782 783 reset-names:784 items:785 - const: du.0786 787 ports:788 properties:789 port@0:790 description: DSI 0791 port@1:792 description: DSI 1793 port@2: false794 port@3: false795 796 required:797 - port@0798 - port@1799 800 renesas,vsps:801 minItems: 2802 803 required:804 - clock-names805 - interrupts806 - resets807 - reset-names808 - renesas,vsps809 810additionalProperties: false811 812examples:813 # R-Car H3 ES2.0 DU814 - |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