blob: dbc8dcab109d15db556bd079b66642b3af6dfa18 [file] [log] [blame]
Marek Vasut71d2a5e2023-01-26 21:01:32 +01001// SPDX-License-Identifier: GPL-2.0
2/*
3 * Device Tree Source for the Falcon CSI/DSI sub-board
4 *
5 * Copyright (C) 2021 Glider bv
6 */
7
Marek Vasut61128cf2023-09-17 16:13:11 +02008#include <dt-bindings/media/video-interfaces.h>
9
Marek Vasut71d2a5e2023-01-26 21:01:32 +010010&csi40 {
11 status = "okay";
12
13 ports {
14 #address-cells = <1>;
15 #size-cells = <0>;
16
17 port@0 {
18 reg = <0>;
19
20 csi40_in: endpoint {
21 clock-lanes = <0>;
22 data-lanes = <1 2 3 4>;
23 remote-endpoint = <&max96712_out0>;
24 };
25 };
26 };
27};
28
29&csi42 {
30 status = "okay";
31
32 ports {
33 #address-cells = <1>;
34 #size-cells = <0>;
35
36 port@0 {
37 reg = <0>;
38
39 csi42_in: endpoint {
40 clock-lanes = <0>;
41 data-lanes = <1 2 3 4>;
42 remote-endpoint = <&max96712_out1>;
43 };
44 };
45 };
46};
47
48&csi43 {
49 status = "okay";
50
51 ports {
52 #address-cells = <1>;
53 #size-cells = <0>;
54
55 port@0 {
56 reg = <0>;
57
58 csi43_in: endpoint {
59 clock-lanes = <0>;
60 data-lanes = <1 2 3 4>;
61 remote-endpoint = <&max96712_out2>;
62 };
63 };
64 };
65};
66
67&i2c0 {
68 pca9654_a: gpio@21 {
69 compatible = "onnn,pca9654";
70 reg = <0x21>;
71 gpio-controller;
72 #gpio-cells = <2>;
73 };
74
75 pca9654_b: gpio@22 {
76 compatible = "onnn,pca9654";
77 reg = <0x22>;
78 gpio-controller;
79 #gpio-cells = <2>;
80 };
81
82 pca9654_c: gpio@23 {
83 compatible = "onnn,pca9654";
84 reg = <0x23>;
85 gpio-controller;
86 #gpio-cells = <2>;
87 };
88
89 eeprom@52 {
90 compatible = "rohm,br24g01", "atmel,24c01";
91 label = "csi-dsi-sub-board-id";
92 reg = <0x52>;
93 pagesize = <8>;
94 };
95};
96
97&i2c1 {
98 gmsl0: gmsl-deserializer@49 {
99 compatible = "maxim,max96712";
100 reg = <0x49>;
101 enable-gpios = <&pca9654_a 0 GPIO_ACTIVE_HIGH>;
102
103 ports {
104 #address-cells = <1>;
105 #size-cells = <0>;
106
107 port@4 {
108 reg = <4>;
109 max96712_out0: endpoint {
Marek Vasut61128cf2023-09-17 16:13:11 +0200110 bus-type = <MEDIA_BUS_TYPE_CSI2_DPHY>;
Marek Vasut71d2a5e2023-01-26 21:01:32 +0100111 clock-lanes = <0>;
112 data-lanes = <1 2 3 4>;
113 remote-endpoint = <&csi40_in>;
114 };
115 };
116 };
117 };
118
119 gmsl1: gmsl-deserializer@4b {
120 compatible = "maxim,max96712";
121 reg = <0x4b>;
122 enable-gpios = <&pca9654_b 0 GPIO_ACTIVE_HIGH>;
123
124 ports {
125 #address-cells = <1>;
126 #size-cells = <0>;
127
128 port@4 {
129 reg = <4>;
130 max96712_out1: endpoint {
Marek Vasut61128cf2023-09-17 16:13:11 +0200131 bus-type = <MEDIA_BUS_TYPE_CSI2_DPHY>;
Marek Vasut71d2a5e2023-01-26 21:01:32 +0100132 clock-lanes = <0>;
133 data-lanes = <1 2 3 4>;
134 lane-polarities = <0 0 0 0 1>;
135 remote-endpoint = <&csi42_in>;
136 };
137 };
138 };
139 };
140
141 gmsl2: gmsl-deserializer@6b {
142 compatible = "maxim,max96712";
143 reg = <0x6b>;
144 enable-gpios = <&pca9654_c 0 GPIO_ACTIVE_HIGH>;
145
146 ports {
147 #address-cells = <1>;
148 #size-cells = <0>;
149
150 port@4 {
151 reg = <4>;
152 max96712_out2: endpoint {
Marek Vasut61128cf2023-09-17 16:13:11 +0200153 bus-type = <MEDIA_BUS_TYPE_CSI2_DPHY>;
Marek Vasut71d2a5e2023-01-26 21:01:32 +0100154 clock-lanes = <0>;
155 data-lanes = <1 2 3 4>;
156 lane-polarities = <0 0 0 0 1>;
157 remote-endpoint = <&csi43_in>;
158 };
159 };
160 };
161 };
162};
163
164&isp0 {
165 status = "okay";
166};
167
168&isp2 {
169 status = "okay";
170};
171
172&isp3 {
173 status = "okay";
174};
175
176&vin00 {
177 status = "okay";
178};
179
180&vin01 {
181 status = "okay";
182};
183
184&vin02 {
185 status = "okay";
186};
187
188&vin03 {
189 status = "okay";
190};
191
192&vin04 {
193 status = "okay";
194};
195
196&vin05 {
197 status = "okay";
198};
199
200&vin06 {
201 status = "okay";
202};
203
204&vin07 {
205 status = "okay";
206};
207
208&vin16 {
209 status = "okay";
210};
211
212&vin17 {
213 status = "okay";
214};
215
216&vin18 {
217 status = "okay";
218};
219
220&vin19 {
221 status = "okay";
222};
223
224&vin20 {
225 status = "okay";
226};
227
228&vin21 {
229 status = "okay";
230};
231
232&vin22 {
233 status = "okay";
234};
235
236&vin23 {
237 status = "okay";
238};
239
240&vin24 {
241 status = "okay";
242};
243
244&vin25 {
245 status = "okay";
246};
247
248&vin26 {
249 status = "okay";
250};
251
252&vin27 {
253 status = "okay";
254};
255
256&vin28 {
257 status = "okay";
258};
259
260&vin29 {
261 status = "okay";
262};
263
264&vin30 {
265 status = "okay";
266};
267
268&vin31 {
269 status = "okay";
270};