1 # SPDX-License-Identifier: GPL-2.0-only
2 # Copyright (C) 2020 Renesas Electronics Corp.
3 %YAML 1.2
4 ---
5 $id: http://devicetree.org/schemas/media/renesas,vin.yaml#
6 $schema: http://devicetree.org/meta-schemas/core.yaml#
7
8 title: Renesas R-Car Video Input (VIN)
9
10 maintainers:
11 - Niklas Söderlund <niklas.soderlund@ragnatech.se>
12
13 description:
14 The R-Car Video Input (VIN) device provides video input capabilities for the
15 Renesas R-Car family of devices.
16
17 Each VIN instance has a single parallel input that supports RGB and YUV video,
18 with both external synchronization and BT.656 synchronization for the latter.
19 Depending on the instance the VIN input is connected to external SoC pins, or
20 on Gen3 and RZ/G2 platforms to a CSI-2 receiver.
21
22 properties:
23 compatible:
24 oneOf:
25 - items:
26 - enum:
27 - renesas,vin-r8a7742 # RZ/G1H
28 - renesas,vin-r8a7743 # RZ/G1M
29 - renesas,vin-r8a7744 # RZ/G1N
30 - renesas,vin-r8a7745 # RZ/G1E
31 - renesas,vin-r8a77470 # RZ/G1C
32 - renesas,vin-r8a7790 # R-Car H2
33 - renesas,vin-r8a7791 # R-Car M2-W
34 - renesas,vin-r8a7792 # R-Car V2H
35 - renesas,vin-r8a7793 # R-Car M2-N
36 - renesas,vin-r8a7794 # R-Car E2
37 - const: renesas,rcar-gen2-vin # Generic R-Car Gen2 or RZ/G1
38
39 - items:
40 - enum:
41 - renesas,vin-r8a774a1 # RZ/G2M
42 - renesas,vin-r8a774b1 # RZ/G2N
43 - renesas,vin-r8a774c0 # RZ/G2E
44 - renesas,vin-r8a774e1 # RZ/G2H
45 - renesas,vin-r8a7778 # R-Car M1
46 - renesas,vin-r8a7779 # R-Car H1
47 - renesas,vin-r8a7795 # R-Car H3
48 - renesas,vin-r8a7796 # R-Car M3-W
49 - renesas,vin-r8a77961 # R-Car M3-W+
50 - renesas,vin-r8a77965 # R-Car M3-N
51 - renesas,vin-r8a77970 # R-Car V3M
52 - renesas,vin-r8a77980 # R-Car V3H
53 - renesas,vin-r8a77990 # R-Car E3
54 - renesas,vin-r8a77995 # R-Car D3
55 - renesas,vin-r8a779a0 # R-Car V3U
56
57 reg:
58 maxItems: 1
59
60 interrupts:
61 maxItems: 1
62
63 clocks:
64 maxItems: 1
65
66 power-domains:
67 maxItems: 1
68
69 resets:
70 maxItems: 1
71
72 #The per-board settings for Gen2 and RZ/G1 platforms:
73 port:
74 $ref: /schemas/graph.yaml#/$defs/port-base
75 unevaluatedProperties: false
76 description:
77 A node containing a parallel input
78
79 properties:
80 endpoint:
81 $ref: video-interfaces.yaml#
82 unevaluatedProperties: false
83
84 properties:
85 hsync-active:
86 description:
87 If both HSYNC and VSYNC polarities are not specified, embedded
88 synchronization is selected.
89 default: 1
90
91 vsync-active:
92 description:
93 If both HSYNC and VSYNC polarities are not specified, embedded
94 synchronization is selected.
95 default: 1
96
97 field-active-even: true
98
99 bus-width: true
100
101 data-shift: true
102
103 data-enable-active:
104 description: Polarity of CLKENB signal
105 default: 1
106
107 pclk-sample: true
108
109 data-active: true
110
111 #The per-board settings for Gen3 and RZ/G2 platforms:
112 renesas,id:
113 description: VIN channel number
114 $ref: /schemas/types.yaml#/definitions/uint32
115 minimum: 0
116 maximum: 31
117
118 ports:
119 $ref: /schemas/graph.yaml#/properties/ports
120
121 properties:
122 port@0:
123 $ref: /schemas/graph.yaml#/$defs/port-base
124 unevaluatedProperties: false
125 description:
126 Input port node, single endpoint describing a parallel input source.
127
128 properties:
129 endpoint:
130 $ref: video-interfaces.yaml#
131 unevaluatedProperties: false
132
133 properties:
134 hsync-active:
135 description:
136 If both HSYNC and VSYNC polarities are not specified, embedded
137 synchronization is selected.
138 default: 1
139
140 vsync-active:
141 description:
142 If both HSYNC and VSYNC polarities are not specified, embedded
143 synchronization is selected.
144 default: 1
145
146 field-active-even: true
147
148 bus-width: true
149
150 data-shift: true
151
152 data-enable-active:
153 description: Polarity of CLKENB signal
154 default: 1
155
156 pclk-sample: true
157
158 data-active: true
159
160 port@1:
161 $ref: /schemas/graph.yaml#/properties/port
162 description:
163 Input port node, multiple endpoints describing all the R-Car CSI-2
164 modules connected the VIN.
165
166 properties:
167 endpoint@0:
168 $ref: /schemas/graph.yaml#/properties/endpoint
169 description: Endpoint connected to CSI20.
170
171 endpoint@1:
172 $ref: /schemas/graph.yaml#/properties/endpoint
173 description: Endpoint connected to CSI21.
174
175 endpoint@2:
176 $ref: /schemas/graph.yaml#/properties/endpoint
177 description: Endpoint connected to CSI40.
178
179 endpoint@3:
180 $ref: /schemas/graph.yaml#/properties/endpoint
181 description: Endpoint connected to CSI41.
182
183 anyOf:
184 - required:
185 - endpoint@0
186 - required:
187 - endpoint@1
188 - required:
189 - endpoint@2
190 - required:
191 - endpoint@3
192
193 port@2:
194 $ref: /schemas/graph.yaml#/properties/port
195 description:
196 Input port node, multiple endpoints describing all the R-Car ISP
197 modules connected the VIN.
198
199 properties:
200 endpoint@0:
201 $ref: /schemas/graph.yaml#/properties/endpoint
202 description: Endpoint connected to ISP0.
203
204 endpoint@1:
205 $ref: /schemas/graph.yaml#/properties/endpoint
206 description: Endpoint connected to ISP1.
207
208 endpoint@2:
209 $ref: /schemas/graph.yaml#/properties/endpoint
210 description: Endpoint connected to ISP2.
211
212 endpoint@3:
213 $ref: /schemas/graph.yaml#/properties/endpoint
214 description: Endpoint connected to ISP3.
215
216 required:
217 - compatible
218 - reg
219 - interrupts
220 - clocks
221 - power-domains
222
223 allOf:
224 - if:
225 not:
226 properties:
227 compatible:
228 contains:
229 enum:
230 - renesas,vin-r8a7778
231 - renesas,vin-r8a7779
232 then:
233 required:
234 - resets
235
236 - if:
237 properties:
238 compatible:
239 contains:
240 enum:
241 - renesas,vin-r8a7778
242 - renesas,vin-r8a7779
243 - renesas,rcar-gen2-vin
244 then:
245 required:
246 - port
247 else:
248 required:
249 - renesas,id
250 - ports
251
252 additionalProperties: false
253
254 examples:
255 # Device node example for Gen2 platform
256 - |
257 #include <dt-bindings/clock/r8a7790-cpg-mssr.h>
258 #include <dt-bindings/interrupt-controller/arm-gic.h>
259 #include <dt-bindings/power/r8a7790-sysc.h>
260
261 vin1: vin@e6ef1000 {
262 compatible = "renesas,vin-r8a7790",
263 "renesas,rcar-gen2-vin";
264 reg = <0xe6ef1000 0x1000>;
265 interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>;
266 clocks = <&cpg CPG_MOD 810>;
267 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
268 resets = <&cpg 810>;
269
270 port {
271 vin1ep0: endpoint {
272 remote-endpoint = <&adv7180>;
273 bus-width = <8>;
274 };
275 };
276 };
277
278 # Device node example for Gen3 platform with only CSI-2
279 - |
280 #include <dt-bindings/clock/r8a7795-cpg-mssr.h>
281 #include <dt-bindings/interrupt-controller/arm-gic.h>
282 #include <dt-bindings/power/r8a7795-sysc.h>
283
284 vin0: video@e6ef0000 {
285 compatible = "renesas,vin-r8a7795";
286 reg = <0xe6ef0000 0x1000>;
287 interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>;
288 clocks = <&cpg CPG_MOD 811>;
289 power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
290 resets = <&cpg 811>;
291 renesas,id = <0>;
292
293 ports {
294 #address-cells = <1>;
295 #size-cells = <0>;
296
297 port@1 {
298 #address-cells = <1>;
299 #size-cells = <0>;
300
301 reg = <1>;
302
303 vin0csi20: endpoint@0 {
304 reg = <0>;
305 remote-endpoint= <&csi20vin0>;
306 };
307 vin0csi40: endpoint@2 {
308 reg = <2>;
309 remote-endpoint= <&csi40vin0>;
310 };
311 };
312 };
313 };
314
315 # Device node example for Gen3 platform with CSI-2 and parallel
316 - |
317 #include <dt-bindings/clock/r8a77970-cpg-mssr.h>
318 #include <dt-bindings/interrupt-controller/arm-gic.h>
319 #include <dt-bindings/power/r8a77970-sysc.h>
320
321 vin2: video@e6ef2000 {
322 compatible = "renesas,vin-r8a77970";
323 reg = <0xe6ef2000 0x1000>;
324 interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
325 clocks = <&cpg CPG_MOD 809>;
326 power-domains = <&sysc R8A77970_PD_ALWAYS_ON>;
327 resets = <&cpg 809>;
328 renesas,id = <2>;
329
330 ports {
331 #address-cells = <1>;
332 #size-cells = <0>;
333
334 port@0 {
335 reg = <0>;
336
337 vin2_in: endpoint {
338 remote-endpoint = <&adv7612_out>;
339 hsync-active = <0>;
340 vsync-active = <0>;
341 };
342 };
343
344 port@1 {
345 #address-cells = <1>;
346 #size-cells = <0>;
347
348 reg = <1>;
349
350 vin2csi40: endpoint@2 {
351 reg = <2>;
352 remote-endpoint = <&csi40vin2>;
353 };
354 };
355 };
356 };
Cache object: a79203ca9b44b60f80b82f9f3302c606
|