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  reg:
25    maxItems: 1
26
27  interrupts:
28    maxItems: 1
29
30  clocks:
31    maxItems: 1
32
33  power-domains:
34    maxItems: 1
35
36  resets:
37    maxItems: 1
38
39  ports:
40    $ref: /schemas/graph.yaml#/properties/ports
41
42    properties:
43      port@0:
44        $ref: /schemas/graph.yaml#/properties/port
45        description:
46          Input port node, multiple endpoints describing the connected R-Car
47          CSI-2 receivers.
48
49      port@1:
50        $ref: /schemas/graph.yaml#/properties/port
51        description:
52          Single endpoint describing the R-Car VIN connected to output port 0.
53
54      port@2:
55        $ref: /schemas/graph.yaml#/properties/port
56        description:
57          Single endpoint describing the R-Car VIN connected to output port 1.
58
59      port@3:
60        $ref: /schemas/graph.yaml#/properties/port
61        description:
62          Single endpoint describing the R-Car VIN connected to output port 2.
63
64      port@4:
65        $ref: /schemas/graph.yaml#/properties/port
66        description:
67          Single endpoint describing the R-Car VIN connected to output port 3.
68
69      port@5:
70        $ref: /schemas/graph.yaml#/properties/port
71        description:
72          Single endpoint describing the R-Car VIN connected to output port 4.
73
74      port@6:
75        $ref: /schemas/graph.yaml#/properties/port
76        description:
77          Single endpoint describing the R-Car VIN connected to output port 5.
78
79      port@7:
80        $ref: /schemas/graph.yaml#/properties/port
81        description:
82          Single endpoint describing the R-Car VIN connected to output port 6.
83
84      port@8:
85        $ref: /schemas/graph.yaml#/properties/port
86        description:
87          Single endpoint describing the R-Car VIN connected to output port 7.
88
89    required:
90      - port@0
91      - port@1
92      - port@2
93      - port@3
94      - port@4
95      - port@5
96      - port@6
97      - port@7
98      - port@8
99
100required:
101  - compatible
102  - reg
103  - interrupts
104  - clocks
105  - power-domains
106  - resets
107  - ports
108
109additionalProperties: false
110
111examples:
112  - |
113    #include <dt-bindings/clock/r8a779a0-cpg-mssr.h>
114    #include <dt-bindings/interrupt-controller/arm-gic.h>
115    #include <dt-bindings/power/r8a779a0-sysc.h>
116
117    isp1: isp@fed20000 {
118            compatible = "renesas,r8a779a0-isp";
119            reg = <0xfed20000 0x10000>;
120            interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>;
121            clocks = <&cpg CPG_MOD 613>;
122            power-domains = <&sysc R8A779A0_PD_A3ISP01>;
123            resets = <&cpg 613>;
124
125            ports {
126                    #address-cells = <1>;
127                    #size-cells = <0>;
128
129                    port@0 {
130                            #address-cells = <1>;
131                            #size-cells = <0>;
132
133                            reg = <0>;
134                            isp1csi41: endpoint@1 {
135                                    reg = <1>;
136                                    remote-endpoint = <&csi41isp1>;
137                            };
138                    };
139
140                    port@1 {
141                            reg = <1>;
142                            isp1vin08: endpoint {
143                                    remote-endpoint = <&vin08isp1>;
144                            };
145                    };
146
147                    port@2 {
148                            reg = <2>;
149                            isp1vin09: endpoint {
150                                    remote-endpoint = <&vin09isp1>;
151                            };
152                    };
153
154                    port@3 {
155                            reg = <3>;
156                            isp1vin10: endpoint {
157                                    remote-endpoint = <&vin10isp1>;
158                            };
159                    };
160
161                    port@4 {
162                            reg = <4>;
163                            isp1vin11: endpoint {
164                                    remote-endpoint = <&vin11isp1>;
165                            };
166                    };
167
168                    port@5 {
169                            reg = <5>;
170                            isp1vin12: endpoint {
171                                    remote-endpoint = <&vin12isp1>;
172                            };
173                    };
174
175                    port@6 {
176                            reg = <6>;
177                            isp1vin13: endpoint {
178                                    remote-endpoint = <&vin13isp1>;
179                            };
180                    };
181
182                    port@7 {
183                            reg = <7>;
184                            isp1vin14: endpoint {
185                                    remote-endpoint = <&vin14isp1>;
186                            };
187                    };
188
189                    port@8 {
190                            reg = <8>;
191                            isp1vin15: endpoint {
192                                    remote-endpoint = <&vin15isp1>;
193                            };
194                    };
195            };
196    };
197