xref: /openbmc/linux/Documentation/devicetree/bindings/media/renesas,vin.yaml (revision 8f6a0eabb1f21a23a570b0986c8abe9fded3ad6f)
1905fc6b1SNiklas Söderlund# SPDX-License-Identifier: GPL-2.0-only
2905fc6b1SNiklas Söderlund# Copyright (C) 2020 Renesas Electronics Corp.
3905fc6b1SNiklas Söderlund%YAML 1.2
4905fc6b1SNiklas Söderlund---
5905fc6b1SNiklas Söderlund$id: http://devicetree.org/schemas/media/renesas,vin.yaml#
6905fc6b1SNiklas Söderlund$schema: http://devicetree.org/meta-schemas/core.yaml#
7905fc6b1SNiklas Söderlund
8905fc6b1SNiklas Söderlundtitle: Renesas R-Car Video Input (VIN)
9905fc6b1SNiklas Söderlund
10905fc6b1SNiklas Söderlundmaintainers:
11905fc6b1SNiklas Söderlund  - Niklas Söderlund <niklas.soderlund@ragnatech.se>
12905fc6b1SNiklas Söderlund
13905fc6b1SNiklas Söderlunddescription:
14905fc6b1SNiklas Söderlund  The R-Car Video Input (VIN) device provides video input capabilities for the
15905fc6b1SNiklas Söderlund  Renesas R-Car family of devices.
16905fc6b1SNiklas Söderlund
17905fc6b1SNiklas Söderlund  Each VIN instance has a single parallel input that supports RGB and YUV video,
18905fc6b1SNiklas Söderlund  with both external synchronization and BT.656 synchronization for the latter.
19905fc6b1SNiklas Söderlund  Depending on the instance the VIN input is connected to external SoC pins, or
20905fc6b1SNiklas Söderlund  on Gen3 and RZ/G2 platforms to a CSI-2 receiver.
21905fc6b1SNiklas Söderlund
22905fc6b1SNiklas Söderlundproperties:
23905fc6b1SNiklas Söderlund  compatible:
24905fc6b1SNiklas Söderlund    oneOf:
25905fc6b1SNiklas Söderlund      - items:
26905fc6b1SNiklas Söderlund          - enum:
2777fd2ca6SLad Prabhakar              - renesas,vin-r8a7742  # RZ/G1H
28905fc6b1SNiklas Söderlund              - renesas,vin-r8a7743  # RZ/G1M
29905fc6b1SNiklas Söderlund              - renesas,vin-r8a7744  # RZ/G1N
30905fc6b1SNiklas Söderlund              - renesas,vin-r8a7745  # RZ/G1E
31905fc6b1SNiklas Söderlund              - renesas,vin-r8a77470 # RZ/G1C
32905fc6b1SNiklas Söderlund              - renesas,vin-r8a7790  # R-Car H2
33905fc6b1SNiklas Söderlund              - renesas,vin-r8a7791  # R-Car M2-W
34905fc6b1SNiklas Söderlund              - renesas,vin-r8a7792  # R-Car V2H
35905fc6b1SNiklas Söderlund              - renesas,vin-r8a7793  # R-Car M2-N
36905fc6b1SNiklas Söderlund              - renesas,vin-r8a7794  # R-Car E2
37905fc6b1SNiklas Söderlund          - const: renesas,rcar-gen2-vin # Generic R-Car Gen2 or RZ/G1
38905fc6b1SNiklas Söderlund
39905fc6b1SNiklas Söderlund      - items:
40905fc6b1SNiklas Söderlund          - enum:
41905fc6b1SNiklas Söderlund              - renesas,vin-r8a774a1 # RZ/G2M
42905fc6b1SNiklas Söderlund              - renesas,vin-r8a774b1 # RZ/G2N
43905fc6b1SNiklas Söderlund              - renesas,vin-r8a774c0 # RZ/G2E
44200b0d9aSLad Prabhakar              - renesas,vin-r8a774e1 # RZ/G2H
45905fc6b1SNiklas Söderlund              - renesas,vin-r8a7778  # R-Car M1
46905fc6b1SNiklas Söderlund              - renesas,vin-r8a7779  # R-Car H1
47905fc6b1SNiklas Söderlund              - renesas,vin-r8a7795  # R-Car H3
48905fc6b1SNiklas Söderlund              - renesas,vin-r8a7796  # R-Car M3-W
49905fc6b1SNiklas Söderlund              - renesas,vin-r8a77965 # R-Car M3-N
50905fc6b1SNiklas Söderlund              - renesas,vin-r8a77970 # R-Car V3M
51905fc6b1SNiklas Söderlund              - renesas,vin-r8a77980 # R-Car V3H
52905fc6b1SNiklas Söderlund              - renesas,vin-r8a77990 # R-Car E3
53905fc6b1SNiklas Söderlund              - renesas,vin-r8a77995 # R-Car D3
54*8f6a0eabSNiklas Söderlund              - renesas,vin-r8a779a0 # R-Car V3U
55905fc6b1SNiklas Söderlund
56905fc6b1SNiklas Söderlund  reg:
57905fc6b1SNiklas Söderlund    maxItems: 1
58905fc6b1SNiklas Söderlund
59905fc6b1SNiklas Söderlund  interrupts:
60905fc6b1SNiklas Söderlund    maxItems: 1
61905fc6b1SNiklas Söderlund
62905fc6b1SNiklas Söderlund  clocks:
63905fc6b1SNiklas Söderlund    maxItems: 1
64905fc6b1SNiklas Söderlund
65905fc6b1SNiklas Söderlund  power-domains:
66905fc6b1SNiklas Söderlund    maxItems: 1
67905fc6b1SNiklas Söderlund
68905fc6b1SNiklas Söderlund  resets:
69905fc6b1SNiklas Söderlund    maxItems: 1
70905fc6b1SNiklas Söderlund
71905fc6b1SNiklas Söderlund  #The per-board settings for Gen2 and RZ/G1 platforms:
72905fc6b1SNiklas Söderlund  port:
73066a94e2SRob Herring    $ref: /schemas/graph.yaml#/$defs/port-base
74066a94e2SRob Herring    unevaluatedProperties: false
75905fc6b1SNiklas Söderlund    description:
76066a94e2SRob Herring      A node containing a parallel input
77905fc6b1SNiklas Söderlund
78905fc6b1SNiklas Söderlund    properties:
79905fc6b1SNiklas Söderlund      endpoint:
80066a94e2SRob Herring        $ref: video-interfaces.yaml#
81066a94e2SRob Herring        unevaluatedProperties: false
82905fc6b1SNiklas Söderlund
83905fc6b1SNiklas Söderlund        properties:
84905fc6b1SNiklas Söderlund          hsync-active:
85905fc6b1SNiklas Söderlund            description:
86905fc6b1SNiklas Söderlund              If both HSYNC and VSYNC polarities are not specified, embedded
87905fc6b1SNiklas Söderlund              synchronization is selected.
88905fc6b1SNiklas Söderlund            default: 1
89905fc6b1SNiklas Söderlund
90905fc6b1SNiklas Söderlund          vsync-active:
91905fc6b1SNiklas Söderlund            description:
92905fc6b1SNiklas Söderlund              If both HSYNC and VSYNC polarities are not specified, embedded
93905fc6b1SNiklas Söderlund              synchronization is selected.
94905fc6b1SNiklas Söderlund            default: 1
95905fc6b1SNiklas Söderlund
96905fc6b1SNiklas Söderlund          field-active-even: true
97905fc6b1SNiklas Söderlund
98905fc6b1SNiklas Söderlund          bus-width: true
99905fc6b1SNiklas Söderlund
100905fc6b1SNiklas Söderlund          data-shift: true
101905fc6b1SNiklas Söderlund
102905fc6b1SNiklas Söderlund          data-enable-active:
103905fc6b1SNiklas Söderlund            description: Polarity of CLKENB signal
104905fc6b1SNiklas Söderlund            default: 1
105905fc6b1SNiklas Söderlund
106905fc6b1SNiklas Söderlund          pclk-sample: true
107905fc6b1SNiklas Söderlund
108905fc6b1SNiklas Söderlund          data-active: true
109905fc6b1SNiklas Söderlund
110905fc6b1SNiklas Söderlund  #The per-board settings for Gen3 and RZ/G2 platforms:
111905fc6b1SNiklas Söderlund  renesas,id:
112905fc6b1SNiklas Söderlund    description: VIN channel number
1133d21a460SRob Herring    $ref: /schemas/types.yaml#/definitions/uint32
1143d21a460SRob Herring    minimum: 0
115*8f6a0eabSNiklas Söderlund    maximum: 31
116905fc6b1SNiklas Söderlund
117905fc6b1SNiklas Söderlund  ports:
118066a94e2SRob Herring    $ref: /schemas/graph.yaml#/properties/ports
119905fc6b1SNiklas Söderlund
120905fc6b1SNiklas Söderlund    properties:
121905fc6b1SNiklas Söderlund      port@0:
122066a94e2SRob Herring        $ref: /schemas/graph.yaml#/properties/port
123905fc6b1SNiklas Söderlund        description:
124905fc6b1SNiklas Söderlund          Input port node, single endpoint describing a parallel input source.
125905fc6b1SNiklas Söderlund
126905fc6b1SNiklas Söderlund        properties:
127905fc6b1SNiklas Söderlund          endpoint:
128066a94e2SRob Herring            $ref: video-interfaces.yaml#
129066a94e2SRob Herring            unevaluatedProperties: false
130905fc6b1SNiklas Söderlund
131905fc6b1SNiklas Söderlund            properties:
132905fc6b1SNiklas Söderlund              hsync-active:
133905fc6b1SNiklas Söderlund                description:
134905fc6b1SNiklas Söderlund                  If both HSYNC and VSYNC polarities are not specified, embedded
135905fc6b1SNiklas Söderlund                  synchronization is selected.
136905fc6b1SNiklas Söderlund                default: 1
137905fc6b1SNiklas Söderlund
138905fc6b1SNiklas Söderlund              vsync-active:
139905fc6b1SNiklas Söderlund                description:
140905fc6b1SNiklas Söderlund                  If both HSYNC and VSYNC polarities are not specified, embedded
141905fc6b1SNiklas Söderlund                  synchronization is selected.
142905fc6b1SNiklas Söderlund                default: 1
143905fc6b1SNiklas Söderlund
144905fc6b1SNiklas Söderlund              field-active-even: true
145905fc6b1SNiklas Söderlund
146905fc6b1SNiklas Söderlund              bus-width: true
147905fc6b1SNiklas Söderlund
148905fc6b1SNiklas Söderlund              data-shift: true
149905fc6b1SNiklas Söderlund
150905fc6b1SNiklas Söderlund              data-enable-active:
151905fc6b1SNiklas Söderlund                description: Polarity of CLKENB signal
152905fc6b1SNiklas Söderlund                default: 1
153905fc6b1SNiklas Söderlund
154905fc6b1SNiklas Söderlund              pclk-sample: true
155905fc6b1SNiklas Söderlund
156905fc6b1SNiklas Söderlund              data-active: true
157905fc6b1SNiklas Söderlund
158905fc6b1SNiklas Söderlund      port@1:
159066a94e2SRob Herring        $ref: /schemas/graph.yaml#/properties/port
160905fc6b1SNiklas Söderlund        description:
161905fc6b1SNiklas Söderlund          Input port node, multiple endpoints describing all the R-Car CSI-2
162905fc6b1SNiklas Söderlund          modules connected the VIN.
163905fc6b1SNiklas Söderlund
164905fc6b1SNiklas Söderlund        properties:
165905fc6b1SNiklas Söderlund          endpoint@0:
166066a94e2SRob Herring            $ref: /schemas/graph.yaml#/properties/endpoint
167905fc6b1SNiklas Söderlund            description: Endpoint connected to CSI20.
168905fc6b1SNiklas Söderlund
169905fc6b1SNiklas Söderlund          endpoint@1:
170066a94e2SRob Herring            $ref: /schemas/graph.yaml#/properties/endpoint
171905fc6b1SNiklas Söderlund            description: Endpoint connected to CSI21.
172905fc6b1SNiklas Söderlund
173905fc6b1SNiklas Söderlund          endpoint@2:
174066a94e2SRob Herring            $ref: /schemas/graph.yaml#/properties/endpoint
175905fc6b1SNiklas Söderlund            description: Endpoint connected to CSI40.
176905fc6b1SNiklas Söderlund
177905fc6b1SNiklas Söderlund          endpoint@3:
178066a94e2SRob Herring            $ref: /schemas/graph.yaml#/properties/endpoint
179905fc6b1SNiklas Söderlund            description: Endpoint connected to CSI41.
180905fc6b1SNiklas Söderlund
181905fc6b1SNiklas Söderlund        anyOf:
182905fc6b1SNiklas Söderlund          - required:
183905fc6b1SNiklas Söderlund              - endpoint@0
184905fc6b1SNiklas Söderlund          - required:
185905fc6b1SNiklas Söderlund              - endpoint@1
186905fc6b1SNiklas Söderlund          - required:
187905fc6b1SNiklas Söderlund              - endpoint@2
188905fc6b1SNiklas Söderlund          - required:
189905fc6b1SNiklas Söderlund              - endpoint@3
190905fc6b1SNiklas Söderlund
191*8f6a0eabSNiklas Söderlund      port@2:
192*8f6a0eabSNiklas Söderlund        $ref: /schemas/graph.yaml#/properties/port
193*8f6a0eabSNiklas Söderlund        description:
194*8f6a0eabSNiklas Söderlund          Input port node, multiple endpoints describing all the R-Car ISP
195*8f6a0eabSNiklas Söderlund          modules connected the VIN.
196*8f6a0eabSNiklas Söderlund
197*8f6a0eabSNiklas Söderlund        properties:
198*8f6a0eabSNiklas Söderlund          endpoint@0:
199*8f6a0eabSNiklas Söderlund            $ref: /schemas/graph.yaml#/properties/endpoint
200*8f6a0eabSNiklas Söderlund            description: Endpoint connected to ISP0.
201*8f6a0eabSNiklas Söderlund
202*8f6a0eabSNiklas Söderlund          endpoint@1:
203*8f6a0eabSNiklas Söderlund            $ref: /schemas/graph.yaml#/properties/endpoint
204*8f6a0eabSNiklas Söderlund            description: Endpoint connected to ISP1.
205*8f6a0eabSNiklas Söderlund
206*8f6a0eabSNiklas Söderlund          endpoint@2:
207*8f6a0eabSNiklas Söderlund            $ref: /schemas/graph.yaml#/properties/endpoint
208*8f6a0eabSNiklas Söderlund            description: Endpoint connected to ISP2.
209*8f6a0eabSNiklas Söderlund
210*8f6a0eabSNiklas Söderlund          endpoint@3:
211*8f6a0eabSNiklas Söderlund            $ref: /schemas/graph.yaml#/properties/endpoint
212*8f6a0eabSNiklas Söderlund            description: Endpoint connected to ISP3.
213*8f6a0eabSNiklas Söderlund
214905fc6b1SNiklas Söderlundrequired:
215905fc6b1SNiklas Söderlund  - compatible
216905fc6b1SNiklas Söderlund  - reg
217905fc6b1SNiklas Söderlund  - interrupts
218905fc6b1SNiklas Söderlund  - clocks
219905fc6b1SNiklas Söderlund  - power-domains
2207935bb56SGeert Uytterhoeven
2217935bb56SGeert UytterhoevenallOf:
2227935bb56SGeert Uytterhoeven  - if:
2237935bb56SGeert Uytterhoeven      not:
2247935bb56SGeert Uytterhoeven        properties:
2257935bb56SGeert Uytterhoeven          compatible:
2267935bb56SGeert Uytterhoeven            contains:
2277935bb56SGeert Uytterhoeven              enum:
2287935bb56SGeert Uytterhoeven                - renesas,vin-r8a7778
2297935bb56SGeert Uytterhoeven                - renesas,vin-r8a7779
2307935bb56SGeert Uytterhoeven    then:
2317935bb56SGeert Uytterhoeven      required:
232905fc6b1SNiklas Söderlund        - resets
233905fc6b1SNiklas Söderlund
2347935bb56SGeert Uytterhoeven  - if:
235905fc6b1SNiklas Söderlund      properties:
236905fc6b1SNiklas Söderlund        compatible:
237905fc6b1SNiklas Söderlund          contains:
238905fc6b1SNiklas Söderlund            enum:
239905fc6b1SNiklas Söderlund              - renesas,vin-r8a7778
240905fc6b1SNiklas Söderlund              - renesas,vin-r8a7779
241905fc6b1SNiklas Söderlund              - renesas,rcar-gen2-vin
242905fc6b1SNiklas Söderlund    then:
243905fc6b1SNiklas Söderlund      required:
244905fc6b1SNiklas Söderlund        - port
245905fc6b1SNiklas Söderlund    else:
246905fc6b1SNiklas Söderlund      required:
247905fc6b1SNiklas Söderlund        - renesas,id
248905fc6b1SNiklas Söderlund        - ports
249905fc6b1SNiklas Söderlund
250905fc6b1SNiklas SöderlundadditionalProperties: false
251905fc6b1SNiklas Söderlund
252905fc6b1SNiklas Söderlundexamples:
253905fc6b1SNiklas Söderlund  # Device node example for Gen2 platform
254905fc6b1SNiklas Söderlund  - |
255905fc6b1SNiklas Söderlund    #include <dt-bindings/clock/r8a7790-cpg-mssr.h>
256905fc6b1SNiklas Söderlund    #include <dt-bindings/interrupt-controller/arm-gic.h>
257905fc6b1SNiklas Söderlund    #include <dt-bindings/power/r8a7790-sysc.h>
258905fc6b1SNiklas Söderlund
259905fc6b1SNiklas Söderlund    vin1: vin@e6ef1000 {
260905fc6b1SNiklas Söderlund            compatible = "renesas,vin-r8a7790",
261905fc6b1SNiklas Söderlund                         "renesas,rcar-gen2-vin";
262fba56184SRob Herring            reg = <0xe6ef1000 0x1000>;
263905fc6b1SNiklas Söderlund            interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>;
264905fc6b1SNiklas Söderlund            clocks = <&cpg CPG_MOD 810>;
265905fc6b1SNiklas Söderlund            power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
266905fc6b1SNiklas Söderlund            resets = <&cpg 810>;
267905fc6b1SNiklas Söderlund
268905fc6b1SNiklas Söderlund            port {
269905fc6b1SNiklas Söderlund                    vin1ep0: endpoint {
270905fc6b1SNiklas Söderlund                            remote-endpoint = <&adv7180>;
271905fc6b1SNiklas Söderlund                            bus-width = <8>;
272905fc6b1SNiklas Söderlund                    };
273905fc6b1SNiklas Söderlund            };
274905fc6b1SNiklas Söderlund    };
275905fc6b1SNiklas Söderlund
276905fc6b1SNiklas Söderlund  # Device node example for Gen3 platform with only CSI-2
277905fc6b1SNiklas Söderlund  - |
278905fc6b1SNiklas Söderlund    #include <dt-bindings/clock/r8a7795-cpg-mssr.h>
279905fc6b1SNiklas Söderlund    #include <dt-bindings/interrupt-controller/arm-gic.h>
280905fc6b1SNiklas Söderlund    #include <dt-bindings/power/r8a7795-sysc.h>
281905fc6b1SNiklas Söderlund
282905fc6b1SNiklas Söderlund    vin0: video@e6ef0000 {
283905fc6b1SNiklas Söderlund            compatible = "renesas,vin-r8a7795";
284fba56184SRob Herring            reg = <0xe6ef0000 0x1000>;
285905fc6b1SNiklas Söderlund            interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>;
286905fc6b1SNiklas Söderlund            clocks = <&cpg CPG_MOD 811>;
287905fc6b1SNiklas Söderlund            power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
288905fc6b1SNiklas Söderlund            resets = <&cpg 811>;
289905fc6b1SNiklas Söderlund            renesas,id = <0>;
290905fc6b1SNiklas Söderlund
291905fc6b1SNiklas Söderlund            ports {
292905fc6b1SNiklas Söderlund                    #address-cells = <1>;
293905fc6b1SNiklas Söderlund                    #size-cells = <0>;
294905fc6b1SNiklas Söderlund
295905fc6b1SNiklas Söderlund                    port@1 {
296905fc6b1SNiklas Söderlund                            #address-cells = <1>;
297905fc6b1SNiklas Söderlund                            #size-cells = <0>;
298905fc6b1SNiklas Söderlund
299905fc6b1SNiklas Söderlund                            reg = <1>;
300905fc6b1SNiklas Söderlund
301905fc6b1SNiklas Söderlund                            vin0csi20: endpoint@0 {
302905fc6b1SNiklas Söderlund                                    reg = <0>;
303905fc6b1SNiklas Söderlund                                    remote-endpoint= <&csi20vin0>;
304905fc6b1SNiklas Söderlund                            };
305905fc6b1SNiklas Söderlund                            vin0csi40: endpoint@2 {
306905fc6b1SNiklas Söderlund                                    reg = <2>;
307905fc6b1SNiklas Söderlund                                    remote-endpoint= <&csi40vin0>;
308905fc6b1SNiklas Söderlund                            };
309905fc6b1SNiklas Söderlund                    };
310905fc6b1SNiklas Söderlund            };
311905fc6b1SNiklas Söderlund    };
312905fc6b1SNiklas Söderlund
313905fc6b1SNiklas Söderlund  # Device node example for Gen3 platform with CSI-2 and parallel
314905fc6b1SNiklas Söderlund  - |
315905fc6b1SNiklas Söderlund    #include <dt-bindings/clock/r8a77970-cpg-mssr.h>
316905fc6b1SNiklas Söderlund    #include <dt-bindings/interrupt-controller/arm-gic.h>
317905fc6b1SNiklas Söderlund    #include <dt-bindings/power/r8a77970-sysc.h>
318905fc6b1SNiklas Söderlund
319905fc6b1SNiklas Söderlund    vin2: video@e6ef2000 {
320905fc6b1SNiklas Söderlund            compatible = "renesas,vin-r8a77970";
321fba56184SRob Herring            reg = <0xe6ef2000 0x1000>;
322905fc6b1SNiklas Söderlund            interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
323905fc6b1SNiklas Söderlund            clocks = <&cpg CPG_MOD 809>;
324905fc6b1SNiklas Söderlund            power-domains = <&sysc R8A77970_PD_ALWAYS_ON>;
325905fc6b1SNiklas Söderlund            resets = <&cpg 809>;
326905fc6b1SNiklas Söderlund            renesas,id = <2>;
327905fc6b1SNiklas Söderlund
328905fc6b1SNiklas Söderlund            ports {
329905fc6b1SNiklas Söderlund                    #address-cells = <1>;
330905fc6b1SNiklas Söderlund                    #size-cells = <0>;
331905fc6b1SNiklas Söderlund
332905fc6b1SNiklas Söderlund                    port@0 {
333905fc6b1SNiklas Söderlund                            reg = <0>;
334905fc6b1SNiklas Söderlund
335905fc6b1SNiklas Söderlund                            vin2_in: endpoint {
336905fc6b1SNiklas Söderlund                                    remote-endpoint = <&adv7612_out>;
337905fc6b1SNiklas Söderlund                                    hsync-active = <0>;
338905fc6b1SNiklas Söderlund                                    vsync-active = <0>;
339905fc6b1SNiklas Söderlund                            };
340905fc6b1SNiklas Söderlund                    };
341905fc6b1SNiklas Söderlund
342905fc6b1SNiklas Söderlund                    port@1 {
343905fc6b1SNiklas Söderlund                            #address-cells = <1>;
344905fc6b1SNiklas Söderlund                            #size-cells = <0>;
345905fc6b1SNiklas Söderlund
346905fc6b1SNiklas Söderlund                            reg = <1>;
347905fc6b1SNiklas Söderlund
348905fc6b1SNiklas Söderlund                            vin2csi40: endpoint@2 {
349905fc6b1SNiklas Söderlund                                    reg = <2>;
350905fc6b1SNiklas Söderlund                                    remote-endpoint = <&csi40vin2>;
351905fc6b1SNiklas Söderlund                            };
352905fc6b1SNiklas Söderlund                    };
353905fc6b1SNiklas Söderlund            };
354905fc6b1SNiklas Söderlund    };
355