1941a0e3bSNiklas Söderlund# SPDX-License-Identifier: GPL-2.0-only
2941a0e3bSNiklas Söderlund# Copyright (C) 2020 Renesas Electronics Corp.
3941a0e3bSNiklas Söderlund%YAML 1.2
4941a0e3bSNiklas Söderlund---
5941a0e3bSNiklas Söderlund$id: http://devicetree.org/schemas/media/renesas,csi2.yaml#
6941a0e3bSNiklas Söderlund$schema: http://devicetree.org/meta-schemas/core.yaml#
7941a0e3bSNiklas Söderlund
8941a0e3bSNiklas Söderlundtitle: Renesas R-Car MIPI CSI-2 receiver
9941a0e3bSNiklas Söderlund
10941a0e3bSNiklas Söderlundmaintainers:
11941a0e3bSNiklas Söderlund  - Niklas Söderlund <niklas.soderlund@ragnatech.se>
12941a0e3bSNiklas Söderlund
13941a0e3bSNiklas Söderlunddescription:
14941a0e3bSNiklas Söderlund  The R-Car CSI-2 receiver device provides MIPI CSI-2 capabilities for the
15941a0e3bSNiklas Söderlund  Renesas R-Car and RZ/G2 family of devices. It is used in conjunction with the
16941a0e3bSNiklas Söderlund  R-Car VIN module, which provides the video capture capabilities.
17941a0e3bSNiklas Söderlund
18941a0e3bSNiklas Söderlundproperties:
19941a0e3bSNiklas Söderlund  compatible:
20941a0e3bSNiklas Söderlund    items:
21941a0e3bSNiklas Söderlund      - enum:
22941a0e3bSNiklas Söderlund          - renesas,r8a774a1-csi2 # RZ/G2M
23941a0e3bSNiklas Söderlund          - renesas,r8a774b1-csi2 # RZ/G2N
24941a0e3bSNiklas Söderlund          - renesas,r8a774c0-csi2 # RZ/G2E
256a893d4eSLad Prabhakar          - renesas,r8a774e1-csi2 # RZ/G2H
26941a0e3bSNiklas Söderlund          - renesas,r8a7795-csi2  # R-Car H3
27941a0e3bSNiklas Söderlund          - renesas,r8a7796-csi2  # R-Car M3-W
28941a0e3bSNiklas Söderlund          - renesas,r8a77965-csi2 # R-Car M3-N
29941a0e3bSNiklas Söderlund          - renesas,r8a77970-csi2 # R-Car V3M
30941a0e3bSNiklas Söderlund          - renesas,r8a77980-csi2 # R-Car V3H
31941a0e3bSNiklas Söderlund          - renesas,r8a77990-csi2 # R-Car E3
32941a0e3bSNiklas Söderlund
33941a0e3bSNiklas Söderlund  reg:
34941a0e3bSNiklas Söderlund    maxItems: 1
35941a0e3bSNiklas Söderlund
36941a0e3bSNiklas Söderlund  interrupts:
37941a0e3bSNiklas Söderlund    maxItems: 1
38941a0e3bSNiklas Söderlund
39941a0e3bSNiklas Söderlund  clocks:
40941a0e3bSNiklas Söderlund    maxItems: 1
41941a0e3bSNiklas Söderlund
42941a0e3bSNiklas Söderlund  power-domains:
43941a0e3bSNiklas Söderlund    maxItems: 1
44941a0e3bSNiklas Söderlund
45941a0e3bSNiklas Söderlund  resets:
46941a0e3bSNiklas Söderlund    maxItems: 1
47941a0e3bSNiklas Söderlund
48941a0e3bSNiklas Söderlund  ports:
49941a0e3bSNiklas Söderlund    type: object
50941a0e3bSNiklas Söderlund    description:
51941a0e3bSNiklas Söderlund      A node containing input and output port nodes with endpoint definitions
52941a0e3bSNiklas Söderlund      as documented in
53941a0e3bSNiklas Söderlund      Documentation/devicetree/bindings/media/video-interfaces.txt
54941a0e3bSNiklas Söderlund
55941a0e3bSNiklas Söderlund    properties:
56941a0e3bSNiklas Söderlund      port@0:
57941a0e3bSNiklas Söderlund        type: object
58941a0e3bSNiklas Söderlund        description:
59941a0e3bSNiklas Söderlund          Input port node, single endpoint describing the CSI-2 transmitter.
60941a0e3bSNiklas Söderlund
61941a0e3bSNiklas Söderlund        properties:
62941a0e3bSNiklas Söderlund          reg:
63941a0e3bSNiklas Söderlund            const: 0
64941a0e3bSNiklas Söderlund
65941a0e3bSNiklas Söderlund          endpoint:
66941a0e3bSNiklas Söderlund            type: object
67941a0e3bSNiklas Söderlund
68941a0e3bSNiklas Söderlund            properties:
69941a0e3bSNiklas Söderlund              clock-lanes:
70941a0e3bSNiklas Söderlund                maxItems: 1
71941a0e3bSNiklas Söderlund
72941a0e3bSNiklas Söderlund              data-lanes:
73941a0e3bSNiklas Söderlund                maxItems: 1
74941a0e3bSNiklas Söderlund
75941a0e3bSNiklas Söderlund              remote-endpoint: true
76941a0e3bSNiklas Söderlund
77941a0e3bSNiklas Söderlund            required:
78941a0e3bSNiklas Söderlund              - clock-lanes
79941a0e3bSNiklas Söderlund              - data-lanes
80941a0e3bSNiklas Söderlund              - remote-endpoint
81941a0e3bSNiklas Söderlund
82941a0e3bSNiklas Söderlund            additionalProperties: false
83941a0e3bSNiklas Söderlund
84941a0e3bSNiklas Söderlund        additionalProperties: false
85941a0e3bSNiklas Söderlund
86941a0e3bSNiklas Söderlund      port@1:
87941a0e3bSNiklas Söderlund        type: object
88941a0e3bSNiklas Söderlund        description:
89941a0e3bSNiklas Söderlund          Output port node, multiple endpoints describing all the R-Car VIN
90941a0e3bSNiklas Söderlund          modules connected the CSI-2 receiver.
91941a0e3bSNiklas Söderlund
92941a0e3bSNiklas Söderlund        properties:
93941a0e3bSNiklas Söderlund          '#address-cells':
94941a0e3bSNiklas Söderlund            const: 1
95941a0e3bSNiklas Söderlund
96941a0e3bSNiklas Söderlund          '#size-cells':
97941a0e3bSNiklas Söderlund            const: 0
98941a0e3bSNiklas Söderlund
99941a0e3bSNiklas Söderlund          reg:
100941a0e3bSNiklas Söderlund            const: 1
101941a0e3bSNiklas Söderlund
102941a0e3bSNiklas Söderlund        patternProperties:
103941a0e3bSNiklas Söderlund          "^endpoint@[0-9a-f]$":
104941a0e3bSNiklas Söderlund            type: object
105941a0e3bSNiklas Söderlund
106941a0e3bSNiklas Söderlund            properties:
107941a0e3bSNiklas Söderlund              reg:
108941a0e3bSNiklas Söderlund                maxItems: 1
109941a0e3bSNiklas Söderlund
110941a0e3bSNiklas Söderlund              remote-endpoint: true
111941a0e3bSNiklas Söderlund
112941a0e3bSNiklas Söderlund            required:
113941a0e3bSNiklas Söderlund              - reg
114941a0e3bSNiklas Söderlund              - remote-endpoint
115941a0e3bSNiklas Söderlund
116941a0e3bSNiklas Söderlund            additionalProperties: false
117941a0e3bSNiklas Söderlund
118941a0e3bSNiklas Söderlund        additionalProperties: false
119941a0e3bSNiklas Söderlund
120941a0e3bSNiklas Söderlundrequired:
121941a0e3bSNiklas Söderlund  - compatible
122941a0e3bSNiklas Söderlund  - reg
123941a0e3bSNiklas Söderlund  - interrupts
124941a0e3bSNiklas Söderlund  - clocks
125941a0e3bSNiklas Söderlund  - power-domains
126941a0e3bSNiklas Söderlund  - resets
127941a0e3bSNiklas Söderlund  - ports
128941a0e3bSNiklas Söderlund
129941a0e3bSNiklas SöderlundadditionalProperties: false
130941a0e3bSNiklas Söderlund
131941a0e3bSNiklas Söderlundexamples:
132941a0e3bSNiklas Söderlund  - |
133941a0e3bSNiklas Söderlund    #include <dt-bindings/clock/r8a7796-cpg-mssr.h>
134941a0e3bSNiklas Söderlund    #include <dt-bindings/interrupt-controller/arm-gic.h>
135941a0e3bSNiklas Söderlund    #include <dt-bindings/power/r8a7796-sysc.h>
136941a0e3bSNiklas Söderlund
137941a0e3bSNiklas Söderlund    csi20: csi2@fea80000 {
138941a0e3bSNiklas Söderlund            compatible = "renesas,r8a7796-csi2";
139fba56184SRob Herring            reg = <0xfea80000 0x10000>;
140941a0e3bSNiklas Söderlund            interrupts = <0 184 IRQ_TYPE_LEVEL_HIGH>;
141941a0e3bSNiklas Söderlund            clocks = <&cpg CPG_MOD 714>;
142941a0e3bSNiklas Söderlund            power-domains = <&sysc R8A7796_PD_ALWAYS_ON>;
143941a0e3bSNiklas Söderlund            resets = <&cpg 714>;
144941a0e3bSNiklas Söderlund
145941a0e3bSNiklas Söderlund            ports {
146941a0e3bSNiklas Söderlund                    #address-cells = <1>;
147941a0e3bSNiklas Söderlund                    #size-cells = <0>;
148941a0e3bSNiklas Söderlund
149941a0e3bSNiklas Söderlund                    port@0 {
150941a0e3bSNiklas Söderlund                            reg = <0>;
151941a0e3bSNiklas Söderlund
152941a0e3bSNiklas Söderlund                            csi20_in: endpoint {
153941a0e3bSNiklas Söderlund                                    clock-lanes = <0>;
154941a0e3bSNiklas Söderlund                                    data-lanes = <1>;
155941a0e3bSNiklas Söderlund                                    remote-endpoint = <&adv7482_txb>;
156941a0e3bSNiklas Söderlund                            };
157941a0e3bSNiklas Söderlund                    };
158941a0e3bSNiklas Söderlund
159941a0e3bSNiklas Söderlund                    port@1 {
160941a0e3bSNiklas Söderlund                            #address-cells = <1>;
161941a0e3bSNiklas Söderlund                            #size-cells = <0>;
162941a0e3bSNiklas Söderlund
163941a0e3bSNiklas Söderlund                            reg = <1>;
164941a0e3bSNiklas Söderlund
165941a0e3bSNiklas Söderlund                            csi20vin0: endpoint@0 {
166941a0e3bSNiklas Söderlund                                    reg = <0>;
167941a0e3bSNiklas Söderlund                                    remote-endpoint = <&vin0csi20>;
168941a0e3bSNiklas Söderlund                            };
169941a0e3bSNiklas Söderlund                            csi20vin1: endpoint@1 {
170941a0e3bSNiklas Söderlund                                    reg = <1>;
171941a0e3bSNiklas Söderlund                                    remote-endpoint = <&vin1csi20>;
172941a0e3bSNiklas Söderlund                            };
173941a0e3bSNiklas Söderlund                            csi20vin2: endpoint@2 {
174941a0e3bSNiklas Söderlund                                    reg = <2>;
175941a0e3bSNiklas Söderlund                                    remote-endpoint = <&vin2csi20>;
176941a0e3bSNiklas Söderlund                            };
177941a0e3bSNiklas Söderlund                            csi20vin3: endpoint@3 {
178941a0e3bSNiklas Söderlund                                    reg = <3>;
179941a0e3bSNiklas Söderlund                                    remote-endpoint = <&vin3csi20>;
180941a0e3bSNiklas Söderlund                            };
181941a0e3bSNiklas Söderlund                            csi20vin4: endpoint@4 {
182941a0e3bSNiklas Söderlund                                    reg = <4>;
183941a0e3bSNiklas Söderlund                                    remote-endpoint = <&vin4csi20>;
184941a0e3bSNiklas Söderlund                            };
185941a0e3bSNiklas Söderlund                            csi20vin5: endpoint@5 {
186941a0e3bSNiklas Söderlund                                    reg = <5>;
187941a0e3bSNiklas Söderlund                                    remote-endpoint = <&vin5csi20>;
188941a0e3bSNiklas Söderlund                            };
189941a0e3bSNiklas Söderlund                            csi20vin6: endpoint@6 {
190941a0e3bSNiklas Söderlund                                    reg = <6>;
191941a0e3bSNiklas Söderlund                                    remote-endpoint = <&vin6csi20>;
192941a0e3bSNiklas Söderlund                            };
193941a0e3bSNiklas Söderlund                            csi20vin7: endpoint@7 {
194941a0e3bSNiklas Söderlund                                    reg = <7>;
195941a0e3bSNiklas Söderlund                                    remote-endpoint = <&vin7csi20>;
196941a0e3bSNiklas Söderlund                            };
197941a0e3bSNiklas Söderlund                    };
198941a0e3bSNiklas Söderlund            };
199941a0e3bSNiklas Söderlund    };
200