xref: /linux/Documentation/devicetree/bindings/media/renesas,isp.yaml (revision e49a3eac9207e9575337f70feeb29430f6f16bb7)
1# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2# Copyright (C) 2021 Renesas Electronics Corp.
3%YAML 1.2
4---
5$id: http://devicetree.org/schemas/media/renesas,isp.yaml#
6$schema: http://devicetree.org/meta-schemas/core.yaml#
7
8title: Renesas R-Car ISP Channel Selector
9
10maintainers:
11  - Niklas Söderlund <niklas.soderlund@ragnatech.se>
12
13description:
14  The R-Car ISP Channel Selector provides MIPI CSI-2 VC and DT filtering
15  capabilities for the Renesas R-Car family of devices. It is used in
16  conjunction with the R-Car VIN and CSI-2 modules, which provides the video
17  capture capabilities.
18
19properties:
20  compatible:
21    items:
22      - enum:
23          - renesas,r8a779a0-isp # V3U
24          - renesas,r8a779g0-isp # V4H
25          - renesas,r8a779h0-isp # V4M
26      - const: renesas,rcar-gen4-isp # Generic R-Car Gen4
27  reg:
28    minItems: 1
29    maxItems: 2
30
31  reg-names:
32    minItems: 1
33    items:
34      - const: cs
35      - const: core
36
37  interrupts:
38    minItems: 1
39    maxItems: 2
40
41  interrupt-names:
42    minItems: 1
43    items:
44      - const: cs
45      - const: core
46
47  clocks:
48    minItems: 1
49    maxItems: 2
50
51  clock-names:
52    minItems: 1
53    items:
54      - const: cs
55      - const: core
56
57  power-domains:
58    maxItems: 1
59
60  resets:
61    minItems: 1
62    maxItems: 2
63
64  reset-names:
65    minItems: 1
66    items:
67      - const: cs
68      - const: core
69
70  renesas,vspx:
71    $ref: /schemas/types.yaml#/definitions/phandle
72    description:
73      A phandle to the companion VSPX responsible for the Streaming Bridge
74      functionality. The Streaming Bridge is responsible for feeding image
75      and configuration data to the ISP when operating in memory-to-memory
76      mode.
77
78  ports:
79    $ref: /schemas/graph.yaml#/properties/ports
80
81    properties:
82      port@0:
83        $ref: /schemas/graph.yaml#/properties/port
84        description:
85          Input port node, multiple endpoints describing the connected R-Car
86          CSI-2 receivers.
87
88      port@1:
89        $ref: /schemas/graph.yaml#/properties/port
90        description:
91          Single endpoint describing the R-Car VIN connected to output port 0.
92
93      port@2:
94        $ref: /schemas/graph.yaml#/properties/port
95        description:
96          Single endpoint describing the R-Car VIN connected to output port 1.
97
98      port@3:
99        $ref: /schemas/graph.yaml#/properties/port
100        description:
101          Single endpoint describing the R-Car VIN connected to output port 2.
102
103      port@4:
104        $ref: /schemas/graph.yaml#/properties/port
105        description:
106          Single endpoint describing the R-Car VIN connected to output port 3.
107
108      port@5:
109        $ref: /schemas/graph.yaml#/properties/port
110        description:
111          Single endpoint describing the R-Car VIN connected to output port 4.
112
113      port@6:
114        $ref: /schemas/graph.yaml#/properties/port
115        description:
116          Single endpoint describing the R-Car VIN connected to output port 5.
117
118      port@7:
119        $ref: /schemas/graph.yaml#/properties/port
120        description:
121          Single endpoint describing the R-Car VIN connected to output port 6.
122
123      port@8:
124        $ref: /schemas/graph.yaml#/properties/port
125        description:
126          Single endpoint describing the R-Car VIN connected to output port 7.
127
128    required:
129      - port@0
130      - port@1
131      - port@2
132      - port@3
133      - port@4
134      - port@5
135      - port@6
136      - port@7
137      - port@8
138
139required:
140  - compatible
141  - reg
142  - reg-names
143  - interrupts
144  - interrupt-names
145  - clocks
146  - clock-names
147  - power-domains
148  - resets
149  - reset-names
150  - ports
151
152additionalProperties: false
153
154examples:
155  - |
156    #include <dt-bindings/clock/r8a779a0-cpg-mssr.h>
157    #include <dt-bindings/interrupt-controller/arm-gic.h>
158    #include <dt-bindings/power/r8a779a0-sysc.h>
159
160    isp1: isp@fed20000 {
161            compatible = "renesas,r8a779a0-isp", "renesas,rcar-gen4-isp";
162            reg = <0xfed20000 0x10000>, <0xfee00000 0x100000>;
163            reg-names = "cs", "core";
164            interrupts = <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>,
165                         <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>;
166            interrupt-names = "cs", "core";
167            clocks = <&cpg CPG_MOD 613>, <&cpg CPG_MOD 17>;
168            clock-names = "cs", "core";
169            power-domains = <&sysc R8A779A0_PD_A3ISP01>;
170            resets = <&cpg 613>, <&cpg 17>;
171            reset-names = "cs", "core";
172
173            renesas,vspx = <&vspx1>;
174
175            ports {
176                    #address-cells = <1>;
177                    #size-cells = <0>;
178
179                    port@0 {
180                            #address-cells = <1>;
181                            #size-cells = <0>;
182
183                            reg = <0>;
184                            isp1csi41: endpoint@1 {
185                                    reg = <1>;
186                                    remote-endpoint = <&csi41isp1>;
187                            };
188                    };
189
190                    port@1 {
191                            reg = <1>;
192                            isp1vin08: endpoint {
193                                    remote-endpoint = <&vin08isp1>;
194                            };
195                    };
196
197                    port@2 {
198                            reg = <2>;
199                            isp1vin09: endpoint {
200                                    remote-endpoint = <&vin09isp1>;
201                            };
202                    };
203
204                    port@3 {
205                            reg = <3>;
206                            isp1vin10: endpoint {
207                                    remote-endpoint = <&vin10isp1>;
208                            };
209                    };
210
211                    port@4 {
212                            reg = <4>;
213                            isp1vin11: endpoint {
214                                    remote-endpoint = <&vin11isp1>;
215                            };
216                    };
217
218                    port@5 {
219                            reg = <5>;
220                            isp1vin12: endpoint {
221                                    remote-endpoint = <&vin12isp1>;
222                            };
223                    };
224
225                    port@6 {
226                            reg = <6>;
227                            isp1vin13: endpoint {
228                                    remote-endpoint = <&vin13isp1>;
229                            };
230                    };
231
232                    port@7 {
233                            reg = <7>;
234                            isp1vin14: endpoint {
235                                    remote-endpoint = <&vin14isp1>;
236                            };
237                    };
238
239                    port@8 {
240                            reg = <8>;
241                            isp1vin15: endpoint {
242                                    remote-endpoint = <&vin15isp1>;
243                            };
244                    };
245            };
246    };
247