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,csi2.yaml#
6$schema: http://devicetree.org/meta-schemas/core.yaml#
7
8title: Renesas R-Car MIPI CSI-2 receiver
9
10maintainers:
11  - Niklas Söderlund <niklas.soderlund@ragnatech.se>
12
13description:
14  The R-Car CSI-2 receiver device provides MIPI CSI-2 capabilities for the
15  Renesas R-Car and RZ/G2 family of devices. It is used in conjunction with the
16  R-Car VIN module, which provides the video capture capabilities.
17
18properties:
19  compatible:
20    items:
21      - enum:
22          - renesas,r8a774a1-csi2 # RZ/G2M
23          - renesas,r8a774b1-csi2 # RZ/G2N
24          - renesas,r8a774c0-csi2 # RZ/G2E
25          - renesas,r8a774e1-csi2 # RZ/G2H
26          - renesas,r8a7795-csi2  # R-Car H3
27          - renesas,r8a7796-csi2  # R-Car M3-W
28          - renesas,r8a77965-csi2 # R-Car M3-N
29          - renesas,r8a77970-csi2 # R-Car V3M
30          - renesas,r8a77980-csi2 # R-Car V3H
31          - renesas,r8a77990-csi2 # R-Car E3
32
33  reg:
34    maxItems: 1
35
36  interrupts:
37    maxItems: 1
38
39  clocks:
40    maxItems: 1
41
42  power-domains:
43    maxItems: 1
44
45  resets:
46    maxItems: 1
47
48  ports:
49    $ref: /schemas/graph.yaml#/properties/ports
50
51    properties:
52      port@0:
53        $ref: /schemas/graph.yaml#/$defs/port-base
54        unevaluatedProperties: false
55        description:
56          Input port node, single endpoint describing the CSI-2 transmitter.
57
58        properties:
59          endpoint:
60            $ref: video-interfaces.yaml#
61            unevaluatedProperties: false
62
63            properties:
64              clock-lanes:
65                maxItems: 1
66
67              data-lanes:
68                maxItems: 1
69
70            required:
71              - clock-lanes
72              - data-lanes
73
74      port@1:
75        $ref: /schemas/graph.yaml#/properties/port
76        description:
77          Output port node, multiple endpoints describing all the R-Car VIN
78          modules connected the CSI-2 receiver.
79
80    required:
81      - port@0
82      - port@1
83
84required:
85  - compatible
86  - reg
87  - interrupts
88  - clocks
89  - power-domains
90  - resets
91  - ports
92
93additionalProperties: false
94
95examples:
96  - |
97    #include <dt-bindings/clock/r8a7796-cpg-mssr.h>
98    #include <dt-bindings/interrupt-controller/arm-gic.h>
99    #include <dt-bindings/power/r8a7796-sysc.h>
100
101    csi20: csi2@fea80000 {
102            compatible = "renesas,r8a7796-csi2";
103            reg = <0xfea80000 0x10000>;
104            interrupts = <0 184 IRQ_TYPE_LEVEL_HIGH>;
105            clocks = <&cpg CPG_MOD 714>;
106            power-domains = <&sysc R8A7796_PD_ALWAYS_ON>;
107            resets = <&cpg 714>;
108
109            ports {
110                    #address-cells = <1>;
111                    #size-cells = <0>;
112
113                    port@0 {
114                            reg = <0>;
115
116                            csi20_in: endpoint {
117                                    clock-lanes = <0>;
118                                    data-lanes = <1>;
119                                    remote-endpoint = <&adv7482_txb>;
120                            };
121                    };
122
123                    port@1 {
124                            #address-cells = <1>;
125                            #size-cells = <0>;
126
127                            reg = <1>;
128
129                            csi20vin0: endpoint@0 {
130                                    reg = <0>;
131                                    remote-endpoint = <&vin0csi20>;
132                            };
133                            csi20vin1: endpoint@1 {
134                                    reg = <1>;
135                                    remote-endpoint = <&vin1csi20>;
136                            };
137                            csi20vin2: endpoint@2 {
138                                    reg = <2>;
139                                    remote-endpoint = <&vin2csi20>;
140                            };
141                            csi20vin3: endpoint@3 {
142                                    reg = <3>;
143                                    remote-endpoint = <&vin3csi20>;
144                            };
145                            csi20vin4: endpoint@4 {
146                                    reg = <4>;
147                                    remote-endpoint = <&vin4csi20>;
148                            };
149                            csi20vin5: endpoint@5 {
150                                    reg = <5>;
151                                    remote-endpoint = <&vin5csi20>;
152                            };
153                            csi20vin6: endpoint@6 {
154                                    reg = <6>;
155                                    remote-endpoint = <&vin6csi20>;
156                            };
157                            csi20vin7: endpoint@7 {
158                                    reg = <7>;
159                                    remote-endpoint = <&vin7csi20>;
160                            };
161                    };
162            };
163    };
164