18c2ecf20Sopenharmony_ci* Renesas R-Car Display Unit (DU)
28c2ecf20Sopenharmony_ci
38c2ecf20Sopenharmony_ciRequired Properties:
48c2ecf20Sopenharmony_ci
58c2ecf20Sopenharmony_ci  - compatible: must be one of the following.
68c2ecf20Sopenharmony_ci    - "renesas,du-r8a7742" for R8A7742 (RZ/G1H) compatible DU
78c2ecf20Sopenharmony_ci    - "renesas,du-r8a7743" for R8A7743 (RZ/G1M) compatible DU
88c2ecf20Sopenharmony_ci    - "renesas,du-r8a7744" for R8A7744 (RZ/G1N) compatible DU
98c2ecf20Sopenharmony_ci    - "renesas,du-r8a7745" for R8A7745 (RZ/G1E) compatible DU
108c2ecf20Sopenharmony_ci    - "renesas,du-r8a77470" for R8A77470 (RZ/G1C) compatible DU
118c2ecf20Sopenharmony_ci    - "renesas,du-r8a774a1" for R8A774A1 (RZ/G2M) compatible DU
128c2ecf20Sopenharmony_ci    - "renesas,du-r8a774b1" for R8A774B1 (RZ/G2N) compatible DU
138c2ecf20Sopenharmony_ci    - "renesas,du-r8a774c0" for R8A774C0 (RZ/G2E) compatible DU
148c2ecf20Sopenharmony_ci    - "renesas,du-r8a774e1" for R8A774E1 (RZ/G2H) compatible DU
158c2ecf20Sopenharmony_ci    - "renesas,du-r8a7779" for R8A7779 (R-Car H1) compatible DU
168c2ecf20Sopenharmony_ci    - "renesas,du-r8a7790" for R8A7790 (R-Car H2) compatible DU
178c2ecf20Sopenharmony_ci    - "renesas,du-r8a7791" for R8A7791 (R-Car M2-W) compatible DU
188c2ecf20Sopenharmony_ci    - "renesas,du-r8a7792" for R8A7792 (R-Car V2H) compatible DU
198c2ecf20Sopenharmony_ci    - "renesas,du-r8a7793" for R8A7793 (R-Car M2-N) compatible DU
208c2ecf20Sopenharmony_ci    - "renesas,du-r8a7794" for R8A7794 (R-Car E2) compatible DU
218c2ecf20Sopenharmony_ci    - "renesas,du-r8a7795" for R8A7795 (R-Car H3) compatible DU
228c2ecf20Sopenharmony_ci    - "renesas,du-r8a7796" for R8A7796 (R-Car M3-W) compatible DU
238c2ecf20Sopenharmony_ci    - "renesas,du-r8a77961" for R8A77961 (R-Car M3-W+) compatible DU
248c2ecf20Sopenharmony_ci    - "renesas,du-r8a77965" for R8A77965 (R-Car M3-N) compatible DU
258c2ecf20Sopenharmony_ci    - "renesas,du-r8a77970" for R8A77970 (R-Car V3M) compatible DU
268c2ecf20Sopenharmony_ci    - "renesas,du-r8a77980" for R8A77980 (R-Car V3H) compatible DU
278c2ecf20Sopenharmony_ci    - "renesas,du-r8a77990" for R8A77990 (R-Car E3) compatible DU
288c2ecf20Sopenharmony_ci    - "renesas,du-r8a77995" for R8A77995 (R-Car D3) compatible DU
298c2ecf20Sopenharmony_ci
308c2ecf20Sopenharmony_ci  - reg: the memory-mapped I/O registers base address and length
318c2ecf20Sopenharmony_ci
328c2ecf20Sopenharmony_ci  - interrupts: Interrupt specifiers for the DU interrupts.
338c2ecf20Sopenharmony_ci
348c2ecf20Sopenharmony_ci  - clocks: A list of phandles + clock-specifier pairs, one for each entry in
358c2ecf20Sopenharmony_ci    the clock-names property.
368c2ecf20Sopenharmony_ci  - clock-names: Name of the clocks. This property is model-dependent.
378c2ecf20Sopenharmony_ci    - R8A7779 uses a single functional clock. The clock doesn't need to be
388c2ecf20Sopenharmony_ci      named.
398c2ecf20Sopenharmony_ci    - All other DU instances use one functional clock per channel The
408c2ecf20Sopenharmony_ci      functional clocks must be named "du.x" with "x" being the channel
418c2ecf20Sopenharmony_ci      numerical index.
428c2ecf20Sopenharmony_ci    - In addition to the functional clocks, all DU versions also support
438c2ecf20Sopenharmony_ci      externally supplied pixel clocks. Those clocks are optional. When
448c2ecf20Sopenharmony_ci      supplied they must be named "dclkin.x" with "x" being the input clock
458c2ecf20Sopenharmony_ci      numerical index.
468c2ecf20Sopenharmony_ci
478c2ecf20Sopenharmony_ci  - renesas,cmms: A list of phandles to the CMM instances present in the SoC,
488c2ecf20Sopenharmony_ci    one for each available DU channel. The property shall not be specified for
498c2ecf20Sopenharmony_ci    SoCs that do not provide any CMM (such as V3M and V3H).
508c2ecf20Sopenharmony_ci
518c2ecf20Sopenharmony_ci  - renesas,vsps: A list of phandle and channel index tuples to the VSPs that
528c2ecf20Sopenharmony_ci    handle the memory interfaces for the DU channels. The phandle identifies the
538c2ecf20Sopenharmony_ci    VSP instance that serves the DU channel, and the channel index identifies
548c2ecf20Sopenharmony_ci    the LIF instance in that VSP.
558c2ecf20Sopenharmony_ci
568c2ecf20Sopenharmony_ciOptional properties:
578c2ecf20Sopenharmony_ci  - resets: A list of phandle + reset-specifier pairs, one for each entry in
588c2ecf20Sopenharmony_ci    the reset-names property.
598c2ecf20Sopenharmony_ci  - reset-names: Names of the resets. This property is model-dependent.
608c2ecf20Sopenharmony_ci    - All but R8A7779 use one reset for a group of one or more successive
618c2ecf20Sopenharmony_ci      channels. The resets must be named "du.x" with "x" being the numerical
628c2ecf20Sopenharmony_ci      index of the lowest channel in the group.
638c2ecf20Sopenharmony_ci
648c2ecf20Sopenharmony_ciRequired nodes:
658c2ecf20Sopenharmony_ci
668c2ecf20Sopenharmony_ciThe connections to the DU output video ports are modeled using the OF graph
678c2ecf20Sopenharmony_cibindings specified in Documentation/devicetree/bindings/graph.txt.
688c2ecf20Sopenharmony_ci
698c2ecf20Sopenharmony_ciThe following table lists for each supported model the port number
708c2ecf20Sopenharmony_cicorresponding to each DU output.
718c2ecf20Sopenharmony_ci
728c2ecf20Sopenharmony_ci                        Port0          Port1          Port2          Port3
738c2ecf20Sopenharmony_ci-----------------------------------------------------------------------------
748c2ecf20Sopenharmony_ci R8A7742 (RZ/G1H)       DPAD 0         LVDS 0         LVDS 1         -
758c2ecf20Sopenharmony_ci R8A7743 (RZ/G1M)       DPAD 0         LVDS 0         -              -
768c2ecf20Sopenharmony_ci R8A7744 (RZ/G1N)       DPAD 0         LVDS 0         -              -
778c2ecf20Sopenharmony_ci R8A7745 (RZ/G1E)       DPAD 0         DPAD 1         -              -
788c2ecf20Sopenharmony_ci R8A77470 (RZ/G1C)      DPAD 0         DPAD 1         LVDS 0         -
798c2ecf20Sopenharmony_ci R8A774A1 (RZ/G2M)      DPAD 0         HDMI 0         LVDS 0         -
808c2ecf20Sopenharmony_ci R8A774B1 (RZ/G2N)      DPAD 0         HDMI 0         LVDS 0         -
818c2ecf20Sopenharmony_ci R8A774C0 (RZ/G2E)      DPAD 0         LVDS 0         LVDS 1         -
828c2ecf20Sopenharmony_ci R8A774E1 (RZ/G2H)      DPAD 0         HDMI 0         LVDS 0         -
838c2ecf20Sopenharmony_ci R8A7779 (R-Car H1)     DPAD 0         DPAD 1         -              -
848c2ecf20Sopenharmony_ci R8A7790 (R-Car H2)     DPAD 0         LVDS 0         LVDS 1         -
858c2ecf20Sopenharmony_ci R8A7791 (R-Car M2-W)   DPAD 0         LVDS 0         -              -
868c2ecf20Sopenharmony_ci R8A7792 (R-Car V2H)    DPAD 0         DPAD 1         -              -
878c2ecf20Sopenharmony_ci R8A7793 (R-Car M2-N)   DPAD 0         LVDS 0         -              -
888c2ecf20Sopenharmony_ci R8A7794 (R-Car E2)     DPAD 0         DPAD 1         -              -
898c2ecf20Sopenharmony_ci R8A7795 (R-Car H3)     DPAD 0         HDMI 0         HDMI 1         LVDS 0
908c2ecf20Sopenharmony_ci R8A7796 (R-Car M3-W)   DPAD 0         HDMI 0         LVDS 0         -
918c2ecf20Sopenharmony_ci R8A77961 (R-Car M3-W+) DPAD 0         HDMI 0         LVDS 0         -
928c2ecf20Sopenharmony_ci R8A77965 (R-Car M3-N)  DPAD 0         HDMI 0         LVDS 0         -
938c2ecf20Sopenharmony_ci R8A77970 (R-Car V3M)   DPAD 0         LVDS 0         -              -
948c2ecf20Sopenharmony_ci R8A77980 (R-Car V3H)   DPAD 0         LVDS 0         -              -
958c2ecf20Sopenharmony_ci R8A77990 (R-Car E3)    DPAD 0         LVDS 0         LVDS 1         -
968c2ecf20Sopenharmony_ci R8A77995 (R-Car D3)    DPAD 0         LVDS 0         LVDS 1         -
978c2ecf20Sopenharmony_ci
988c2ecf20Sopenharmony_ci
998c2ecf20Sopenharmony_ciExample: R8A7795 (R-Car H3) ES2.0 DU
1008c2ecf20Sopenharmony_ci
1018c2ecf20Sopenharmony_ci	du: display@feb00000 {
1028c2ecf20Sopenharmony_ci		compatible = "renesas,du-r8a7795";
1038c2ecf20Sopenharmony_ci		reg = <0 0xfeb00000 0 0x80000>;
1048c2ecf20Sopenharmony_ci		interrupts = <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>,
1058c2ecf20Sopenharmony_ci			     <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>,
1068c2ecf20Sopenharmony_ci			     <GIC_SPI 269 IRQ_TYPE_LEVEL_HIGH>,
1078c2ecf20Sopenharmony_ci			     <GIC_SPI 270 IRQ_TYPE_LEVEL_HIGH>;
1088c2ecf20Sopenharmony_ci		clocks = <&cpg CPG_MOD 724>,
1098c2ecf20Sopenharmony_ci			 <&cpg CPG_MOD 723>,
1108c2ecf20Sopenharmony_ci			 <&cpg CPG_MOD 722>,
1118c2ecf20Sopenharmony_ci			 <&cpg CPG_MOD 721>;
1128c2ecf20Sopenharmony_ci		clock-names = "du.0", "du.1", "du.2", "du.3";
1138c2ecf20Sopenharmony_ci		resets = <&cpg 724>, <&cpg 722>;
1148c2ecf20Sopenharmony_ci		reset-names = "du.0", "du.2";
1158c2ecf20Sopenharmony_ci		renesas,cmms = <&cmm0>, <&cmm1>, <&cmm2>, <&cmm3>;
1168c2ecf20Sopenharmony_ci		renesas,vsps = <&vspd0 0>, <&vspd1 0>, <&vspd2 0>, <&vspd0 1>;
1178c2ecf20Sopenharmony_ci
1188c2ecf20Sopenharmony_ci		ports {
1198c2ecf20Sopenharmony_ci			#address-cells = <1>;
1208c2ecf20Sopenharmony_ci			#size-cells = <0>;
1218c2ecf20Sopenharmony_ci
1228c2ecf20Sopenharmony_ci			port@0 {
1238c2ecf20Sopenharmony_ci				reg = <0>;
1248c2ecf20Sopenharmony_ci				du_out_rgb: endpoint {
1258c2ecf20Sopenharmony_ci				};
1268c2ecf20Sopenharmony_ci			};
1278c2ecf20Sopenharmony_ci			port@1 {
1288c2ecf20Sopenharmony_ci				reg = <1>;
1298c2ecf20Sopenharmony_ci				du_out_hdmi0: endpoint {
1308c2ecf20Sopenharmony_ci					remote-endpoint = <&dw_hdmi0_in>;
1318c2ecf20Sopenharmony_ci				};
1328c2ecf20Sopenharmony_ci			};
1338c2ecf20Sopenharmony_ci			port@2 {
1348c2ecf20Sopenharmony_ci				reg = <2>;
1358c2ecf20Sopenharmony_ci				du_out_hdmi1: endpoint {
1368c2ecf20Sopenharmony_ci					remote-endpoint = <&dw_hdmi1_in>;
1378c2ecf20Sopenharmony_ci				};
1388c2ecf20Sopenharmony_ci			};
1398c2ecf20Sopenharmony_ci			port@3 {
1408c2ecf20Sopenharmony_ci				reg = <3>;
1418c2ecf20Sopenharmony_ci				du_out_lvds0: endpoint {
1428c2ecf20Sopenharmony_ci				};
1438c2ecf20Sopenharmony_ci			};
1448c2ecf20Sopenharmony_ci		};
1458c2ecf20Sopenharmony_ci	};
146