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