Back to home page

OSCL-LXR

 
 

    


0001 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
0002 %YAML 1.2
0003 ---
0004 $id: http://devicetree.org/schemas/display/renesas,du.yaml#
0005 $schema: http://devicetree.org/meta-schemas/core.yaml#
0006 
0007 title: Renesas R-Car Display Unit (DU)
0008 
0009 maintainers:
0010   - Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
0011 
0012 description: |
0013   These DT bindings describe the Display Unit embedded in the Renesas R-Car
0014   Gen1, R-Car Gen2, R-Car Gen3, RZ/G1 and RZ/G2 SoCs.
0015 
0016 properties:
0017   compatible:
0018     enum:
0019       - renesas,du-r8a7742 # for RZ/G1H compatible DU
0020       - renesas,du-r8a7743 # for RZ/G1M compatible DU
0021       - renesas,du-r8a7744 # for RZ/G1N compatible DU
0022       - renesas,du-r8a7745 # for RZ/G1E compatible DU
0023       - renesas,du-r8a77470 # for RZ/G1C compatible DU
0024       - renesas,du-r8a774a1 # for RZ/G2M compatible DU
0025       - renesas,du-r8a774b1 # for RZ/G2N compatible DU
0026       - renesas,du-r8a774c0 # for RZ/G2E compatible DU
0027       - renesas,du-r8a774e1 # for RZ/G2H compatible DU
0028       - renesas,du-r8a7779 # for R-Car H1 compatible DU
0029       - renesas,du-r8a7790 # for R-Car H2 compatible DU
0030       - renesas,du-r8a7791 # for R-Car M2-W compatible DU
0031       - renesas,du-r8a7792 # for R-Car V2H compatible DU
0032       - renesas,du-r8a7793 # for R-Car M2-N compatible DU
0033       - renesas,du-r8a7794 # for R-Car E2 compatible DU
0034       - renesas,du-r8a7795 # for R-Car H3 compatible DU
0035       - renesas,du-r8a7796 # for R-Car M3-W compatible DU
0036       - renesas,du-r8a77961 # for R-Car M3-W+ compatible DU
0037       - renesas,du-r8a77965 # for R-Car M3-N compatible DU
0038       - renesas,du-r8a77970 # for R-Car V3M compatible DU
0039       - renesas,du-r8a77980 # for R-Car V3H compatible DU
0040       - renesas,du-r8a77990 # for R-Car E3 compatible DU
0041       - renesas,du-r8a77995 # for R-Car D3 compatible DU
0042       - renesas,du-r8a779a0 # for R-Car V3U compatible DU
0043 
0044   reg:
0045     maxItems: 1
0046 
0047   # See compatible-specific constraints below.
0048   clocks: true
0049   clock-names: true
0050   interrupts:
0051     description: Interrupt specifiers, one per DU channel
0052   resets: true
0053   reset-names: true
0054 
0055   power-domains:
0056     maxItems: 1
0057 
0058   ports:
0059     $ref: /schemas/graph.yaml#/properties/ports
0060     description: |
0061       The connections to the DU output video ports are modeled using the OF
0062       graph bindings specified in Documentation/devicetree/bindings/graph.txt.
0063       The number of ports and their assignment are model-dependent. Each port
0064       shall have a single endpoint.
0065 
0066     patternProperties:
0067       "^port@[0-3]$":
0068         $ref: /schemas/graph.yaml#/properties/port
0069         unevaluatedProperties: false
0070 
0071     required:
0072       - port@0
0073       - port@1
0074 
0075     unevaluatedProperties: false
0076 
0077   renesas,cmms:
0078     $ref: "/schemas/types.yaml#/definitions/phandle-array"
0079     items:
0080       maxItems: 1
0081     description:
0082       A list of phandles to the CMM instances present in the SoC, one for each
0083       available DU channel.
0084 
0085   renesas,vsps:
0086     $ref: "/schemas/types.yaml#/definitions/phandle-array"
0087     items:
0088       items:
0089         - description: phandle to VSP instance that serves the DU channel
0090         - description: Channel index identifying the LIF instance in that VSP
0091     description:
0092       A list of phandle and channel index tuples to the VSPs that handle the
0093       memory interfaces for the DU channels.
0094 
0095 required:
0096   - compatible
0097   - reg
0098   - clocks
0099   - interrupts
0100   - ports
0101 
0102 allOf:
0103   - if:
0104       properties:
0105         compatible:
0106           contains:
0107             const: renesas,du-r8a7779
0108     then:
0109       properties:
0110         clocks:
0111           minItems: 1
0112           items:
0113             - description: Functional clock
0114             - description: DU_DOTCLKIN0 input clock
0115             - description: DU_DOTCLKIN1 input clock
0116 
0117         clock-names:
0118           minItems: 1
0119           items:
0120             - const: du.0
0121             - pattern: '^dclkin\.[01]$'
0122             - pattern: '^dclkin\.[01]$'
0123 
0124         interrupts:
0125           maxItems: 1
0126 
0127         resets:
0128           maxItems: 1
0129 
0130         ports:
0131           properties:
0132             port@0:
0133               description: DPAD 0
0134             port@1:
0135               description: DPAD 1
0136             # port@2 is TCON, not supported yet
0137             port@2: false
0138             port@3: false
0139 
0140           required:
0141             - port@0
0142             - port@1
0143 
0144       required:
0145         - interrupts
0146 
0147   - if:
0148       properties:
0149         compatible:
0150           contains:
0151             enum:
0152               - renesas,du-r8a7743
0153               - renesas,du-r8a7744
0154               - renesas,du-r8a7791
0155               - renesas,du-r8a7793
0156     then:
0157       properties:
0158         clocks:
0159           minItems: 2
0160           items:
0161             - description: Functional clock for DU0
0162             - description: Functional clock for DU1
0163             - description: DU_DOTCLKIN0 input clock
0164             - description: DU_DOTCLKIN1 input clock
0165 
0166         clock-names:
0167           minItems: 2
0168           items:
0169             - const: du.0
0170             - const: du.1
0171             - pattern: '^dclkin\.[01]$'
0172             - pattern: '^dclkin\.[01]$'
0173 
0174         interrupts:
0175           maxItems: 2
0176 
0177         resets:
0178           maxItems: 1
0179 
0180         reset-names:
0181           items:
0182             - const: du.0
0183 
0184         ports:
0185           properties:
0186             port@0:
0187               description: DPAD 0
0188             port@1:
0189               description: LVDS 0
0190             # port@2 is TCON, not supported yet
0191             port@2: false
0192             port@3: false
0193 
0194           required:
0195             - port@0
0196             - port@1
0197 
0198       required:
0199         - clock-names
0200         - interrupts
0201         - resets
0202         - reset-names
0203 
0204   - if:
0205       properties:
0206         compatible:
0207           contains:
0208             enum:
0209               - renesas,du-r8a7745
0210               - renesas,du-r8a7792
0211     then:
0212       properties:
0213         clocks:
0214           minItems: 2
0215           items:
0216             - description: Functional clock for DU0
0217             - description: Functional clock for DU1
0218             - description: DU_DOTCLKIN0 input clock
0219             - description: DU_DOTCLKIN1 input clock
0220 
0221         clock-names:
0222           minItems: 2
0223           items:
0224             - const: du.0
0225             - const: du.1
0226             - pattern: '^dclkin\.[01]$'
0227             - pattern: '^dclkin\.[01]$'
0228 
0229         interrupts:
0230           maxItems: 2
0231 
0232         resets:
0233           maxItems: 1
0234 
0235         reset-names:
0236           items:
0237             - const: du.0
0238 
0239         ports:
0240           properties:
0241             port@0:
0242               description: DPAD 0
0243             port@1:
0244               description: DPAD 1
0245             port@2: false
0246             port@3: false
0247 
0248           required:
0249             - port@0
0250             - port@1
0251 
0252       required:
0253         - clock-names
0254         - interrupts
0255         - resets
0256         - reset-names
0257 
0258   - if:
0259       properties:
0260         compatible:
0261           contains:
0262             enum:
0263               - renesas,du-r8a7794
0264     then:
0265       properties:
0266         clocks:
0267           minItems: 2
0268           items:
0269             - description: Functional clock for DU0
0270             - description: Functional clock for DU1
0271             - description: DU_DOTCLKIN0 input clock
0272             - description: DU_DOTCLKIN1 input clock
0273 
0274         clock-names:
0275           minItems: 2
0276           items:
0277             - const: du.0
0278             - const: du.1
0279             - pattern: '^dclkin\.[01]$'
0280             - pattern: '^dclkin\.[01]$'
0281 
0282         interrupts:
0283           maxItems: 2
0284 
0285         resets:
0286           maxItems: 1
0287 
0288         reset-names:
0289           items:
0290             - const: du.0
0291 
0292         ports:
0293           properties:
0294             port@0:
0295               description: DPAD 0
0296             port@1:
0297               description: DPAD 1
0298             # port@2 is TCON, not supported yet
0299             port@2: false
0300             port@3: false
0301 
0302           required:
0303             - port@0
0304             - port@1
0305 
0306       required:
0307         - clock-names
0308         - interrupts
0309         - resets
0310         - reset-names
0311 
0312   - if:
0313       properties:
0314         compatible:
0315           contains:
0316             enum:
0317               - renesas,du-r8a77470
0318     then:
0319       properties:
0320         clocks:
0321           minItems: 2
0322           items:
0323             - description: Functional clock for DU0
0324             - description: Functional clock for DU1
0325             - description: DU_DOTCLKIN0 input clock
0326             - description: DU_DOTCLKIN1 input clock
0327 
0328         clock-names:
0329           minItems: 2
0330           items:
0331             - const: du.0
0332             - const: du.1
0333             - pattern: '^dclkin\.[01]$'
0334             - pattern: '^dclkin\.[01]$'
0335 
0336         interrupts:
0337           maxItems: 2
0338 
0339         resets:
0340           maxItems: 1
0341 
0342         reset-names:
0343           items:
0344             - const: du.0
0345 
0346         ports:
0347           properties:
0348             port@0:
0349               description: DPAD 0
0350             port@1:
0351               description: DPAD 1
0352             port@2:
0353               description: LVDS 0
0354             # port@3 is DVENC, not supported yet
0355             port@3: false
0356 
0357           required:
0358             - port@0
0359             - port@1
0360             - port@2
0361 
0362       required:
0363         - clock-names
0364         - interrupts
0365         - resets
0366         - reset-names
0367 
0368   - if:
0369       properties:
0370         compatible:
0371           contains:
0372             enum:
0373               - renesas,du-r8a7742
0374               - renesas,du-r8a7790
0375     then:
0376       properties:
0377         clocks:
0378           minItems: 3
0379           items:
0380             - description: Functional clock for DU0
0381             - description: Functional clock for DU1
0382             - description: Functional clock for DU2
0383             - description: DU_DOTCLKIN0 input clock
0384             - description: DU_DOTCLKIN1 input clock
0385             - description: DU_DOTCLKIN2 input clock
0386 
0387         clock-names:
0388           minItems: 3
0389           items:
0390             - const: du.0
0391             - const: du.1
0392             - const: du.2
0393             - pattern: '^dclkin\.[012]$'
0394             - pattern: '^dclkin\.[012]$'
0395             - pattern: '^dclkin\.[012]$'
0396 
0397         interrupts:
0398           maxItems: 3
0399 
0400         resets:
0401           maxItems: 1
0402 
0403         reset-names:
0404           items:
0405             - const: du.0
0406 
0407         ports:
0408           properties:
0409             port@0:
0410               description: DPAD 0
0411             port@1:
0412               description: LVDS 0
0413             port@2:
0414               description: LVDS 1
0415             # port@3 is TCON, not supported yet
0416             port@3: false
0417 
0418           required:
0419             - port@0
0420             - port@1
0421             - port@2
0422 
0423       required:
0424         - clock-names
0425         - interrupts
0426         - resets
0427         - reset-names
0428 
0429   - if:
0430       properties:
0431         compatible:
0432           contains:
0433             enum:
0434               - renesas,du-r8a7795
0435     then:
0436       properties:
0437         clocks:
0438           minItems: 4
0439           items:
0440             - description: Functional clock for DU0
0441             - description: Functional clock for DU1
0442             - description: Functional clock for DU2
0443             - description: Functional clock for DU4
0444             - description: DU_DOTCLKIN0 input clock
0445             - description: DU_DOTCLKIN1 input clock
0446             - description: DU_DOTCLKIN2 input clock
0447             - description: DU_DOTCLKIN3 input clock
0448 
0449         clock-names:
0450           minItems: 4
0451           items:
0452             - const: du.0
0453             - const: du.1
0454             - const: du.2
0455             - const: du.3
0456             - pattern: '^dclkin\.[0123]$'
0457             - pattern: '^dclkin\.[0123]$'
0458             - pattern: '^dclkin\.[0123]$'
0459             - pattern: '^dclkin\.[0123]$'
0460 
0461         interrupts:
0462           maxItems: 4
0463 
0464         resets:
0465           maxItems: 2
0466 
0467         reset-names:
0468           items:
0469             - const: du.0
0470             - const: du.2
0471 
0472         ports:
0473           properties:
0474             port@0:
0475               description: DPAD 0
0476             port@1:
0477               description: HDMI 0
0478             port@2:
0479               description: HDMI 1
0480             port@3:
0481               description: LVDS 0
0482 
0483           required:
0484             - port@0
0485             - port@1
0486             - port@2
0487             - port@3
0488 
0489         renesas,cmms:
0490           minItems: 4
0491 
0492         renesas,vsps:
0493           minItems: 4
0494 
0495       required:
0496         - clock-names
0497         - interrupts
0498         - resets
0499         - reset-names
0500         - renesas,vsps
0501 
0502   - if:
0503       properties:
0504         compatible:
0505           contains:
0506             enum:
0507               - renesas,du-r8a774a1
0508               - renesas,du-r8a7796
0509               - renesas,du-r8a77961
0510     then:
0511       properties:
0512         clocks:
0513           minItems: 3
0514           items:
0515             - description: Functional clock for DU0
0516             - description: Functional clock for DU1
0517             - description: Functional clock for DU2
0518             - description: DU_DOTCLKIN0 input clock
0519             - description: DU_DOTCLKIN1 input clock
0520             - description: DU_DOTCLKIN2 input clock
0521 
0522         clock-names:
0523           minItems: 3
0524           items:
0525             - const: du.0
0526             - const: du.1
0527             - const: du.2
0528             - pattern: '^dclkin\.[012]$'
0529             - pattern: '^dclkin\.[012]$'
0530             - pattern: '^dclkin\.[012]$'
0531 
0532         interrupts:
0533           maxItems: 3
0534 
0535         resets:
0536           maxItems: 2
0537 
0538         reset-names:
0539           items:
0540             - const: du.0
0541             - const: du.2
0542 
0543         ports:
0544           properties:
0545             port@0:
0546               description: DPAD 0
0547             port@1:
0548               description: HDMI 0
0549             port@2:
0550               description: LVDS 0
0551             port@3: false
0552 
0553           required:
0554             - port@0
0555             - port@1
0556             - port@2
0557 
0558         renesas,cmms:
0559           minItems: 3
0560 
0561         renesas,vsps:
0562           minItems: 3
0563 
0564       required:
0565         - clock-names
0566         - interrupts
0567         - resets
0568         - reset-names
0569         - renesas,vsps
0570 
0571   - if:
0572       properties:
0573         compatible:
0574           contains:
0575             enum:
0576               - renesas,du-r8a774b1
0577               - renesas,du-r8a774e1
0578               - renesas,du-r8a77965
0579     then:
0580       properties:
0581         clocks:
0582           minItems: 3
0583           items:
0584             - description: Functional clock for DU0
0585             - description: Functional clock for DU1
0586             - description: Functional clock for DU3
0587             - description: DU_DOTCLKIN0 input clock
0588             - description: DU_DOTCLKIN1 input clock
0589             - description: DU_DOTCLKIN3 input clock
0590 
0591         clock-names:
0592           minItems: 3
0593           items:
0594             - const: du.0
0595             - const: du.1
0596             - const: du.3
0597             - pattern: '^dclkin\.[013]$'
0598             - pattern: '^dclkin\.[013]$'
0599             - pattern: '^dclkin\.[013]$'
0600 
0601         interrupts:
0602           maxItems: 3
0603 
0604         resets:
0605           maxItems: 2
0606 
0607         reset-names:
0608           items:
0609             - const: du.0
0610             - const: du.3
0611 
0612         ports:
0613           properties:
0614             port@0:
0615               description: DPAD 0
0616             port@1:
0617               description: HDMI 0
0618             port@2:
0619               description: LVDS 0
0620             port@3: false
0621 
0622           required:
0623             - port@0
0624             - port@1
0625             - port@2
0626 
0627         renesas,cmms:
0628           minItems: 3
0629 
0630         renesas,vsps:
0631           minItems: 3
0632 
0633       required:
0634         - clock-names
0635         - interrupts
0636         - resets
0637         - reset-names
0638         - renesas,vsps
0639 
0640   - if:
0641       properties:
0642         compatible:
0643           contains:
0644             enum:
0645               - renesas,du-r8a77970
0646               - renesas,du-r8a77980
0647     then:
0648       properties:
0649         clocks:
0650           minItems: 1
0651           items:
0652             - description: Functional clock for DU0
0653             - description: DU_DOTCLKIN0 input clock
0654 
0655         clock-names:
0656           minItems: 1
0657           items:
0658             - const: du.0
0659             - const: dclkin.0
0660 
0661         interrupts:
0662           maxItems: 1
0663 
0664         resets:
0665           maxItems: 1
0666 
0667         reset-names:
0668           items:
0669             - const: du.0
0670 
0671         ports:
0672           properties:
0673             port@0:
0674               description: DPAD 0
0675             port@1:
0676               description: LVDS 0
0677             port@2: false
0678             port@3: false
0679 
0680           required:
0681             - port@0
0682             - port@1
0683 
0684         renesas,vsps:
0685           minItems: 1
0686 
0687       required:
0688         - clock-names
0689         - interrupts
0690         - resets
0691         - reset-names
0692         - renesas,vsps
0693 
0694   - if:
0695       properties:
0696         compatible:
0697           contains:
0698             enum:
0699               - renesas,du-r8a774c0
0700               - renesas,du-r8a77990
0701               - renesas,du-r8a77995
0702     then:
0703       properties:
0704         clocks:
0705           minItems: 2
0706           items:
0707             - description: Functional clock for DU0
0708             - description: Functional clock for DU1
0709             - description: DU_DOTCLKIN0 input clock
0710             - description: DU_DOTCLKIN1 input clock
0711 
0712         clock-names:
0713           minItems: 2
0714           items:
0715             - const: du.0
0716             - const: du.1
0717             - pattern: '^dclkin\.[01]$'
0718             - pattern: '^dclkin\.[01]$'
0719 
0720         interrupts:
0721           maxItems: 2
0722 
0723         resets:
0724           maxItems: 1
0725 
0726         reset-names:
0727           items:
0728             - const: du.0
0729 
0730         ports:
0731           properties:
0732             port@0:
0733               description: DPAD 0
0734             port@1:
0735               description: LVDS 0
0736             port@2:
0737               description: LVDS 1
0738             # port@3 is TCON, not supported yet
0739             port@3: false
0740 
0741           required:
0742             - port@0
0743             - port@1
0744             - port@2
0745 
0746         renesas,cmms:
0747           minItems: 2
0748 
0749         renesas,vsps:
0750           minItems: 2
0751 
0752       required:
0753         - clock-names
0754         - interrupts
0755         - resets
0756         - reset-names
0757         - renesas,vsps
0758 
0759   - if:
0760       properties:
0761         compatible:
0762           contains:
0763             enum:
0764               - renesas,du-r8a779a0
0765     then:
0766       properties:
0767         clocks:
0768           items:
0769             - description: Functional clock
0770 
0771         clock-names:
0772           items:
0773             - const: du.0
0774 
0775         interrupts:
0776           maxItems: 2
0777 
0778         resets:
0779           maxItems: 1
0780 
0781         reset-names:
0782           items:
0783             - const: du.0
0784 
0785         ports:
0786           properties:
0787             port@0:
0788               description: DSI 0
0789             port@1:
0790               description: DSI 1
0791             port@2: false
0792             port@3: false
0793 
0794           required:
0795             - port@0
0796             - port@1
0797 
0798         renesas,vsps:
0799           minItems: 2
0800 
0801       required:
0802         - clock-names
0803         - interrupts
0804         - resets
0805         - reset-names
0806         - renesas,vsps
0807 
0808 additionalProperties: false
0809 
0810 examples:
0811   # R-Car H3 ES2.0 DU
0812   - |
0813     #include <dt-bindings/clock/renesas-cpg-mssr.h>
0814     #include <dt-bindings/interrupt-controller/arm-gic.h>
0815 
0816     display@feb00000 {
0817         compatible = "renesas,du-r8a7795";
0818         reg = <0xfeb00000 0x80000>;
0819         interrupts = <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>,
0820                      <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>,
0821                      <GIC_SPI 269 IRQ_TYPE_LEVEL_HIGH>,
0822                      <GIC_SPI 270 IRQ_TYPE_LEVEL_HIGH>;
0823         clocks = <&cpg CPG_MOD 724>,
0824                  <&cpg CPG_MOD 723>,
0825                  <&cpg CPG_MOD 722>,
0826                  <&cpg CPG_MOD 721>;
0827         clock-names = "du.0", "du.1", "du.2", "du.3";
0828         resets = <&cpg 724>, <&cpg 722>;
0829         reset-names = "du.0", "du.2";
0830 
0831         renesas,cmms = <&cmm0>, <&cmm1>, <&cmm2>, <&cmm3>;
0832         renesas,vsps = <&vspd0 0>, <&vspd1 0>, <&vspd2 0>, <&vspd0 1>;
0833 
0834         ports {
0835             #address-cells = <1>;
0836             #size-cells = <0>;
0837 
0838             port@0 {
0839                 reg = <0>;
0840                 endpoint {
0841                     remote-endpoint = <&adv7123_in>;
0842                 };
0843             };
0844             port@1 {
0845                 reg = <1>;
0846                 endpoint {
0847                     remote-endpoint = <&dw_hdmi0_in>;
0848                 };
0849             };
0850             port@2 {
0851                 reg = <2>;
0852                 endpoint {
0853                     remote-endpoint = <&dw_hdmi1_in>;
0854                 };
0855             };
0856             port@3 {
0857                 reg = <3>;
0858                 endpoint {
0859                     remote-endpoint = <&lvds0_in>;
0860                 };
0861             };
0862         };
0863     };
0864 
0865 ...