xref: /linux/Documentation/devicetree/bindings/media/renesas,csi2.yaml (revision 7f71507851fc7764b36a3221839607d3a45c2025)
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,r8a77961-csi2 # R-Car M3-W+
29          - renesas,r8a77965-csi2 # R-Car M3-N
30          - renesas,r8a77970-csi2 # R-Car V3M
31          - renesas,r8a77980-csi2 # R-Car V3H
32          - renesas,r8a77990-csi2 # R-Car E3
33          - renesas,r8a779a0-csi2 # R-Car V3U
34          - renesas,r8a779g0-csi2 # R-Car V4H
35          - renesas,r8a779h0-csi2 # R-Car V4M
36
37  reg:
38    maxItems: 1
39
40  interrupts:
41    maxItems: 1
42
43  clocks:
44    maxItems: 1
45
46  power-domains:
47    maxItems: 1
48
49  resets:
50    maxItems: 1
51
52  ports:
53    $ref: /schemas/graph.yaml#/properties/ports
54
55    properties:
56      port@0:
57        $ref: /schemas/graph.yaml#/$defs/port-base
58        unevaluatedProperties: false
59        description:
60          Input port node, single endpoint describing the CSI-2 transmitter.
61
62        properties:
63          endpoint:
64            $ref: video-interfaces.yaml#
65            unevaluatedProperties: false
66
67            properties:
68              clock-lanes:
69                maxItems: 1
70
71              data-lanes:
72                minItems: 1
73                maxItems: 4
74                items:
75                  maximum: 4
76
77            required:
78              - clock-lanes
79              - data-lanes
80
81      port@1:
82        $ref: /schemas/graph.yaml#/properties/port
83        description:
84          Output port node, multiple endpoints describing all the R-Car VIN
85          modules connected the CSI-2 receiver.
86
87    required:
88      - port@0
89      - port@1
90
91required:
92  - compatible
93  - reg
94  - interrupts
95  - clocks
96  - power-domains
97  - resets
98  - ports
99
100additionalProperties: false
101
102examples:
103  - |
104    #include <dt-bindings/clock/r8a7796-cpg-mssr.h>
105    #include <dt-bindings/interrupt-controller/arm-gic.h>
106    #include <dt-bindings/power/r8a7796-sysc.h>
107
108    csi20: csi2@fea80000 {
109            compatible = "renesas,r8a7796-csi2";
110            reg = <0xfea80000 0x10000>;
111            interrupts = <0 184 IRQ_TYPE_LEVEL_HIGH>;
112            clocks = <&cpg CPG_MOD 714>;
113            power-domains = <&sysc R8A7796_PD_ALWAYS_ON>;
114            resets = <&cpg 714>;
115
116            ports {
117                    #address-cells = <1>;
118                    #size-cells = <0>;
119
120                    port@0 {
121                            reg = <0>;
122
123                            csi20_in: endpoint {
124                                    clock-lanes = <0>;
125                                    data-lanes = <1>;
126                                    remote-endpoint = <&adv7482_txb>;
127                            };
128                    };
129
130                    port@1 {
131                            #address-cells = <1>;
132                            #size-cells = <0>;
133
134                            reg = <1>;
135
136                            csi20vin0: endpoint@0 {
137                                    reg = <0>;
138                                    remote-endpoint = <&vin0csi20>;
139                            };
140                            csi20vin1: endpoint@1 {
141                                    reg = <1>;
142                                    remote-endpoint = <&vin1csi20>;
143                            };
144                            csi20vin2: endpoint@2 {
145                                    reg = <2>;
146                                    remote-endpoint = <&vin2csi20>;
147                            };
148                            csi20vin3: endpoint@3 {
149                                    reg = <3>;
150                                    remote-endpoint = <&vin3csi20>;
151                            };
152                            csi20vin4: endpoint@4 {
153                                    reg = <4>;
154                                    remote-endpoint = <&vin4csi20>;
155                            };
156                            csi20vin5: endpoint@5 {
157                                    reg = <5>;
158                                    remote-endpoint = <&vin5csi20>;
159                            };
160                            csi20vin6: endpoint@6 {
161                                    reg = <6>;
162                                    remote-endpoint = <&vin6csi20>;
163                            };
164                            csi20vin7: endpoint@7 {
165                                    reg = <7>;
166                                    remote-endpoint = <&vin7csi20>;
167                            };
168                    };
169            };
170    };
171