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
7 title: Renesas R-Car Display Unit (DU)
8
9 maintainers:
10 - Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
11
12 description: |
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
16 properties:
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
95 required:
96 - compatible
97 - reg
98 - clocks
99 - interrupts
100 - ports
101
102 allOf:
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
808 additionalProperties: false
809
810 examples:
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 ...
Cache object: 5e494ceb8afbfb7f779f19e83f9649b9
|