xref: /OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/display/renesas,du.txt (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun* Renesas R-Car Display Unit (DU)
2*4882a593Smuzhiyun
3*4882a593SmuzhiyunRequired Properties:
4*4882a593Smuzhiyun
5*4882a593Smuzhiyun  - compatible: must be one of the following.
6*4882a593Smuzhiyun    - "renesas,du-r8a7742" for R8A7742 (RZ/G1H) compatible DU
7*4882a593Smuzhiyun    - "renesas,du-r8a7743" for R8A7743 (RZ/G1M) compatible DU
8*4882a593Smuzhiyun    - "renesas,du-r8a7744" for R8A7744 (RZ/G1N) compatible DU
9*4882a593Smuzhiyun    - "renesas,du-r8a7745" for R8A7745 (RZ/G1E) compatible DU
10*4882a593Smuzhiyun    - "renesas,du-r8a77470" for R8A77470 (RZ/G1C) compatible DU
11*4882a593Smuzhiyun    - "renesas,du-r8a774a1" for R8A774A1 (RZ/G2M) compatible DU
12*4882a593Smuzhiyun    - "renesas,du-r8a774b1" for R8A774B1 (RZ/G2N) compatible DU
13*4882a593Smuzhiyun    - "renesas,du-r8a774c0" for R8A774C0 (RZ/G2E) compatible DU
14*4882a593Smuzhiyun    - "renesas,du-r8a774e1" for R8A774E1 (RZ/G2H) compatible DU
15*4882a593Smuzhiyun    - "renesas,du-r8a7779" for R8A7779 (R-Car H1) compatible DU
16*4882a593Smuzhiyun    - "renesas,du-r8a7790" for R8A7790 (R-Car H2) compatible DU
17*4882a593Smuzhiyun    - "renesas,du-r8a7791" for R8A7791 (R-Car M2-W) compatible DU
18*4882a593Smuzhiyun    - "renesas,du-r8a7792" for R8A7792 (R-Car V2H) compatible DU
19*4882a593Smuzhiyun    - "renesas,du-r8a7793" for R8A7793 (R-Car M2-N) compatible DU
20*4882a593Smuzhiyun    - "renesas,du-r8a7794" for R8A7794 (R-Car E2) compatible DU
21*4882a593Smuzhiyun    - "renesas,du-r8a7795" for R8A7795 (R-Car H3) compatible DU
22*4882a593Smuzhiyun    - "renesas,du-r8a7796" for R8A7796 (R-Car M3-W) compatible DU
23*4882a593Smuzhiyun    - "renesas,du-r8a77961" for R8A77961 (R-Car M3-W+) compatible DU
24*4882a593Smuzhiyun    - "renesas,du-r8a77965" for R8A77965 (R-Car M3-N) compatible DU
25*4882a593Smuzhiyun    - "renesas,du-r8a77970" for R8A77970 (R-Car V3M) compatible DU
26*4882a593Smuzhiyun    - "renesas,du-r8a77980" for R8A77980 (R-Car V3H) compatible DU
27*4882a593Smuzhiyun    - "renesas,du-r8a77990" for R8A77990 (R-Car E3) compatible DU
28*4882a593Smuzhiyun    - "renesas,du-r8a77995" for R8A77995 (R-Car D3) compatible DU
29*4882a593Smuzhiyun
30*4882a593Smuzhiyun  - reg: the memory-mapped I/O registers base address and length
31*4882a593Smuzhiyun
32*4882a593Smuzhiyun  - interrupts: Interrupt specifiers for the DU interrupts.
33*4882a593Smuzhiyun
34*4882a593Smuzhiyun  - clocks: A list of phandles + clock-specifier pairs, one for each entry in
35*4882a593Smuzhiyun    the clock-names property.
36*4882a593Smuzhiyun  - clock-names: Name of the clocks. This property is model-dependent.
37*4882a593Smuzhiyun    - R8A7779 uses a single functional clock. The clock doesn't need to be
38*4882a593Smuzhiyun      named.
39*4882a593Smuzhiyun    - All other DU instances use one functional clock per channel The
40*4882a593Smuzhiyun      functional clocks must be named "du.x" with "x" being the channel
41*4882a593Smuzhiyun      numerical index.
42*4882a593Smuzhiyun    - In addition to the functional clocks, all DU versions also support
43*4882a593Smuzhiyun      externally supplied pixel clocks. Those clocks are optional. When
44*4882a593Smuzhiyun      supplied they must be named "dclkin.x" with "x" being the input clock
45*4882a593Smuzhiyun      numerical index.
46*4882a593Smuzhiyun
47*4882a593Smuzhiyun  - renesas,cmms: A list of phandles to the CMM instances present in the SoC,
48*4882a593Smuzhiyun    one for each available DU channel. The property shall not be specified for
49*4882a593Smuzhiyun    SoCs that do not provide any CMM (such as V3M and V3H).
50*4882a593Smuzhiyun
51*4882a593Smuzhiyun  - renesas,vsps: A list of phandle and channel index tuples to the VSPs that
52*4882a593Smuzhiyun    handle the memory interfaces for the DU channels. The phandle identifies the
53*4882a593Smuzhiyun    VSP instance that serves the DU channel, and the channel index identifies
54*4882a593Smuzhiyun    the LIF instance in that VSP.
55*4882a593Smuzhiyun
56*4882a593SmuzhiyunOptional properties:
57*4882a593Smuzhiyun  - resets: A list of phandle + reset-specifier pairs, one for each entry in
58*4882a593Smuzhiyun    the reset-names property.
59*4882a593Smuzhiyun  - reset-names: Names of the resets. This property is model-dependent.
60*4882a593Smuzhiyun    - All but R8A7779 use one reset for a group of one or more successive
61*4882a593Smuzhiyun      channels. The resets must be named "du.x" with "x" being the numerical
62*4882a593Smuzhiyun      index of the lowest channel in the group.
63*4882a593Smuzhiyun
64*4882a593SmuzhiyunRequired nodes:
65*4882a593Smuzhiyun
66*4882a593SmuzhiyunThe connections to the DU output video ports are modeled using the OF graph
67*4882a593Smuzhiyunbindings specified in Documentation/devicetree/bindings/graph.txt.
68*4882a593Smuzhiyun
69*4882a593SmuzhiyunThe following table lists for each supported model the port number
70*4882a593Smuzhiyuncorresponding to each DU output.
71*4882a593Smuzhiyun
72*4882a593Smuzhiyun                        Port0          Port1          Port2          Port3
73*4882a593Smuzhiyun-----------------------------------------------------------------------------
74*4882a593Smuzhiyun R8A7742 (RZ/G1H)       DPAD 0         LVDS 0         LVDS 1         -
75*4882a593Smuzhiyun R8A7743 (RZ/G1M)       DPAD 0         LVDS 0         -              -
76*4882a593Smuzhiyun R8A7744 (RZ/G1N)       DPAD 0         LVDS 0         -              -
77*4882a593Smuzhiyun R8A7745 (RZ/G1E)       DPAD 0         DPAD 1         -              -
78*4882a593Smuzhiyun R8A77470 (RZ/G1C)      DPAD 0         DPAD 1         LVDS 0         -
79*4882a593Smuzhiyun R8A774A1 (RZ/G2M)      DPAD 0         HDMI 0         LVDS 0         -
80*4882a593Smuzhiyun R8A774B1 (RZ/G2N)      DPAD 0         HDMI 0         LVDS 0         -
81*4882a593Smuzhiyun R8A774C0 (RZ/G2E)      DPAD 0         LVDS 0         LVDS 1         -
82*4882a593Smuzhiyun R8A774E1 (RZ/G2H)      DPAD 0         HDMI 0         LVDS 0         -
83*4882a593Smuzhiyun R8A7779 (R-Car H1)     DPAD 0         DPAD 1         -              -
84*4882a593Smuzhiyun R8A7790 (R-Car H2)     DPAD 0         LVDS 0         LVDS 1         -
85*4882a593Smuzhiyun R8A7791 (R-Car M2-W)   DPAD 0         LVDS 0         -              -
86*4882a593Smuzhiyun R8A7792 (R-Car V2H)    DPAD 0         DPAD 1         -              -
87*4882a593Smuzhiyun R8A7793 (R-Car M2-N)   DPAD 0         LVDS 0         -              -
88*4882a593Smuzhiyun R8A7794 (R-Car E2)     DPAD 0         DPAD 1         -              -
89*4882a593Smuzhiyun R8A7795 (R-Car H3)     DPAD 0         HDMI 0         HDMI 1         LVDS 0
90*4882a593Smuzhiyun R8A7796 (R-Car M3-W)   DPAD 0         HDMI 0         LVDS 0         -
91*4882a593Smuzhiyun R8A77961 (R-Car M3-W+) DPAD 0         HDMI 0         LVDS 0         -
92*4882a593Smuzhiyun R8A77965 (R-Car M3-N)  DPAD 0         HDMI 0         LVDS 0         -
93*4882a593Smuzhiyun R8A77970 (R-Car V3M)   DPAD 0         LVDS 0         -              -
94*4882a593Smuzhiyun R8A77980 (R-Car V3H)   DPAD 0         LVDS 0         -              -
95*4882a593Smuzhiyun R8A77990 (R-Car E3)    DPAD 0         LVDS 0         LVDS 1         -
96*4882a593Smuzhiyun R8A77995 (R-Car D3)    DPAD 0         LVDS 0         LVDS 1         -
97*4882a593Smuzhiyun
98*4882a593Smuzhiyun
99*4882a593SmuzhiyunExample: R8A7795 (R-Car H3) ES2.0 DU
100*4882a593Smuzhiyun
101*4882a593Smuzhiyun	du: display@feb00000 {
102*4882a593Smuzhiyun		compatible = "renesas,du-r8a7795";
103*4882a593Smuzhiyun		reg = <0 0xfeb00000 0 0x80000>;
104*4882a593Smuzhiyun		interrupts = <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>,
105*4882a593Smuzhiyun			     <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>,
106*4882a593Smuzhiyun			     <GIC_SPI 269 IRQ_TYPE_LEVEL_HIGH>,
107*4882a593Smuzhiyun			     <GIC_SPI 270 IRQ_TYPE_LEVEL_HIGH>;
108*4882a593Smuzhiyun		clocks = <&cpg CPG_MOD 724>,
109*4882a593Smuzhiyun			 <&cpg CPG_MOD 723>,
110*4882a593Smuzhiyun			 <&cpg CPG_MOD 722>,
111*4882a593Smuzhiyun			 <&cpg CPG_MOD 721>;
112*4882a593Smuzhiyun		clock-names = "du.0", "du.1", "du.2", "du.3";
113*4882a593Smuzhiyun		resets = <&cpg 724>, <&cpg 722>;
114*4882a593Smuzhiyun		reset-names = "du.0", "du.2";
115*4882a593Smuzhiyun		renesas,cmms = <&cmm0>, <&cmm1>, <&cmm2>, <&cmm3>;
116*4882a593Smuzhiyun		renesas,vsps = <&vspd0 0>, <&vspd1 0>, <&vspd2 0>, <&vspd0 1>;
117*4882a593Smuzhiyun
118*4882a593Smuzhiyun		ports {
119*4882a593Smuzhiyun			#address-cells = <1>;
120*4882a593Smuzhiyun			#size-cells = <0>;
121*4882a593Smuzhiyun
122*4882a593Smuzhiyun			port@0 {
123*4882a593Smuzhiyun				reg = <0>;
124*4882a593Smuzhiyun				du_out_rgb: endpoint {
125*4882a593Smuzhiyun				};
126*4882a593Smuzhiyun			};
127*4882a593Smuzhiyun			port@1 {
128*4882a593Smuzhiyun				reg = <1>;
129*4882a593Smuzhiyun				du_out_hdmi0: endpoint {
130*4882a593Smuzhiyun					remote-endpoint = <&dw_hdmi0_in>;
131*4882a593Smuzhiyun				};
132*4882a593Smuzhiyun			};
133*4882a593Smuzhiyun			port@2 {
134*4882a593Smuzhiyun				reg = <2>;
135*4882a593Smuzhiyun				du_out_hdmi1: endpoint {
136*4882a593Smuzhiyun					remote-endpoint = <&dw_hdmi1_in>;
137*4882a593Smuzhiyun				};
138*4882a593Smuzhiyun			};
139*4882a593Smuzhiyun			port@3 {
140*4882a593Smuzhiyun				reg = <3>;
141*4882a593Smuzhiyun				du_out_lvds0: endpoint {
142*4882a593Smuzhiyun				};
143*4882a593Smuzhiyun			};
144*4882a593Smuzhiyun		};
145*4882a593Smuzhiyun	};
146