12eb4d8dcSEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0
22eb4d8dcSEmmanuel Vadot/*
32eb4d8dcSEmmanuel Vadot * Device Tree Source for the Falcon CSI/DSI sub-board
42eb4d8dcSEmmanuel Vadot *
52eb4d8dcSEmmanuel Vadot * Copyright (C) 2021 Glider bv
62eb4d8dcSEmmanuel Vadot */
72eb4d8dcSEmmanuel Vadot
8*fac71e4eSEmmanuel Vadot#include <dt-bindings/media/video-interfaces.h>
9*fac71e4eSEmmanuel Vadot
10c9ccf3a3SEmmanuel Vadot&csi40 {
11c9ccf3a3SEmmanuel Vadot	status = "okay";
12c9ccf3a3SEmmanuel Vadot
13c9ccf3a3SEmmanuel Vadot	ports {
14c9ccf3a3SEmmanuel Vadot		#address-cells = <1>;
15c9ccf3a3SEmmanuel Vadot		#size-cells = <0>;
16c9ccf3a3SEmmanuel Vadot
17c9ccf3a3SEmmanuel Vadot		port@0 {
18c9ccf3a3SEmmanuel Vadot			reg = <0>;
19c9ccf3a3SEmmanuel Vadot
20c9ccf3a3SEmmanuel Vadot			csi40_in: endpoint {
21c9ccf3a3SEmmanuel Vadot				clock-lanes = <0>;
22c9ccf3a3SEmmanuel Vadot				data-lanes = <1 2 3 4>;
23c9ccf3a3SEmmanuel Vadot				remote-endpoint = <&max96712_out0>;
24c9ccf3a3SEmmanuel Vadot			};
25c9ccf3a3SEmmanuel Vadot		};
26c9ccf3a3SEmmanuel Vadot	};
27c9ccf3a3SEmmanuel Vadot};
28c9ccf3a3SEmmanuel Vadot
29c9ccf3a3SEmmanuel Vadot&csi42 {
30c9ccf3a3SEmmanuel Vadot	status = "okay";
31c9ccf3a3SEmmanuel Vadot
32c9ccf3a3SEmmanuel Vadot	ports {
33c9ccf3a3SEmmanuel Vadot		#address-cells = <1>;
34c9ccf3a3SEmmanuel Vadot		#size-cells = <0>;
35c9ccf3a3SEmmanuel Vadot
36c9ccf3a3SEmmanuel Vadot		port@0 {
37c9ccf3a3SEmmanuel Vadot			reg = <0>;
38c9ccf3a3SEmmanuel Vadot
39c9ccf3a3SEmmanuel Vadot			csi42_in: endpoint {
40c9ccf3a3SEmmanuel Vadot				clock-lanes = <0>;
41c9ccf3a3SEmmanuel Vadot				data-lanes = <1 2 3 4>;
42c9ccf3a3SEmmanuel Vadot				remote-endpoint = <&max96712_out1>;
43c9ccf3a3SEmmanuel Vadot			};
44c9ccf3a3SEmmanuel Vadot		};
45c9ccf3a3SEmmanuel Vadot	};
46c9ccf3a3SEmmanuel Vadot};
47c9ccf3a3SEmmanuel Vadot
48c9ccf3a3SEmmanuel Vadot&csi43 {
49c9ccf3a3SEmmanuel Vadot	status = "okay";
50c9ccf3a3SEmmanuel Vadot
51c9ccf3a3SEmmanuel Vadot	ports {
52c9ccf3a3SEmmanuel Vadot		#address-cells = <1>;
53c9ccf3a3SEmmanuel Vadot		#size-cells = <0>;
54c9ccf3a3SEmmanuel Vadot
55c9ccf3a3SEmmanuel Vadot		port@0 {
56c9ccf3a3SEmmanuel Vadot			reg = <0>;
57c9ccf3a3SEmmanuel Vadot
58c9ccf3a3SEmmanuel Vadot			csi43_in: endpoint {
59c9ccf3a3SEmmanuel Vadot				clock-lanes = <0>;
60c9ccf3a3SEmmanuel Vadot				data-lanes = <1 2 3 4>;
61c9ccf3a3SEmmanuel Vadot				remote-endpoint = <&max96712_out2>;
62c9ccf3a3SEmmanuel Vadot			};
63c9ccf3a3SEmmanuel Vadot		};
64c9ccf3a3SEmmanuel Vadot	};
65c9ccf3a3SEmmanuel Vadot};
66c9ccf3a3SEmmanuel Vadot
672eb4d8dcSEmmanuel Vadot&i2c0 {
685956d97fSEmmanuel Vadot	pca9654_a: gpio@21 {
695956d97fSEmmanuel Vadot		compatible = "onnn,pca9654";
705956d97fSEmmanuel Vadot		reg = <0x21>;
715956d97fSEmmanuel Vadot		gpio-controller;
725956d97fSEmmanuel Vadot		#gpio-cells = <2>;
735956d97fSEmmanuel Vadot	};
745956d97fSEmmanuel Vadot
755956d97fSEmmanuel Vadot	pca9654_b: gpio@22 {
765956d97fSEmmanuel Vadot		compatible = "onnn,pca9654";
775956d97fSEmmanuel Vadot		reg = <0x22>;
785956d97fSEmmanuel Vadot		gpio-controller;
795956d97fSEmmanuel Vadot		#gpio-cells = <2>;
805956d97fSEmmanuel Vadot	};
815956d97fSEmmanuel Vadot
825956d97fSEmmanuel Vadot	pca9654_c: gpio@23 {
835956d97fSEmmanuel Vadot		compatible = "onnn,pca9654";
845956d97fSEmmanuel Vadot		reg = <0x23>;
855956d97fSEmmanuel Vadot		gpio-controller;
865956d97fSEmmanuel Vadot		#gpio-cells = <2>;
875956d97fSEmmanuel Vadot	};
885956d97fSEmmanuel Vadot
892eb4d8dcSEmmanuel Vadot	eeprom@52 {
902eb4d8dcSEmmanuel Vadot		compatible = "rohm,br24g01", "atmel,24c01";
912eb4d8dcSEmmanuel Vadot		label = "csi-dsi-sub-board-id";
922eb4d8dcSEmmanuel Vadot		reg = <0x52>;
932eb4d8dcSEmmanuel Vadot		pagesize = <8>;
942eb4d8dcSEmmanuel Vadot	};
952eb4d8dcSEmmanuel Vadot};
96c9ccf3a3SEmmanuel Vadot
97c9ccf3a3SEmmanuel Vadot&i2c1 {
98c9ccf3a3SEmmanuel Vadot	gmsl0: gmsl-deserializer@49 {
99c9ccf3a3SEmmanuel Vadot		compatible = "maxim,max96712";
100c9ccf3a3SEmmanuel Vadot		reg = <0x49>;
101c9ccf3a3SEmmanuel Vadot		enable-gpios = <&pca9654_a 0 GPIO_ACTIVE_HIGH>;
102c9ccf3a3SEmmanuel Vadot
103c9ccf3a3SEmmanuel Vadot		ports {
104c9ccf3a3SEmmanuel Vadot			#address-cells = <1>;
105c9ccf3a3SEmmanuel Vadot			#size-cells = <0>;
106c9ccf3a3SEmmanuel Vadot
107c9ccf3a3SEmmanuel Vadot			port@4 {
108c9ccf3a3SEmmanuel Vadot				reg = <4>;
109c9ccf3a3SEmmanuel Vadot				max96712_out0: endpoint {
110*fac71e4eSEmmanuel Vadot					bus-type = <MEDIA_BUS_TYPE_CSI2_DPHY>;
111c9ccf3a3SEmmanuel Vadot					clock-lanes = <0>;
112c9ccf3a3SEmmanuel Vadot					data-lanes = <1 2 3 4>;
113c9ccf3a3SEmmanuel Vadot					remote-endpoint = <&csi40_in>;
114c9ccf3a3SEmmanuel Vadot				};
115c9ccf3a3SEmmanuel Vadot			};
116c9ccf3a3SEmmanuel Vadot		};
117c9ccf3a3SEmmanuel Vadot	};
118c9ccf3a3SEmmanuel Vadot
119c9ccf3a3SEmmanuel Vadot	gmsl1: gmsl-deserializer@4b {
120c9ccf3a3SEmmanuel Vadot		compatible = "maxim,max96712";
121c9ccf3a3SEmmanuel Vadot		reg = <0x4b>;
122c9ccf3a3SEmmanuel Vadot		enable-gpios = <&pca9654_b 0 GPIO_ACTIVE_HIGH>;
123c9ccf3a3SEmmanuel Vadot
124c9ccf3a3SEmmanuel Vadot		ports {
125c9ccf3a3SEmmanuel Vadot			#address-cells = <1>;
126c9ccf3a3SEmmanuel Vadot			#size-cells = <0>;
127c9ccf3a3SEmmanuel Vadot
128c9ccf3a3SEmmanuel Vadot			port@4 {
129c9ccf3a3SEmmanuel Vadot				reg = <4>;
130c9ccf3a3SEmmanuel Vadot				max96712_out1: endpoint {
131*fac71e4eSEmmanuel Vadot					bus-type = <MEDIA_BUS_TYPE_CSI2_DPHY>;
132c9ccf3a3SEmmanuel Vadot					clock-lanes = <0>;
133c9ccf3a3SEmmanuel Vadot					data-lanes = <1 2 3 4>;
134c9ccf3a3SEmmanuel Vadot					lane-polarities = <0 0 0 0 1>;
135c9ccf3a3SEmmanuel Vadot					remote-endpoint = <&csi42_in>;
136c9ccf3a3SEmmanuel Vadot				};
137c9ccf3a3SEmmanuel Vadot			};
138c9ccf3a3SEmmanuel Vadot		};
139c9ccf3a3SEmmanuel Vadot	};
140c9ccf3a3SEmmanuel Vadot
141c9ccf3a3SEmmanuel Vadot	gmsl2: gmsl-deserializer@6b {
142c9ccf3a3SEmmanuel Vadot		compatible = "maxim,max96712";
143c9ccf3a3SEmmanuel Vadot		reg = <0x6b>;
144c9ccf3a3SEmmanuel Vadot		enable-gpios = <&pca9654_c 0 GPIO_ACTIVE_HIGH>;
145c9ccf3a3SEmmanuel Vadot
146c9ccf3a3SEmmanuel Vadot		ports {
147c9ccf3a3SEmmanuel Vadot			#address-cells = <1>;
148c9ccf3a3SEmmanuel Vadot			#size-cells = <0>;
149c9ccf3a3SEmmanuel Vadot
150c9ccf3a3SEmmanuel Vadot			port@4 {
151c9ccf3a3SEmmanuel Vadot				reg = <4>;
152c9ccf3a3SEmmanuel Vadot				max96712_out2: endpoint {
153*fac71e4eSEmmanuel Vadot					bus-type = <MEDIA_BUS_TYPE_CSI2_DPHY>;
154c9ccf3a3SEmmanuel Vadot					clock-lanes = <0>;
155c9ccf3a3SEmmanuel Vadot					data-lanes = <1 2 3 4>;
156c9ccf3a3SEmmanuel Vadot					lane-polarities = <0 0 0 0 1>;
157c9ccf3a3SEmmanuel Vadot					remote-endpoint = <&csi43_in>;
158c9ccf3a3SEmmanuel Vadot				};
159c9ccf3a3SEmmanuel Vadot			};
160c9ccf3a3SEmmanuel Vadot		};
161c9ccf3a3SEmmanuel Vadot	};
162c9ccf3a3SEmmanuel Vadot};
163c9ccf3a3SEmmanuel Vadot
164c9ccf3a3SEmmanuel Vadot&isp0 {
165c9ccf3a3SEmmanuel Vadot	status = "okay";
166c9ccf3a3SEmmanuel Vadot};
167c9ccf3a3SEmmanuel Vadot
168c9ccf3a3SEmmanuel Vadot&isp2 {
169c9ccf3a3SEmmanuel Vadot	status = "okay";
170c9ccf3a3SEmmanuel Vadot};
171c9ccf3a3SEmmanuel Vadot
172c9ccf3a3SEmmanuel Vadot&isp3 {
173c9ccf3a3SEmmanuel Vadot	status = "okay";
174c9ccf3a3SEmmanuel Vadot};
175c9ccf3a3SEmmanuel Vadot
176c9ccf3a3SEmmanuel Vadot&vin00 {
177c9ccf3a3SEmmanuel Vadot	status = "okay";
178c9ccf3a3SEmmanuel Vadot};
179c9ccf3a3SEmmanuel Vadot
180c9ccf3a3SEmmanuel Vadot&vin01 {
181c9ccf3a3SEmmanuel Vadot	status = "okay";
182c9ccf3a3SEmmanuel Vadot};
183c9ccf3a3SEmmanuel Vadot
184c9ccf3a3SEmmanuel Vadot&vin02 {
185c9ccf3a3SEmmanuel Vadot	status = "okay";
186c9ccf3a3SEmmanuel Vadot};
187c9ccf3a3SEmmanuel Vadot
188c9ccf3a3SEmmanuel Vadot&vin03 {
189c9ccf3a3SEmmanuel Vadot	status = "okay";
190c9ccf3a3SEmmanuel Vadot};
191c9ccf3a3SEmmanuel Vadot
192c9ccf3a3SEmmanuel Vadot&vin04 {
193c9ccf3a3SEmmanuel Vadot	status = "okay";
194c9ccf3a3SEmmanuel Vadot};
195c9ccf3a3SEmmanuel Vadot
196c9ccf3a3SEmmanuel Vadot&vin05 {
197c9ccf3a3SEmmanuel Vadot	status = "okay";
198c9ccf3a3SEmmanuel Vadot};
199c9ccf3a3SEmmanuel Vadot
200c9ccf3a3SEmmanuel Vadot&vin06 {
201c9ccf3a3SEmmanuel Vadot	status = "okay";
202c9ccf3a3SEmmanuel Vadot};
203c9ccf3a3SEmmanuel Vadot
204c9ccf3a3SEmmanuel Vadot&vin07 {
205c9ccf3a3SEmmanuel Vadot	status = "okay";
206c9ccf3a3SEmmanuel Vadot};
207c9ccf3a3SEmmanuel Vadot
208c9ccf3a3SEmmanuel Vadot&vin16 {
209c9ccf3a3SEmmanuel Vadot	status = "okay";
210c9ccf3a3SEmmanuel Vadot};
211c9ccf3a3SEmmanuel Vadot
212c9ccf3a3SEmmanuel Vadot&vin17 {
213c9ccf3a3SEmmanuel Vadot	status = "okay";
214c9ccf3a3SEmmanuel Vadot};
215c9ccf3a3SEmmanuel Vadot
216c9ccf3a3SEmmanuel Vadot&vin18 {
217c9ccf3a3SEmmanuel Vadot	status = "okay";
218c9ccf3a3SEmmanuel Vadot};
219c9ccf3a3SEmmanuel Vadot
220c9ccf3a3SEmmanuel Vadot&vin19 {
221c9ccf3a3SEmmanuel Vadot	status = "okay";
222c9ccf3a3SEmmanuel Vadot};
223c9ccf3a3SEmmanuel Vadot
224c9ccf3a3SEmmanuel Vadot&vin20 {
225c9ccf3a3SEmmanuel Vadot	status = "okay";
226c9ccf3a3SEmmanuel Vadot};
227c9ccf3a3SEmmanuel Vadot
228c9ccf3a3SEmmanuel Vadot&vin21 {
229c9ccf3a3SEmmanuel Vadot	status = "okay";
230c9ccf3a3SEmmanuel Vadot};
231c9ccf3a3SEmmanuel Vadot
232c9ccf3a3SEmmanuel Vadot&vin22 {
233c9ccf3a3SEmmanuel Vadot	status = "okay";
234c9ccf3a3SEmmanuel Vadot};
235c9ccf3a3SEmmanuel Vadot
236c9ccf3a3SEmmanuel Vadot&vin23 {
237c9ccf3a3SEmmanuel Vadot	status = "okay";
238c9ccf3a3SEmmanuel Vadot};
239c9ccf3a3SEmmanuel Vadot
240c9ccf3a3SEmmanuel Vadot&vin24 {
241c9ccf3a3SEmmanuel Vadot	status = "okay";
242c9ccf3a3SEmmanuel Vadot};
243c9ccf3a3SEmmanuel Vadot
244c9ccf3a3SEmmanuel Vadot&vin25 {
245c9ccf3a3SEmmanuel Vadot	status = "okay";
246c9ccf3a3SEmmanuel Vadot};
247c9ccf3a3SEmmanuel Vadot
248c9ccf3a3SEmmanuel Vadot&vin26 {
249c9ccf3a3SEmmanuel Vadot	status = "okay";
250c9ccf3a3SEmmanuel Vadot};
251c9ccf3a3SEmmanuel Vadot
252c9ccf3a3SEmmanuel Vadot&vin27 {
253c9ccf3a3SEmmanuel Vadot	status = "okay";
254c9ccf3a3SEmmanuel Vadot};
255c9ccf3a3SEmmanuel Vadot
256c9ccf3a3SEmmanuel Vadot&vin28 {
257c9ccf3a3SEmmanuel Vadot	status = "okay";
258c9ccf3a3SEmmanuel Vadot};
259c9ccf3a3SEmmanuel Vadot
260c9ccf3a3SEmmanuel Vadot&vin29 {
261c9ccf3a3SEmmanuel Vadot	status = "okay";
262c9ccf3a3SEmmanuel Vadot};
263c9ccf3a3SEmmanuel Vadot
264c9ccf3a3SEmmanuel Vadot&vin30 {
265c9ccf3a3SEmmanuel Vadot	status = "okay";
266c9ccf3a3SEmmanuel Vadot};
267c9ccf3a3SEmmanuel Vadot
268c9ccf3a3SEmmanuel Vadot&vin31 {
269c9ccf3a3SEmmanuel Vadot	status = "okay";
270c9ccf3a3SEmmanuel Vadot};
271