brintos

brintos / linux-shallow public Read only

0
0
Text · 19.8 KiB · c5b9e68 Raw
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