xref: /OK3568_Linux_fs/kernel/arch/arm64/boot/dts/rockchip/rk3588-evb7-cam-8x.dtsi (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2*4882a593Smuzhiyun/*
3*4882a593Smuzhiyun * Copyright (c) 2022 Rockchip Electronics Co., Ltd.
4*4882a593Smuzhiyun *
5*4882a593Smuzhiyun */
6*4882a593Smuzhiyun
7*4882a593Smuzhiyun#include <dt-bindings/display/media-bus-format.h>
8*4882a593Smuzhiyun#define LINK_FREQ               700000000
9*4882a593Smuzhiyun
10*4882a593Smuzhiyun
11*4882a593Smuzhiyun&mipi_dcphy0 {
12*4882a593Smuzhiyun	status = "okay";
13*4882a593Smuzhiyun};
14*4882a593Smuzhiyun
15*4882a593Smuzhiyun&mipi_dcphy1 {
16*4882a593Smuzhiyun	status = "okay";
17*4882a593Smuzhiyun};
18*4882a593Smuzhiyun
19*4882a593Smuzhiyun&csi2_dcphy0 {
20*4882a593Smuzhiyun	status = "okay";
21*4882a593Smuzhiyun
22*4882a593Smuzhiyun	ports {
23*4882a593Smuzhiyun		#address-cells = <1>;
24*4882a593Smuzhiyun		#size-cells = <0>;
25*4882a593Smuzhiyun		port@0 {
26*4882a593Smuzhiyun			reg = <0>;
27*4882a593Smuzhiyun			#address-cells = <1>;
28*4882a593Smuzhiyun			#size-cells = <0>;
29*4882a593Smuzhiyun
30*4882a593Smuzhiyun			csidcphy0_in: endpoint@1 {
31*4882a593Smuzhiyun				reg = <1>;
32*4882a593Smuzhiyun				remote-endpoint = <&rk1608_dphy0_out>;
33*4882a593Smuzhiyun				data-lanes = <1 2>;
34*4882a593Smuzhiyun			};
35*4882a593Smuzhiyun		};
36*4882a593Smuzhiyun		port@1 {
37*4882a593Smuzhiyun			reg = <1>;
38*4882a593Smuzhiyun			#address-cells = <1>;
39*4882a593Smuzhiyun			#size-cells = <0>;
40*4882a593Smuzhiyun
41*4882a593Smuzhiyun			csidcphy0_out: endpoint@0 {
42*4882a593Smuzhiyun				reg = <0>;
43*4882a593Smuzhiyun				remote-endpoint = <&mipi0_csi2_input>;
44*4882a593Smuzhiyun			};
45*4882a593Smuzhiyun		};
46*4882a593Smuzhiyun	};
47*4882a593Smuzhiyun};
48*4882a593Smuzhiyun
49*4882a593Smuzhiyun&csi2_dcphy1 {
50*4882a593Smuzhiyun	status = "okay";
51*4882a593Smuzhiyun
52*4882a593Smuzhiyun	ports {
53*4882a593Smuzhiyun		#address-cells = <1>;
54*4882a593Smuzhiyun		#size-cells = <0>;
55*4882a593Smuzhiyun		port@0 {
56*4882a593Smuzhiyun			reg = <0>;
57*4882a593Smuzhiyun			#address-cells = <1>;
58*4882a593Smuzhiyun			#size-cells = <0>;
59*4882a593Smuzhiyun
60*4882a593Smuzhiyun			csidcphy1_in: endpoint@1 {
61*4882a593Smuzhiyun				reg = <1>;
62*4882a593Smuzhiyun				remote-endpoint = <&imx464_out>;
63*4882a593Smuzhiyun				data-lanes = <1 2>;
64*4882a593Smuzhiyun			};
65*4882a593Smuzhiyun		};
66*4882a593Smuzhiyun		port@1 {
67*4882a593Smuzhiyun			reg = <1>;
68*4882a593Smuzhiyun			#address-cells = <1>;
69*4882a593Smuzhiyun			#size-cells = <0>;
70*4882a593Smuzhiyun
71*4882a593Smuzhiyun			csidcphy1_out: endpoint@0 {
72*4882a593Smuzhiyun				reg = <0>;
73*4882a593Smuzhiyun				remote-endpoint = <&mipi1_csi2_input>;
74*4882a593Smuzhiyun			};
75*4882a593Smuzhiyun		};
76*4882a593Smuzhiyun	};
77*4882a593Smuzhiyun};
78*4882a593Smuzhiyun
79*4882a593Smuzhiyun&csi2_dphy0_hw {
80*4882a593Smuzhiyun	status = "okay";
81*4882a593Smuzhiyun};
82*4882a593Smuzhiyun
83*4882a593Smuzhiyun&csi2_dphy1_hw {
84*4882a593Smuzhiyun	status = "okay";
85*4882a593Smuzhiyun};
86*4882a593Smuzhiyun
87*4882a593Smuzhiyun&csi2_dphy1 {
88*4882a593Smuzhiyun	status = "okay";
89*4882a593Smuzhiyun
90*4882a593Smuzhiyun	ports {
91*4882a593Smuzhiyun		#address-cells = <1>;
92*4882a593Smuzhiyun		#size-cells = <0>;
93*4882a593Smuzhiyun		port@0 {
94*4882a593Smuzhiyun			reg = <0>;
95*4882a593Smuzhiyun			#address-cells = <1>;
96*4882a593Smuzhiyun			#size-cells = <0>;
97*4882a593Smuzhiyun
98*4882a593Smuzhiyun			csidphy1_in: endpoint@1 {
99*4882a593Smuzhiyun				reg = <1>;
100*4882a593Smuzhiyun				remote-endpoint = <&imx464_out0>;
101*4882a593Smuzhiyun				data-lanes = <1 2>;
102*4882a593Smuzhiyun			};
103*4882a593Smuzhiyun		};
104*4882a593Smuzhiyun		port@1 {
105*4882a593Smuzhiyun			reg = <1>;
106*4882a593Smuzhiyun			#address-cells = <1>;
107*4882a593Smuzhiyun			#size-cells = <0>;
108*4882a593Smuzhiyun
109*4882a593Smuzhiyun			csidphy1_out: endpoint@0 {
110*4882a593Smuzhiyun				reg = <0>;
111*4882a593Smuzhiyun				remote-endpoint = <&mipi2_csi2_input>;
112*4882a593Smuzhiyun			};
113*4882a593Smuzhiyun		};
114*4882a593Smuzhiyun	};
115*4882a593Smuzhiyun};
116*4882a593Smuzhiyun
117*4882a593Smuzhiyun&csi2_dphy2 {
118*4882a593Smuzhiyun	status = "okay";
119*4882a593Smuzhiyun
120*4882a593Smuzhiyun	ports {
121*4882a593Smuzhiyun		#address-cells = <1>;
122*4882a593Smuzhiyun		#size-cells = <0>;
123*4882a593Smuzhiyun		port@0 {
124*4882a593Smuzhiyun			reg = <0>;
125*4882a593Smuzhiyun			#address-cells = <1>;
126*4882a593Smuzhiyun			#size-cells = <0>;
127*4882a593Smuzhiyun
128*4882a593Smuzhiyun			csidphy2_in: endpoint@1 {
129*4882a593Smuzhiyun				reg = <1>;
130*4882a593Smuzhiyun				remote-endpoint = <&imx464_out1>;
131*4882a593Smuzhiyun				data-lanes = <1 2>;
132*4882a593Smuzhiyun			};
133*4882a593Smuzhiyun		};
134*4882a593Smuzhiyun		port@1 {
135*4882a593Smuzhiyun			reg = <1>;
136*4882a593Smuzhiyun			#address-cells = <1>;
137*4882a593Smuzhiyun			#size-cells = <0>;
138*4882a593Smuzhiyun
139*4882a593Smuzhiyun			csidphy2_out: endpoint@0 {
140*4882a593Smuzhiyun				reg = <0>;
141*4882a593Smuzhiyun				remote-endpoint = <&mipi3_csi2_input>;
142*4882a593Smuzhiyun			};
143*4882a593Smuzhiyun		};
144*4882a593Smuzhiyun	};
145*4882a593Smuzhiyun};
146*4882a593Smuzhiyun
147*4882a593Smuzhiyun&csi2_dphy4 {
148*4882a593Smuzhiyun	status = "okay";
149*4882a593Smuzhiyun
150*4882a593Smuzhiyun	ports {
151*4882a593Smuzhiyun		#address-cells = <1>;
152*4882a593Smuzhiyun		#size-cells = <0>;
153*4882a593Smuzhiyun		port@0 {
154*4882a593Smuzhiyun			reg = <0>;
155*4882a593Smuzhiyun			#address-cells = <1>;
156*4882a593Smuzhiyun			#size-cells = <0>;
157*4882a593Smuzhiyun
158*4882a593Smuzhiyun			csidphy4_in: endpoint@1 {
159*4882a593Smuzhiyun				reg = <1>;
160*4882a593Smuzhiyun				remote-endpoint = <&imx464_out2>;
161*4882a593Smuzhiyun				data-lanes = <1 2>;
162*4882a593Smuzhiyun			};
163*4882a593Smuzhiyun		};
164*4882a593Smuzhiyun		port@1 {
165*4882a593Smuzhiyun			reg = <1>;
166*4882a593Smuzhiyun			#address-cells = <1>;
167*4882a593Smuzhiyun			#size-cells = <0>;
168*4882a593Smuzhiyun
169*4882a593Smuzhiyun			csidphy4_out: endpoint@0 {
170*4882a593Smuzhiyun				reg = <0>;
171*4882a593Smuzhiyun				remote-endpoint = <&mipi4_csi2_input>;
172*4882a593Smuzhiyun			};
173*4882a593Smuzhiyun		};
174*4882a593Smuzhiyun	};
175*4882a593Smuzhiyun};
176*4882a593Smuzhiyun
177*4882a593Smuzhiyun&csi2_dphy5 {
178*4882a593Smuzhiyun	status = "okay";
179*4882a593Smuzhiyun
180*4882a593Smuzhiyun	ports {
181*4882a593Smuzhiyun		#address-cells = <1>;
182*4882a593Smuzhiyun		#size-cells = <0>;
183*4882a593Smuzhiyun		port@0 {
184*4882a593Smuzhiyun			reg = <0>;
185*4882a593Smuzhiyun			#address-cells = <1>;
186*4882a593Smuzhiyun			#size-cells = <0>;
187*4882a593Smuzhiyun
188*4882a593Smuzhiyun			csidphy5_in: endpoint@1 {
189*4882a593Smuzhiyun				reg = <1>;
190*4882a593Smuzhiyun				remote-endpoint = <&imx464_out3>;
191*4882a593Smuzhiyun				data-lanes = <1 2>;
192*4882a593Smuzhiyun			};
193*4882a593Smuzhiyun		};
194*4882a593Smuzhiyun		port@1 {
195*4882a593Smuzhiyun			reg = <1>;
196*4882a593Smuzhiyun			#address-cells = <1>;
197*4882a593Smuzhiyun			#size-cells = <0>;
198*4882a593Smuzhiyun
199*4882a593Smuzhiyun			csidphy5_out: endpoint@0 {
200*4882a593Smuzhiyun				reg = <0>;
201*4882a593Smuzhiyun				remote-endpoint = <&mipi5_csi2_input>;
202*4882a593Smuzhiyun			};
203*4882a593Smuzhiyun		};
204*4882a593Smuzhiyun	};
205*4882a593Smuzhiyun};
206*4882a593Smuzhiyun
207*4882a593Smuzhiyun&mipi0_csi2 {
208*4882a593Smuzhiyun	status = "okay";
209*4882a593Smuzhiyun
210*4882a593Smuzhiyun	ports {
211*4882a593Smuzhiyun		#address-cells = <1>;
212*4882a593Smuzhiyun		#size-cells = <0>;
213*4882a593Smuzhiyun
214*4882a593Smuzhiyun		port@0 {
215*4882a593Smuzhiyun			reg = <0>;
216*4882a593Smuzhiyun			#address-cells = <1>;
217*4882a593Smuzhiyun			#size-cells = <0>;
218*4882a593Smuzhiyun
219*4882a593Smuzhiyun			mipi0_csi2_input: endpoint@1 {
220*4882a593Smuzhiyun				reg = <1>;
221*4882a593Smuzhiyun				remote-endpoint = <&csidcphy0_out>;
222*4882a593Smuzhiyun			};
223*4882a593Smuzhiyun		};
224*4882a593Smuzhiyun
225*4882a593Smuzhiyun		port@1 {
226*4882a593Smuzhiyun			reg = <1>;
227*4882a593Smuzhiyun			#address-cells = <1>;
228*4882a593Smuzhiyun			#size-cells = <0>;
229*4882a593Smuzhiyun
230*4882a593Smuzhiyun			mipi0_csi2_output: endpoint@0 {
231*4882a593Smuzhiyun				reg = <0>;
232*4882a593Smuzhiyun				remote-endpoint = <&cif_mipi_in0>;
233*4882a593Smuzhiyun			};
234*4882a593Smuzhiyun		};
235*4882a593Smuzhiyun	};
236*4882a593Smuzhiyun};
237*4882a593Smuzhiyun
238*4882a593Smuzhiyun&mipi1_csi2 {
239*4882a593Smuzhiyun	status = "okay";
240*4882a593Smuzhiyun
241*4882a593Smuzhiyun	ports {
242*4882a593Smuzhiyun		#address-cells = <1>;
243*4882a593Smuzhiyun		#size-cells = <0>;
244*4882a593Smuzhiyun
245*4882a593Smuzhiyun		port@0 {
246*4882a593Smuzhiyun			reg = <0>;
247*4882a593Smuzhiyun			#address-cells = <1>;
248*4882a593Smuzhiyun			#size-cells = <0>;
249*4882a593Smuzhiyun
250*4882a593Smuzhiyun			mipi1_csi2_input: endpoint@1 {
251*4882a593Smuzhiyun				reg = <1>;
252*4882a593Smuzhiyun				remote-endpoint = <&csidcphy1_out>;
253*4882a593Smuzhiyun			};
254*4882a593Smuzhiyun		};
255*4882a593Smuzhiyun
256*4882a593Smuzhiyun		port@1 {
257*4882a593Smuzhiyun			reg = <1>;
258*4882a593Smuzhiyun			#address-cells = <1>;
259*4882a593Smuzhiyun			#size-cells = <0>;
260*4882a593Smuzhiyun
261*4882a593Smuzhiyun			mipi1_csi2_output: endpoint@0 {
262*4882a593Smuzhiyun				reg = <0>;
263*4882a593Smuzhiyun				remote-endpoint = <&cif_mipi_in1>;
264*4882a593Smuzhiyun			};
265*4882a593Smuzhiyun		};
266*4882a593Smuzhiyun	};
267*4882a593Smuzhiyun};
268*4882a593Smuzhiyun
269*4882a593Smuzhiyun&mipi2_csi2 {
270*4882a593Smuzhiyun	status = "okay";
271*4882a593Smuzhiyun
272*4882a593Smuzhiyun	ports {
273*4882a593Smuzhiyun		#address-cells = <1>;
274*4882a593Smuzhiyun		#size-cells = <0>;
275*4882a593Smuzhiyun
276*4882a593Smuzhiyun		port@0 {
277*4882a593Smuzhiyun			reg = <0>;
278*4882a593Smuzhiyun			#address-cells = <1>;
279*4882a593Smuzhiyun			#size-cells = <0>;
280*4882a593Smuzhiyun
281*4882a593Smuzhiyun			mipi2_csi2_input: endpoint@1 {
282*4882a593Smuzhiyun				reg = <1>;
283*4882a593Smuzhiyun				remote-endpoint = <&csidphy1_out>;
284*4882a593Smuzhiyun			};
285*4882a593Smuzhiyun		};
286*4882a593Smuzhiyun
287*4882a593Smuzhiyun		port@1 {
288*4882a593Smuzhiyun			reg = <1>;
289*4882a593Smuzhiyun			#address-cells = <1>;
290*4882a593Smuzhiyun			#size-cells = <0>;
291*4882a593Smuzhiyun
292*4882a593Smuzhiyun			mipi2_csi2_output: endpoint@0 {
293*4882a593Smuzhiyun				reg = <0>;
294*4882a593Smuzhiyun				remote-endpoint = <&cif_mipi_in2>;
295*4882a593Smuzhiyun			};
296*4882a593Smuzhiyun		};
297*4882a593Smuzhiyun	};
298*4882a593Smuzhiyun};
299*4882a593Smuzhiyun
300*4882a593Smuzhiyun&mipi3_csi2 {
301*4882a593Smuzhiyun	status = "okay";
302*4882a593Smuzhiyun
303*4882a593Smuzhiyun	ports {
304*4882a593Smuzhiyun		#address-cells = <1>;
305*4882a593Smuzhiyun		#size-cells = <0>;
306*4882a593Smuzhiyun
307*4882a593Smuzhiyun		port@0 {
308*4882a593Smuzhiyun			reg = <0>;
309*4882a593Smuzhiyun			#address-cells = <1>;
310*4882a593Smuzhiyun			#size-cells = <0>;
311*4882a593Smuzhiyun
312*4882a593Smuzhiyun			mipi3_csi2_input: endpoint@1 {
313*4882a593Smuzhiyun				reg = <1>;
314*4882a593Smuzhiyun				remote-endpoint = <&csidphy2_out>;
315*4882a593Smuzhiyun			};
316*4882a593Smuzhiyun		};
317*4882a593Smuzhiyun
318*4882a593Smuzhiyun		port@1 {
319*4882a593Smuzhiyun			reg = <1>;
320*4882a593Smuzhiyun			#address-cells = <1>;
321*4882a593Smuzhiyun			#size-cells = <0>;
322*4882a593Smuzhiyun
323*4882a593Smuzhiyun			mipi3_csi2_output: endpoint@0 {
324*4882a593Smuzhiyun				reg = <0>;
325*4882a593Smuzhiyun				remote-endpoint = <&cif_mipi_in3>;
326*4882a593Smuzhiyun			};
327*4882a593Smuzhiyun		};
328*4882a593Smuzhiyun	};
329*4882a593Smuzhiyun};
330*4882a593Smuzhiyun
331*4882a593Smuzhiyun&mipi4_csi2 {
332*4882a593Smuzhiyun	status = "okay";
333*4882a593Smuzhiyun
334*4882a593Smuzhiyun	ports {
335*4882a593Smuzhiyun		#address-cells = <1>;
336*4882a593Smuzhiyun		#size-cells = <0>;
337*4882a593Smuzhiyun
338*4882a593Smuzhiyun		port@0 {
339*4882a593Smuzhiyun			reg = <0>;
340*4882a593Smuzhiyun			#address-cells = <1>;
341*4882a593Smuzhiyun			#size-cells = <0>;
342*4882a593Smuzhiyun
343*4882a593Smuzhiyun			mipi4_csi2_input: endpoint@1 {
344*4882a593Smuzhiyun				reg = <1>;
345*4882a593Smuzhiyun				remote-endpoint = <&csidphy4_out>;
346*4882a593Smuzhiyun			};
347*4882a593Smuzhiyun		};
348*4882a593Smuzhiyun
349*4882a593Smuzhiyun		port@1 {
350*4882a593Smuzhiyun			reg = <1>;
351*4882a593Smuzhiyun			#address-cells = <1>;
352*4882a593Smuzhiyun			#size-cells = <0>;
353*4882a593Smuzhiyun
354*4882a593Smuzhiyun			mipi4_csi2_output: endpoint@0 {
355*4882a593Smuzhiyun				reg = <0>;
356*4882a593Smuzhiyun				remote-endpoint = <&cif_mipi_in4>;
357*4882a593Smuzhiyun			};
358*4882a593Smuzhiyun		};
359*4882a593Smuzhiyun	};
360*4882a593Smuzhiyun};
361*4882a593Smuzhiyun
362*4882a593Smuzhiyun&mipi5_csi2 {
363*4882a593Smuzhiyun	status = "okay";
364*4882a593Smuzhiyun
365*4882a593Smuzhiyun	ports {
366*4882a593Smuzhiyun		#address-cells = <1>;
367*4882a593Smuzhiyun		#size-cells = <0>;
368*4882a593Smuzhiyun
369*4882a593Smuzhiyun		port@0 {
370*4882a593Smuzhiyun			reg = <0>;
371*4882a593Smuzhiyun			#address-cells = <1>;
372*4882a593Smuzhiyun			#size-cells = <0>;
373*4882a593Smuzhiyun
374*4882a593Smuzhiyun			mipi5_csi2_input: endpoint@1 {
375*4882a593Smuzhiyun				reg = <1>;
376*4882a593Smuzhiyun				remote-endpoint = <&csidphy5_out>;
377*4882a593Smuzhiyun			};
378*4882a593Smuzhiyun		};
379*4882a593Smuzhiyun
380*4882a593Smuzhiyun		port@1 {
381*4882a593Smuzhiyun			reg = <1>;
382*4882a593Smuzhiyun			#address-cells = <1>;
383*4882a593Smuzhiyun			#size-cells = <0>;
384*4882a593Smuzhiyun
385*4882a593Smuzhiyun			mipi5_csi2_output: endpoint@0 {
386*4882a593Smuzhiyun				reg = <0>;
387*4882a593Smuzhiyun				remote-endpoint = <&cif_mipi_in5>;
388*4882a593Smuzhiyun			};
389*4882a593Smuzhiyun		};
390*4882a593Smuzhiyun	};
391*4882a593Smuzhiyun};
392*4882a593Smuzhiyun
393*4882a593Smuzhiyun&rkcif {
394*4882a593Smuzhiyun	status = "okay";
395*4882a593Smuzhiyun};
396*4882a593Smuzhiyun
397*4882a593Smuzhiyun&rkcif_mipi_lvds {
398*4882a593Smuzhiyun	status = "okay";
399*4882a593Smuzhiyun
400*4882a593Smuzhiyun	port {
401*4882a593Smuzhiyun		cif_mipi_in0: endpoint {
402*4882a593Smuzhiyun			remote-endpoint = <&mipi0_csi2_output>;
403*4882a593Smuzhiyun		};
404*4882a593Smuzhiyun	};
405*4882a593Smuzhiyun};
406*4882a593Smuzhiyun
407*4882a593Smuzhiyun&rkcif_mipi_lvds_sditf {
408*4882a593Smuzhiyun	#address-cells = <1>;
409*4882a593Smuzhiyun	#size-cells = <0>;
410*4882a593Smuzhiyun	status = "okay";
411*4882a593Smuzhiyun	rockchip,combine-index = <0>;
412*4882a593Smuzhiyun	ports {
413*4882a593Smuzhiyun		#address-cells = <1>;
414*4882a593Smuzhiyun		#size-cells = <0>;
415*4882a593Smuzhiyun		port@0 {
416*4882a593Smuzhiyun			reg = <0>;
417*4882a593Smuzhiyun			#address-cells = <1>;
418*4882a593Smuzhiyun			#size-cells = <0>;
419*4882a593Smuzhiyun			mipi_lvds_sditf_in: endpoint@1 {
420*4882a593Smuzhiyun				reg = <1>;
421*4882a593Smuzhiyun				remote-endpoint = <&imx464_out7>;
422*4882a593Smuzhiyun				data-lanes = <1 2>;
423*4882a593Smuzhiyun			};
424*4882a593Smuzhiyun		};
425*4882a593Smuzhiyun
426*4882a593Smuzhiyun		port@1 {
427*4882a593Smuzhiyun			reg = <1>;
428*4882a593Smuzhiyun			#address-cells = <1>;
429*4882a593Smuzhiyun			#size-cells = <0>;
430*4882a593Smuzhiyun			mipi_lvds_sditf: endpoint@0 {
431*4882a593Smuzhiyun				reg = <0>;
432*4882a593Smuzhiyun				remote-endpoint = <&isp0_vir0>;
433*4882a593Smuzhiyun			};
434*4882a593Smuzhiyun		};
435*4882a593Smuzhiyun	};
436*4882a593Smuzhiyun};
437*4882a593Smuzhiyun
438*4882a593Smuzhiyun&rkcif_mipi_lvds_sditf_vir1 {
439*4882a593Smuzhiyun	#address-cells = <1>;
440*4882a593Smuzhiyun	#size-cells = <0>;
441*4882a593Smuzhiyun	status = "okay";
442*4882a593Smuzhiyun	rockchip,combine-index = <1>;
443*4882a593Smuzhiyun	ports {
444*4882a593Smuzhiyun		#address-cells = <1>;
445*4882a593Smuzhiyun		#size-cells = <0>;
446*4882a593Smuzhiyun		port@0 {
447*4882a593Smuzhiyun			reg = <0>;
448*4882a593Smuzhiyun			#address-cells = <1>;
449*4882a593Smuzhiyun			#size-cells = <0>;
450*4882a593Smuzhiyun			mipi_lvds_sditf_vir1_in: endpoint@1 {
451*4882a593Smuzhiyun				reg = <1>;
452*4882a593Smuzhiyun				remote-endpoint = <&imx464_out6>;
453*4882a593Smuzhiyun				data-lanes = <1 2>;
454*4882a593Smuzhiyun			};
455*4882a593Smuzhiyun		};
456*4882a593Smuzhiyun
457*4882a593Smuzhiyun		port@1 {
458*4882a593Smuzhiyun			reg = <1>;
459*4882a593Smuzhiyun			#address-cells = <1>;
460*4882a593Smuzhiyun			#size-cells = <0>;
461*4882a593Smuzhiyun			mipi_lvds_sditf_vir1: endpoint@0 {
462*4882a593Smuzhiyun				reg = <0>;
463*4882a593Smuzhiyun				remote-endpoint = <&isp0_vir3>;
464*4882a593Smuzhiyun			};
465*4882a593Smuzhiyun		};
466*4882a593Smuzhiyun	};
467*4882a593Smuzhiyun};
468*4882a593Smuzhiyun
469*4882a593Smuzhiyun&rkcif_mipi_lvds_sditf_vir2 {
470*4882a593Smuzhiyun	address-cells = <1>;
471*4882a593Smuzhiyun	#size-cells = <0>;
472*4882a593Smuzhiyun	status = "okay";
473*4882a593Smuzhiyun	rockchip,combine-index = <2>;
474*4882a593Smuzhiyun	ports {
475*4882a593Smuzhiyun		#address-cells = <1>;
476*4882a593Smuzhiyun		#size-cells = <0>;
477*4882a593Smuzhiyun		port@0 {
478*4882a593Smuzhiyun			reg = <0>;
479*4882a593Smuzhiyun			#address-cells = <1>;
480*4882a593Smuzhiyun			#size-cells = <0>;
481*4882a593Smuzhiyun			mipi_lvds_sditf_vir2_in: endpoint@1 {
482*4882a593Smuzhiyun				reg = <1>;
483*4882a593Smuzhiyun				remote-endpoint = <&imx464_out5>;
484*4882a593Smuzhiyun				data-lanes = <1 2>;
485*4882a593Smuzhiyun			};
486*4882a593Smuzhiyun		};
487*4882a593Smuzhiyun
488*4882a593Smuzhiyun		port@1 {
489*4882a593Smuzhiyun			reg = <1>;
490*4882a593Smuzhiyun			#address-cells = <1>;
491*4882a593Smuzhiyun			#size-cells = <0>;
492*4882a593Smuzhiyun			mipi_lvds_sditf_vir2: endpoint {
493*4882a593Smuzhiyun				remote-endpoint = <&isp1_vir3>;
494*4882a593Smuzhiyun			};
495*4882a593Smuzhiyun		};
496*4882a593Smuzhiyun	};
497*4882a593Smuzhiyun};
498*4882a593Smuzhiyun
499*4882a593Smuzhiyun&rkcif_mipi_lvds1_sditf {
500*4882a593Smuzhiyun	status = "okay";
501*4882a593Smuzhiyun
502*4882a593Smuzhiyun	port {
503*4882a593Smuzhiyun		mipi1_lvds_sditf: endpoint {
504*4882a593Smuzhiyun			remote-endpoint = <&isp1_vir0>;
505*4882a593Smuzhiyun		};
506*4882a593Smuzhiyun	};
507*4882a593Smuzhiyun};
508*4882a593Smuzhiyun
509*4882a593Smuzhiyun&rkcif_mipi_lvds1 {
510*4882a593Smuzhiyun	status = "okay";
511*4882a593Smuzhiyun
512*4882a593Smuzhiyun	port {
513*4882a593Smuzhiyun		cif_mipi_in1: endpoint {
514*4882a593Smuzhiyun			remote-endpoint = <&mipi1_csi2_output>;
515*4882a593Smuzhiyun		};
516*4882a593Smuzhiyun	};
517*4882a593Smuzhiyun};
518*4882a593Smuzhiyun
519*4882a593Smuzhiyun&rkcif_mipi_lvds2 {
520*4882a593Smuzhiyun	status = "okay";
521*4882a593Smuzhiyun
522*4882a593Smuzhiyun	port {
523*4882a593Smuzhiyun		cif_mipi_in2: endpoint {
524*4882a593Smuzhiyun			remote-endpoint = <&mipi2_csi2_output>;
525*4882a593Smuzhiyun		};
526*4882a593Smuzhiyun	};
527*4882a593Smuzhiyun};
528*4882a593Smuzhiyun
529*4882a593Smuzhiyun&rkcif_mipi_lvds2_sditf {
530*4882a593Smuzhiyun	status = "okay";
531*4882a593Smuzhiyun
532*4882a593Smuzhiyun	port {
533*4882a593Smuzhiyun		mipi2_lvds_sditf: endpoint {
534*4882a593Smuzhiyun			remote-endpoint = <&isp0_vir1>;
535*4882a593Smuzhiyun		};
536*4882a593Smuzhiyun	};
537*4882a593Smuzhiyun};
538*4882a593Smuzhiyun
539*4882a593Smuzhiyun&rkcif_mipi_lvds3 {
540*4882a593Smuzhiyun	status = "okay";
541*4882a593Smuzhiyun
542*4882a593Smuzhiyun	port {
543*4882a593Smuzhiyun		cif_mipi_in3: endpoint {
544*4882a593Smuzhiyun			remote-endpoint = <&mipi3_csi2_output>;
545*4882a593Smuzhiyun		};
546*4882a593Smuzhiyun	};
547*4882a593Smuzhiyun};
548*4882a593Smuzhiyun
549*4882a593Smuzhiyun&rkcif_mipi_lvds3_sditf {
550*4882a593Smuzhiyun	status = "okay";
551*4882a593Smuzhiyun
552*4882a593Smuzhiyun	port {
553*4882a593Smuzhiyun		mipi3_lvds_sditf: endpoint {
554*4882a593Smuzhiyun			remote-endpoint = <&isp1_vir1>;
555*4882a593Smuzhiyun		};
556*4882a593Smuzhiyun	};
557*4882a593Smuzhiyun};
558*4882a593Smuzhiyun
559*4882a593Smuzhiyun&rkcif_mipi_lvds4 {
560*4882a593Smuzhiyun	status = "okay";
561*4882a593Smuzhiyun
562*4882a593Smuzhiyun	port {
563*4882a593Smuzhiyun		cif_mipi_in4: endpoint {
564*4882a593Smuzhiyun			remote-endpoint = <&mipi4_csi2_output>;
565*4882a593Smuzhiyun		};
566*4882a593Smuzhiyun	};
567*4882a593Smuzhiyun};
568*4882a593Smuzhiyun
569*4882a593Smuzhiyun&rkcif_mipi_lvds4_sditf {
570*4882a593Smuzhiyun	status = "okay";
571*4882a593Smuzhiyun
572*4882a593Smuzhiyun	port {
573*4882a593Smuzhiyun		mipi4_lvds_sditf: endpoint {
574*4882a593Smuzhiyun			remote-endpoint = <&isp0_vir2>;
575*4882a593Smuzhiyun		};
576*4882a593Smuzhiyun	};
577*4882a593Smuzhiyun};
578*4882a593Smuzhiyun
579*4882a593Smuzhiyun&rkcif_mipi_lvds5 {
580*4882a593Smuzhiyun	status = "okay";
581*4882a593Smuzhiyun
582*4882a593Smuzhiyun	port {
583*4882a593Smuzhiyun		cif_mipi_in5: endpoint {
584*4882a593Smuzhiyun			remote-endpoint = <&mipi5_csi2_output>;
585*4882a593Smuzhiyun		};
586*4882a593Smuzhiyun	};
587*4882a593Smuzhiyun};
588*4882a593Smuzhiyun
589*4882a593Smuzhiyun&rkcif_mipi_lvds5_sditf {
590*4882a593Smuzhiyun	status = "okay";
591*4882a593Smuzhiyun
592*4882a593Smuzhiyun	port {
593*4882a593Smuzhiyun		mipi5_lvds_sditf: endpoint {
594*4882a593Smuzhiyun			remote-endpoint = <&isp1_vir2>;
595*4882a593Smuzhiyun		};
596*4882a593Smuzhiyun	};
597*4882a593Smuzhiyun};
598*4882a593Smuzhiyun
599*4882a593Smuzhiyun&rkcif_mmu {
600*4882a593Smuzhiyun	status = "okay";
601*4882a593Smuzhiyun};
602*4882a593Smuzhiyun
603*4882a593Smuzhiyun&rkisp0 {
604*4882a593Smuzhiyun	status = "okay";
605*4882a593Smuzhiyun};
606*4882a593Smuzhiyun
607*4882a593Smuzhiyun&isp0_mmu {
608*4882a593Smuzhiyun	status = "okay";
609*4882a593Smuzhiyun};
610*4882a593Smuzhiyun
611*4882a593Smuzhiyun&rkisp0_vir0 {
612*4882a593Smuzhiyun	status = "okay";
613*4882a593Smuzhiyun
614*4882a593Smuzhiyun	port {
615*4882a593Smuzhiyun		#address-cells = <1>;
616*4882a593Smuzhiyun		#size-cells = <0>;
617*4882a593Smuzhiyun
618*4882a593Smuzhiyun		isp0_vir0: endpoint@0 {
619*4882a593Smuzhiyun			reg = <0>;
620*4882a593Smuzhiyun			remote-endpoint = <&mipi_lvds_sditf>;
621*4882a593Smuzhiyun		};
622*4882a593Smuzhiyun	};
623*4882a593Smuzhiyun};
624*4882a593Smuzhiyun
625*4882a593Smuzhiyun&rkisp0_vir1 {
626*4882a593Smuzhiyun	status = "okay";
627*4882a593Smuzhiyun
628*4882a593Smuzhiyun	port {
629*4882a593Smuzhiyun		#address-cells = <1>;
630*4882a593Smuzhiyun		#size-cells = <0>;
631*4882a593Smuzhiyun
632*4882a593Smuzhiyun		isp0_vir1: endpoint@0 {
633*4882a593Smuzhiyun			reg = <0>;
634*4882a593Smuzhiyun			remote-endpoint = <&mipi2_lvds_sditf>;
635*4882a593Smuzhiyun		};
636*4882a593Smuzhiyun	};
637*4882a593Smuzhiyun};
638*4882a593Smuzhiyun
639*4882a593Smuzhiyun&rkisp0_vir2 {
640*4882a593Smuzhiyun	status = "okay";
641*4882a593Smuzhiyun
642*4882a593Smuzhiyun	port {
643*4882a593Smuzhiyun		#address-cells = <1>;
644*4882a593Smuzhiyun		#size-cells = <0>;
645*4882a593Smuzhiyun
646*4882a593Smuzhiyun		isp0_vir2: endpoint@0 {
647*4882a593Smuzhiyun			reg = <0>;
648*4882a593Smuzhiyun			remote-endpoint = <&mipi4_lvds_sditf>;
649*4882a593Smuzhiyun		};
650*4882a593Smuzhiyun	};
651*4882a593Smuzhiyun};
652*4882a593Smuzhiyun
653*4882a593Smuzhiyun&rkisp0_vir3 {
654*4882a593Smuzhiyun	status = "okay";
655*4882a593Smuzhiyun
656*4882a593Smuzhiyun	port {
657*4882a593Smuzhiyun		#address-cells = <1>;
658*4882a593Smuzhiyun		#size-cells = <0>;
659*4882a593Smuzhiyun
660*4882a593Smuzhiyun		isp0_vir3: endpoint@0 {
661*4882a593Smuzhiyun			reg = <0>;
662*4882a593Smuzhiyun			remote-endpoint = <&mipi_lvds_sditf_vir1>;
663*4882a593Smuzhiyun		};
664*4882a593Smuzhiyun	};
665*4882a593Smuzhiyun};
666*4882a593Smuzhiyun
667*4882a593Smuzhiyun&rkisp1 {
668*4882a593Smuzhiyun	status = "okay";
669*4882a593Smuzhiyun};
670*4882a593Smuzhiyun
671*4882a593Smuzhiyun&isp1_mmu {
672*4882a593Smuzhiyun	status = "okay";
673*4882a593Smuzhiyun};
674*4882a593Smuzhiyun
675*4882a593Smuzhiyun&rkisp1_vir0 {
676*4882a593Smuzhiyun	status = "okay";
677*4882a593Smuzhiyun
678*4882a593Smuzhiyun	port {
679*4882a593Smuzhiyun		#address-cells = <1>;
680*4882a593Smuzhiyun		#size-cells = <0>;
681*4882a593Smuzhiyun
682*4882a593Smuzhiyun		isp1_vir0: endpoint@0 {
683*4882a593Smuzhiyun			reg = <0>;
684*4882a593Smuzhiyun			remote-endpoint = <&mipi1_lvds_sditf>;
685*4882a593Smuzhiyun		};
686*4882a593Smuzhiyun	};
687*4882a593Smuzhiyun};
688*4882a593Smuzhiyun
689*4882a593Smuzhiyun&rkisp1_vir1 {
690*4882a593Smuzhiyun	status = "okay";
691*4882a593Smuzhiyun
692*4882a593Smuzhiyun	port {
693*4882a593Smuzhiyun		#address-cells = <1>;
694*4882a593Smuzhiyun		#size-cells = <0>;
695*4882a593Smuzhiyun
696*4882a593Smuzhiyun		isp1_vir1: endpoint@0 {
697*4882a593Smuzhiyun			reg = <0>;
698*4882a593Smuzhiyun			remote-endpoint = <&mipi3_lvds_sditf>;
699*4882a593Smuzhiyun		};
700*4882a593Smuzhiyun	};
701*4882a593Smuzhiyun};
702*4882a593Smuzhiyun
703*4882a593Smuzhiyun&rkisp1_vir2 {
704*4882a593Smuzhiyun	status = "okay";
705*4882a593Smuzhiyun
706*4882a593Smuzhiyun	port {
707*4882a593Smuzhiyun		#address-cells = <1>;
708*4882a593Smuzhiyun		#size-cells = <0>;
709*4882a593Smuzhiyun
710*4882a593Smuzhiyun		isp1_vir2: endpoint@0 {
711*4882a593Smuzhiyun			reg = <0>;
712*4882a593Smuzhiyun			remote-endpoint = <&mipi5_lvds_sditf>;
713*4882a593Smuzhiyun		};
714*4882a593Smuzhiyun	};
715*4882a593Smuzhiyun};
716*4882a593Smuzhiyun
717*4882a593Smuzhiyun&rkisp1_vir3 {
718*4882a593Smuzhiyun	status = "okay";
719*4882a593Smuzhiyun
720*4882a593Smuzhiyun	port {
721*4882a593Smuzhiyun		#address-cells = <1>;
722*4882a593Smuzhiyun		#size-cells = <0>;
723*4882a593Smuzhiyun
724*4882a593Smuzhiyun		isp1_vir3: endpoint@0 {
725*4882a593Smuzhiyun			reg = <0>;
726*4882a593Smuzhiyun			remote-endpoint = <&mipi_lvds_sditf_vir2>;
727*4882a593Smuzhiyun		};
728*4882a593Smuzhiyun	};
729*4882a593Smuzhiyun};
730*4882a593Smuzhiyun
731*4882a593Smuzhiyun&pinctrl {
732*4882a593Smuzhiyun	cam {
733*4882a593Smuzhiyun		vcc_cam_2_3_pwr: vcc_cam_2_3_pwr {
734*4882a593Smuzhiyun			rockchip,pins =
735*4882a593Smuzhiyun				/* camera power en */
736*4882a593Smuzhiyun				<1 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
737*4882a593Smuzhiyun		};
738*4882a593Smuzhiyun		vcc_cam_4_5_pwr: vcc_cam_4_5_pwr {
739*4882a593Smuzhiyun			rockchip,pins =
740*4882a593Smuzhiyun				/* camera power en */
741*4882a593Smuzhiyun				<1 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>;
742*4882a593Smuzhiyun		};
743*4882a593Smuzhiyun		vcc_cam_8_9_pwr: vcc_cam_8_9_pwr {
744*4882a593Smuzhiyun			rockchip,pins =
745*4882a593Smuzhiyun				/* camera power en */
746*4882a593Smuzhiyun				<1 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
747*4882a593Smuzhiyun		};
748*4882a593Smuzhiyun	};
749*4882a593Smuzhiyun};
750*4882a593Smuzhiyun
751*4882a593Smuzhiyun
752*4882a593Smuzhiyun/ {
753*4882a593Smuzhiyun	cam_ircut0: cam_ircut {
754*4882a593Smuzhiyun		status = "okay";
755*4882a593Smuzhiyun		compatible = "rockchip,ircut";
756*4882a593Smuzhiyun		ircut-open-gpios = <&gpio4 RK_PA0 GPIO_ACTIVE_HIGH>;
757*4882a593Smuzhiyun		ircut-close-gpios  = <&gpio4 RK_PA1 GPIO_ACTIVE_HIGH>;
758*4882a593Smuzhiyun		rockchip,camera-module-index = <0>;
759*4882a593Smuzhiyun		rockchip,camera-module-facing = "back";
760*4882a593Smuzhiyun	};
761*4882a593Smuzhiyun
762*4882a593Smuzhiyun	vcc_cam_2_3: vcc-cam-2-3 {
763*4882a593Smuzhiyun		compatible = "regulator-fixed";
764*4882a593Smuzhiyun		gpio = <&gpio1 RK_PB2 GPIO_ACTIVE_HIGH>;
765*4882a593Smuzhiyun		pinctrl-names = "default";
766*4882a593Smuzhiyun		pinctrl-0 = <&vcc_cam_2_3_pwr>;
767*4882a593Smuzhiyun		regulator-name = "vcc_cam_2_3";
768*4882a593Smuzhiyun		enable-active-high;
769*4882a593Smuzhiyun	};
770*4882a593Smuzhiyun
771*4882a593Smuzhiyun	vcc_cam_4_5: vcc-cam-4-5 {
772*4882a593Smuzhiyun		compatible = "regulator-fixed";
773*4882a593Smuzhiyun		gpio = <&gpio1 RK_PB1 GPIO_ACTIVE_HIGH>;
774*4882a593Smuzhiyun		pinctrl-names = "default";
775*4882a593Smuzhiyun		pinctrl-0 = <&vcc_cam_4_5_pwr>;
776*4882a593Smuzhiyun		regulator-name = "vcc_cam_4_5";
777*4882a593Smuzhiyun		enable-active-high;
778*4882a593Smuzhiyun	};
779*4882a593Smuzhiyun
780*4882a593Smuzhiyun	vcc_cam_8_9: vcc-cam-8-9 {
781*4882a593Smuzhiyun		compatible = "regulator-fixed";
782*4882a593Smuzhiyun		gpio = <&gpio1 RK_PC6 GPIO_ACTIVE_HIGH>;
783*4882a593Smuzhiyun		pinctrl-names = "default";
784*4882a593Smuzhiyun		pinctrl-0 = <&vcc_cam_8_9_pwr>;
785*4882a593Smuzhiyun		regulator-name = "vcc_cam_8_9";
786*4882a593Smuzhiyun		enable-active-high;
787*4882a593Smuzhiyun	};
788*4882a593Smuzhiyun};
789*4882a593Smuzhiyun
790*4882a593Smuzhiyun&i2c7 {
791*4882a593Smuzhiyun	status = "okay";
792*4882a593Smuzhiyun	pinctrl-0 = <&i2c7m0_xfer>;
793*4882a593Smuzhiyun
794*4882a593Smuzhiyun	/* hardware cam 1 */
795*4882a593Smuzhiyun	imx464: imx464@10 {
796*4882a593Smuzhiyun		compatible = "sony,imx464";
797*4882a593Smuzhiyun		reg = <0x10>;
798*4882a593Smuzhiyun		clocks = <&cru CLK_MIPI_CAMARAOUT_M2>;
799*4882a593Smuzhiyun		clock-names = "xvclk";
800*4882a593Smuzhiyun		pinctrl-names = "default";
801*4882a593Smuzhiyun		pinctrl-0 = <&mipim0_camera2_clk>;
802*4882a593Smuzhiyun		power-domains = <&power RK3588_PD_VI>;
803*4882a593Smuzhiyun		pwdn-gpios = <&gpio1 RK_PA4 GPIO_ACTIVE_HIGH>;
804*4882a593Smuzhiyun		avdd-supply = <&vcc_mipicsi1>;
805*4882a593Smuzhiyun		rockchip,camera-module-index = <0>;
806*4882a593Smuzhiyun		rockchip,camera-module-facing = "back";
807*4882a593Smuzhiyun		rockchip,camera-module-name = "CMK-OT1980-PX1";
808*4882a593Smuzhiyun		rockchip,camera-module-lens-name = "SHG102";
809*4882a593Smuzhiyun		port {
810*4882a593Smuzhiyun			imx464_out: endpoint {
811*4882a593Smuzhiyun				remote-endpoint = <&csidcphy1_in>;
812*4882a593Smuzhiyun				data-lanes = <1 2>;
813*4882a593Smuzhiyun			};
814*4882a593Smuzhiyun		};
815*4882a593Smuzhiyun	};
816*4882a593Smuzhiyun
817*4882a593Smuzhiyun	/* hardware cam 2 */
818*4882a593Smuzhiyun	imx464_0: imx464-0@1a {
819*4882a593Smuzhiyun		compatible = "sony,imx464";
820*4882a593Smuzhiyun		status = "okay";
821*4882a593Smuzhiyun		reg = <0x1a>;
822*4882a593Smuzhiyun		clocks = <&cru CLK_MIPI_CAMARAOUT_M3>;
823*4882a593Smuzhiyun		clock-names = "xvclk";
824*4882a593Smuzhiyun		power-domains = <&power RK3588_PD_VI>;
825*4882a593Smuzhiyun		pwdn-gpios = <&gpio1 RK_PA7 GPIO_ACTIVE_HIGH>;
826*4882a593Smuzhiyun		pinctrl-names = "default";
827*4882a593Smuzhiyun		pinctrl-0 = <&mipim0_camera3_clk>;
828*4882a593Smuzhiyun		avdd-supply = <&vcc_cam_2_3>;
829*4882a593Smuzhiyun		rockchip,camera-module-index = <1>;
830*4882a593Smuzhiyun		rockchip,camera-module-facing = "back";
831*4882a593Smuzhiyun		rockchip,camera-module-name = "CMK-OT1980-PX1";
832*4882a593Smuzhiyun		rockchip,camera-module-lens-name = "SHG102";
833*4882a593Smuzhiyun		port {
834*4882a593Smuzhiyun			imx464_out0: endpoint {
835*4882a593Smuzhiyun				remote-endpoint = <&csidphy1_in>;
836*4882a593Smuzhiyun				data-lanes = <1 2>;
837*4882a593Smuzhiyun			};
838*4882a593Smuzhiyun		};
839*4882a593Smuzhiyun	};
840*4882a593Smuzhiyun
841*4882a593Smuzhiyun	/* hardware cam 3 */
842*4882a593Smuzhiyun	imx464_1: imx464-1@36 {
843*4882a593Smuzhiyun		compatible = "sony,imx464";
844*4882a593Smuzhiyun		status = "okay";
845*4882a593Smuzhiyun		reg = <0x36>;
846*4882a593Smuzhiyun		clocks = <&cru CLK_MIPI_CAMARAOUT_M3>;
847*4882a593Smuzhiyun		clock-names = "xvclk";
848*4882a593Smuzhiyun		power-domains = <&power RK3588_PD_VI>;
849*4882a593Smuzhiyun		//pinctrl-names = "default";
850*4882a593Smuzhiyun		//pinctrl-0 = <&mipim0_camera3_clk>; //same
851*4882a593Smuzhiyun		pwdn-gpios = <&gpio1 RK_PB0 GPIO_ACTIVE_HIGH>;
852*4882a593Smuzhiyun		avdd-supply = <&vcc_cam_2_3>;
853*4882a593Smuzhiyun		rockchip,camera-module-index = <2>;
854*4882a593Smuzhiyun		rockchip,camera-module-facing = "back";
855*4882a593Smuzhiyun		rockchip,camera-module-name = "CMK-OT1980-PX1";
856*4882a593Smuzhiyun		rockchip,camera-module-lens-name = "SHG102";
857*4882a593Smuzhiyun		port {
858*4882a593Smuzhiyun			imx464_out1: endpoint {
859*4882a593Smuzhiyun				remote-endpoint = <&csidphy2_in>;
860*4882a593Smuzhiyun				data-lanes = <1 2>;
861*4882a593Smuzhiyun			};
862*4882a593Smuzhiyun		};
863*4882a593Smuzhiyun	};
864*4882a593Smuzhiyun};
865*4882a593Smuzhiyun
866*4882a593Smuzhiyun&i2c4 {
867*4882a593Smuzhiyun	status = "okay";
868*4882a593Smuzhiyun	pinctrl-0 = <&i2c4m1_xfer>;
869*4882a593Smuzhiyun
870*4882a593Smuzhiyun	/* hardware cam 4 */
871*4882a593Smuzhiyun	imx464_2: imx464-2@1a {
872*4882a593Smuzhiyun		compatible = "sony,imx464";
873*4882a593Smuzhiyun		status = "okay";
874*4882a593Smuzhiyun		reg = <0x1a>;
875*4882a593Smuzhiyun		clocks = <&cru CLK_MIPI_CAMARAOUT_M4>;
876*4882a593Smuzhiyun		clock-names = "xvclk";
877*4882a593Smuzhiyun		power-domains = <&power RK3588_PD_VI>;
878*4882a593Smuzhiyun		pinctrl-names = "default";
879*4882a593Smuzhiyun		pinctrl-0 = <&mipim0_camera4_clk>;
880*4882a593Smuzhiyun		avdd-supply = <&vcc_cam_4_5>;
881*4882a593Smuzhiyun		pwdn-gpios = <&gpio2 RK_PB6 GPIO_ACTIVE_HIGH>;
882*4882a593Smuzhiyun		rockchip,camera-module-index = <3>;
883*4882a593Smuzhiyun		rockchip,camera-module-facing = "back";
884*4882a593Smuzhiyun		rockchip,camera-module-name = "CMK-OT1980-PX1";
885*4882a593Smuzhiyun		rockchip,camera-module-lens-name = "SHG102";
886*4882a593Smuzhiyun		port {
887*4882a593Smuzhiyun			imx464_out2: endpoint {
888*4882a593Smuzhiyun				remote-endpoint = <&csidphy4_in>;
889*4882a593Smuzhiyun				data-lanes = <1 2>;
890*4882a593Smuzhiyun			};
891*4882a593Smuzhiyun		};
892*4882a593Smuzhiyun	};
893*4882a593Smuzhiyun
894*4882a593Smuzhiyun	/* hardware cam 5 */
895*4882a593Smuzhiyun	imx464_3: imx464-3@36 {
896*4882a593Smuzhiyun		compatible = "sony,imx464";
897*4882a593Smuzhiyun		status = "okay";
898*4882a593Smuzhiyun		reg = <0x36>;
899*4882a593Smuzhiyun		clocks = <&cru CLK_MIPI_CAMARAOUT_M4>;
900*4882a593Smuzhiyun		clock-names = "xvclk";
901*4882a593Smuzhiyun		power-domains = <&power RK3588_PD_VI>;
902*4882a593Smuzhiyun		//pinctrl-names = "default";
903*4882a593Smuzhiyun		//pinctrl-0 = <&mipim0_camera4_clk>;
904*4882a593Smuzhiyun		avdd-supply = <&vcc_cam_4_5>;
905*4882a593Smuzhiyun		pwdn-gpios = <&gpio1 RK_PA3 GPIO_ACTIVE_HIGH>;
906*4882a593Smuzhiyun		rockchip,camera-module-index = <4>;
907*4882a593Smuzhiyun		rockchip,camera-module-facing = "back";
908*4882a593Smuzhiyun		rockchip,camera-module-name = "CMK-OT1980-PX1";
909*4882a593Smuzhiyun		rockchip,camera-module-lens-name = "SHG102";
910*4882a593Smuzhiyun		port {
911*4882a593Smuzhiyun			imx464_out3: endpoint {
912*4882a593Smuzhiyun				remote-endpoint = <&csidphy5_in>;
913*4882a593Smuzhiyun				data-lanes = <1 2>;
914*4882a593Smuzhiyun			};
915*4882a593Smuzhiyun		};
916*4882a593Smuzhiyun	};
917*4882a593Smuzhiyun};
918*4882a593Smuzhiyun
919*4882a593Smuzhiyun&i2c2 {
920*4882a593Smuzhiyun	status = "okay";
921*4882a593Smuzhiyun	pinctrl-0 = <&i2c2m4_xfer>;
922*4882a593Smuzhiyun
923*4882a593Smuzhiyun	/* hardware cam 6 */
924*4882a593Smuzhiyun	imx464_4: imx464-4@1a {
925*4882a593Smuzhiyun		compatible = "sony,imx464";
926*4882a593Smuzhiyun		status = "disabled";
927*4882a593Smuzhiyun		reg = <0x1a>;
928*4882a593Smuzhiyun		clocks = <&cru CLK_MIPI_CAMARAOUT_M1>;
929*4882a593Smuzhiyun		clock-names = "xvclk";
930*4882a593Smuzhiyun		power-domains = <&power RK3588_PD_VI>;
931*4882a593Smuzhiyun		//pinctrl-names = "default";
932*4882a593Smuzhiyun		//pinctrl-0 = <&mipim0_camera1_clk>;
933*4882a593Smuzhiyun		avdd-supply = <&vcc_mipicsi0>;
934*4882a593Smuzhiyun		pwdn-gpios = <&gpio1 RK_PA2 GPIO_ACTIVE_HIGH>;
935*4882a593Smuzhiyun		rockchip,camera-module-index = <8>;
936*4882a593Smuzhiyun		rockchip,camera-module-facing = "back";
937*4882a593Smuzhiyun		rockchip,camera-module-name = "CMK-OT1980-PX1";
938*4882a593Smuzhiyun		rockchip,camera-module-lens-name = "SHG102";
939*4882a593Smuzhiyun		port {
940*4882a593Smuzhiyun			imx464_out4: endpoint {
941*4882a593Smuzhiyun				//remote-endpoint = <&mipi_lvds_sditf_vir3>;
942*4882a593Smuzhiyun				data-lanes = <1 2>;
943*4882a593Smuzhiyun			};
944*4882a593Smuzhiyun		};
945*4882a593Smuzhiyun	};
946*4882a593Smuzhiyun
947*4882a593Smuzhiyun	/* hardware cam 7 */
948*4882a593Smuzhiyun	imx464_5: imx464-5@36 {
949*4882a593Smuzhiyun		compatible = "sony,imx464";
950*4882a593Smuzhiyun		status = "okay";
951*4882a593Smuzhiyun		reg = <0x36>;
952*4882a593Smuzhiyun		clocks = <&cru CLK_MIPI_CAMARAOUT_M1>;
953*4882a593Smuzhiyun		clock-names = "xvclk";
954*4882a593Smuzhiyun		power-domains = <&power RK3588_PD_VI>;
955*4882a593Smuzhiyun		pinctrl-names = "default";
956*4882a593Smuzhiyun		pinctrl-0 = <&mipim0_camera1_clk>;
957*4882a593Smuzhiyun		avdd-supply = <&vcc_mipicsi0>;
958*4882a593Smuzhiyun		pwdn-gpios = <&gpio4 RK_PC6 GPIO_ACTIVE_HIGH>;
959*4882a593Smuzhiyun		rockchip,camera-module-index = <7>;
960*4882a593Smuzhiyun		rockchip,camera-module-facing = "back";
961*4882a593Smuzhiyun		rockchip,camera-module-name = "CMK-OT1980-PX1";
962*4882a593Smuzhiyun		rockchip,camera-module-lens-name = "SHG102";
963*4882a593Smuzhiyun		port {
964*4882a593Smuzhiyun			imx464_out5: endpoint {
965*4882a593Smuzhiyun				remote-endpoint = <&mipi_lvds_sditf_vir2_in>;
966*4882a593Smuzhiyun				data-lanes = <1 2>;
967*4882a593Smuzhiyun			};
968*4882a593Smuzhiyun		};
969*4882a593Smuzhiyun	};
970*4882a593Smuzhiyun};
971*4882a593Smuzhiyun
972*4882a593Smuzhiyun&i2c3 {
973*4882a593Smuzhiyun	status = "okay";
974*4882a593Smuzhiyun	pinctrl-0 = <&i2c3m0_xfer>;
975*4882a593Smuzhiyun
976*4882a593Smuzhiyun	/* hardware cam 8 */
977*4882a593Smuzhiyun	imx464_6: imx464-6@1a {
978*4882a593Smuzhiyun		compatible = "sony,imx464";
979*4882a593Smuzhiyun		status = "okay";
980*4882a593Smuzhiyun		reg = <0x1a>;
981*4882a593Smuzhiyun		clocks = <&cru CLK_MIPI_CAMARAOUT_M1>;
982*4882a593Smuzhiyun		clock-names = "xvclk";
983*4882a593Smuzhiyun		power-domains = <&power RK3588_PD_VI>;
984*4882a593Smuzhiyun		//pinctrl-names = "default";
985*4882a593Smuzhiyun		//pinctrl-0 = <&mipim0_camera1_clk>;
986*4882a593Smuzhiyun		avdd-supply = <&vcc_cam_8_9>;
987*4882a593Smuzhiyun		pwdn-gpios = <&gpio4 RK_PC2 GPIO_ACTIVE_HIGH>;
988*4882a593Smuzhiyun		rockchip,camera-module-index = <6>;
989*4882a593Smuzhiyun		rockchip,camera-module-facing = "back";
990*4882a593Smuzhiyun		rockchip,camera-module-name = "CMK-OT1980-PX1";
991*4882a593Smuzhiyun		rockchip,camera-module-lens-name = "SHG102";
992*4882a593Smuzhiyun		port {
993*4882a593Smuzhiyun			imx464_out6: endpoint {
994*4882a593Smuzhiyun				remote-endpoint = <&mipi_lvds_sditf_vir1_in>;
995*4882a593Smuzhiyun				data-lanes = <1 2>;
996*4882a593Smuzhiyun			};
997*4882a593Smuzhiyun		};
998*4882a593Smuzhiyun	};
999*4882a593Smuzhiyun
1000*4882a593Smuzhiyun	/* hardware cam 9 */
1001*4882a593Smuzhiyun	imx464_7: imx464-7@36 {
1002*4882a593Smuzhiyun		compatible = "sony,imx464";
1003*4882a593Smuzhiyun		status = "okay";
1004*4882a593Smuzhiyun		reg = <0x36>;
1005*4882a593Smuzhiyun		clocks = <&cru CLK_MIPI_CAMARAOUT_M1>;
1006*4882a593Smuzhiyun		clock-names = "xvclk";
1007*4882a593Smuzhiyun		power-domains = <&power RK3588_PD_VI>;
1008*4882a593Smuzhiyun		//pinctrl-names = "default";
1009*4882a593Smuzhiyun		//pinctrl-0 = <&mipim0_camera1_clk>;
1010*4882a593Smuzhiyun		avdd-supply = <&vcc_cam_8_9>;
1011*4882a593Smuzhiyun		pwdn-gpios = <&gpio1 RK_PD4 GPIO_ACTIVE_HIGH>;
1012*4882a593Smuzhiyun		rockchip,camera-module-index = <5>;
1013*4882a593Smuzhiyun		rockchip,camera-module-facing = "back";
1014*4882a593Smuzhiyun		rockchip,camera-module-name = "CMK-OT1980-PX1";
1015*4882a593Smuzhiyun		rockchip,camera-module-lens-name = "SHG102";
1016*4882a593Smuzhiyun		port {
1017*4882a593Smuzhiyun			imx464_out7: endpoint {
1018*4882a593Smuzhiyun				remote-endpoint = <&mipi_lvds_sditf_in>;
1019*4882a593Smuzhiyun				data-lanes = <1 2>;
1020*4882a593Smuzhiyun			};
1021*4882a593Smuzhiyun		};
1022*4882a593Smuzhiyun	};
1023*4882a593Smuzhiyun
1024*4882a593Smuzhiyun	preisp_dmy: preisp_dmy@37 {
1025*4882a593Smuzhiyun		status = "okay";
1026*4882a593Smuzhiyun		compatible = "pisp_dmy";
1027*4882a593Smuzhiyun		reg = <0x37>;
1028*4882a593Smuzhiyun
1029*4882a593Smuzhiyun		clocks = <&cru CLK_MIPI_CAMARAOUT_M1>;
1030*4882a593Smuzhiyun		clock-names = "xvclk";
1031*4882a593Smuzhiyun
1032*4882a593Smuzhiyun		rockchip,camera-module-index = <10>;
1033*4882a593Smuzhiyun		rockchip,camera-module-facing = "back";
1034*4882a593Smuzhiyun		rockchip,camera-module-name = "CMK-OT1980-PX1";
1035*4882a593Smuzhiyun		rockchip,camera-module-lens-name = "SHG102";
1036*4882a593Smuzhiyun		port {
1037*4882a593Smuzhiyun			preisp_dmy_out0: endpoint {
1038*4882a593Smuzhiyun				remote-endpoint = <&rk1608_in0>;
1039*4882a593Smuzhiyun				data-lanes = <1 2 3 4>;
1040*4882a593Smuzhiyun			};
1041*4882a593Smuzhiyun		};
1042*4882a593Smuzhiyun	};
1043*4882a593Smuzhiyun};
1044*4882a593Smuzhiyun
1045*4882a593Smuzhiyun&spi4 {
1046*4882a593Smuzhiyun	status = "okay";
1047*4882a593Smuzhiyun	//assigned-clocks = <&cru CLK_SPI0>;
1048*4882a593Smuzhiyun	//assigned-clock-rates = <100000000>;
1049*4882a593Smuzhiyun	//rx-sample-delay-ns = <10>;
1050*4882a593Smuzhiyun	//dma-names = "tx", "rx";
1051*4882a593Smuzhiyun	pinctrl-names = "default";
1052*4882a593Smuzhiyun	pinctrl-0 = <&spi4m1_cs0 &spi4m1_cs1 &spi4m1_pins>;
1053*4882a593Smuzhiyun
1054*4882a593Smuzhiyun	spi_rk1608@0 {
1055*4882a593Smuzhiyun		compatible =  "rockchip,rk1608";
1056*4882a593Smuzhiyun		status = "okay";
1057*4882a593Smuzhiyun		reg = <0>;
1058*4882a593Smuzhiyun		spi-max-frequency = <50000000>;
1059*4882a593Smuzhiyun		spi-min-frequency = <16000000>;
1060*4882a593Smuzhiyun
1061*4882a593Smuzhiyun		clocks = <&cru CLK_SPI4>;
1062*4882a593Smuzhiyun		clock-names = "mclk";
1063*4882a593Smuzhiyun
1064*4882a593Smuzhiyun		firmware-names = "rk1608.rkl";
1065*4882a593Smuzhiyun
1066*4882a593Smuzhiyun		reset-gpios = <&gpio1 RK_PD5 GPIO_ACTIVE_HIGH>;
1067*4882a593Smuzhiyun		irq-gpios = <&gpio1 RK_PC4 GPIO_ACTIVE_HIGH>;
1068*4882a593Smuzhiyun		//wake-gpios = <&gpio1 RK_PA3 GPIO_ACTIVE_HIGH>;
1069*4882a593Smuzhiyun		pwren-gpios = <&gpio1 RK_PC7 GPIO_ACTIVE_HIGH>;
1070*4882a593Smuzhiyun		pinctrl-names = "default";
1071*4882a593Smuzhiyun		pinctrl-0 = <&preisp_irq_gpios &preisp_pwren_gpios
1072*4882a593Smuzhiyun			&preisp_reset_gpios &refclk_pins>;
1073*4882a593Smuzhiyun
1074*4882a593Smuzhiyun		/* regulator config */
1075*4882a593Smuzhiyun		vdd-core-regulator = "vdd_preisp";
1076*4882a593Smuzhiyun		vdd-core-microvolt = <1150000>;
1077*4882a593Smuzhiyun		ports {
1078*4882a593Smuzhiyun			#address-cells = <1>;
1079*4882a593Smuzhiyun			#size-cells = <0>;
1080*4882a593Smuzhiyun			port@0 {
1081*4882a593Smuzhiyun				#address-cells = <1>;
1082*4882a593Smuzhiyun				#size-cells = <0>;
1083*4882a593Smuzhiyun
1084*4882a593Smuzhiyun				reg = <0>;
1085*4882a593Smuzhiyun				rk1608_out0: endpoint@0 {
1086*4882a593Smuzhiyun					reg = <0>;
1087*4882a593Smuzhiyun					remote-endpoint = <&rk1608_dphy0_in>;
1088*4882a593Smuzhiyun				};
1089*4882a593Smuzhiyun			};
1090*4882a593Smuzhiyun
1091*4882a593Smuzhiyun			port@1 {
1092*4882a593Smuzhiyun				#address-cells = <1>;
1093*4882a593Smuzhiyun				#size-cells = <0>;
1094*4882a593Smuzhiyun
1095*4882a593Smuzhiyun				reg = <1>;
1096*4882a593Smuzhiyun				rk1608_in0: endpoint@0 {
1097*4882a593Smuzhiyun					reg = <0>;
1098*4882a593Smuzhiyun					remote-endpoint = <&preisp_dmy_out0>;
1099*4882a593Smuzhiyun				};
1100*4882a593Smuzhiyun			};
1101*4882a593Smuzhiyun		};
1102*4882a593Smuzhiyun	};
1103*4882a593Smuzhiyun};
1104*4882a593Smuzhiyun
1105*4882a593Smuzhiyun&pinctrl {
1106*4882a593Smuzhiyun	rk1608_gpios {
1107*4882a593Smuzhiyun		preisp_irq_gpios: preisp-irq-gpios {
1108*4882a593Smuzhiyun			rockchip,pins =
1109*4882a593Smuzhiyun				<1 RK_PC4 0 &pcfg_pull_up>;
1110*4882a593Smuzhiyun		};
1111*4882a593Smuzhiyun		preisp_reset_gpios: preisp-reset-gpios {
1112*4882a593Smuzhiyun			rockchip,pins =
1113*4882a593Smuzhiyun				<1 RK_PD5 0 &pcfg_output_low>;
1114*4882a593Smuzhiyun		};
1115*4882a593Smuzhiyun		preisp_pwren_gpios: preisp-pwren-gpios {
1116*4882a593Smuzhiyun			rockchip,pins =
1117*4882a593Smuzhiyun				<1 RK_PC7 0 &pcfg_pull_up>;
1118*4882a593Smuzhiyun		};
1119*4882a593Smuzhiyun	};
1120*4882a593Smuzhiyun};
1121*4882a593Smuzhiyun
1122*4882a593Smuzhiyun/{
1123*4882a593Smuzhiyun	mipidphy0: mipidphy0 {
1124*4882a593Smuzhiyun		compatible =  "rockchip,rk1608-dphy";
1125*4882a593Smuzhiyun		status = "okay";
1126*4882a593Smuzhiyun		//rockchip,grf = <&grf>;
1127*4882a593Smuzhiyun		id = <0>;
1128*4882a593Smuzhiyun
1129*4882a593Smuzhiyun		cam_nums = <1>;
1130*4882a593Smuzhiyun		in_mipi = <1>;
1131*4882a593Smuzhiyun		out_mipi = <0>;
1132*4882a593Smuzhiyun		link-freqs = /bits/ 64 <LINK_FREQ>;
1133*4882a593Smuzhiyun
1134*4882a593Smuzhiyun		/* rk1608 i2c mode */
1135*4882a593Smuzhiyun		sensor_i2c_bus = <3>;
1136*4882a593Smuzhiyun		sensor_i2c_addr = <0x36>;
1137*4882a593Smuzhiyun		sensor-name = "IMX464";
1138*4882a593Smuzhiyun
1139*4882a593Smuzhiyun		rockchip,camera-module-index = <9>;
1140*4882a593Smuzhiyun		rockchip,camera-module-facing = "back";
1141*4882a593Smuzhiyun		rockchip,camera-module-name = "TongJu";
1142*4882a593Smuzhiyun		rockchip,camera-module-lens-name = "CHT842-MD";
1143*4882a593Smuzhiyun
1144*4882a593Smuzhiyun		/* virtual-sensor mode */
1145*4882a593Smuzhiyun		link-sensor = <&imx464_7>;
1146*4882a593Smuzhiyun		virtual-sub-sensor-config-0 {
1147*4882a593Smuzhiyun			id = <1>;
1148*4882a593Smuzhiyun			in_mipi = <2>;
1149*4882a593Smuzhiyun			out_mipi = <1>;
1150*4882a593Smuzhiyun		};
1151*4882a593Smuzhiyun		virtual-sub-sensor-config-1 {
1152*4882a593Smuzhiyun			id = <2>;
1153*4882a593Smuzhiyun			in_mipi = <3>;
1154*4882a593Smuzhiyun			out_mipi = <1>;
1155*4882a593Smuzhiyun		};
1156*4882a593Smuzhiyun		/* multi-sensor mode end */
1157*4882a593Smuzhiyun
1158*4882a593Smuzhiyun		format-config-0 {
1159*4882a593Smuzhiyun			data_type = <0x2b>;
1160*4882a593Smuzhiyun			mipi_lane = <2>;
1161*4882a593Smuzhiyun			mipi_lane_out = <4>;
1162*4882a593Smuzhiyun			field = <1>;
1163*4882a593Smuzhiyun			colorspace = <8>;
1164*4882a593Smuzhiyun			code = <MEDIA_BUS_FMT_SRGGB10_1X10>;
1165*4882a593Smuzhiyun			width = <2712>;
1166*4882a593Smuzhiyun			height= <1538>;
1167*4882a593Smuzhiyun			hactive = <2712>;
1168*4882a593Smuzhiyun			vactive = <4614>;
1169*4882a593Smuzhiyun			htotal = <3616>;
1170*4882a593Smuzhiyun			vtotal = <4710>;
1171*4882a593Smuzhiyun			inch0-info = <2712 1538 0x2b 0x2b 1>;
1172*4882a593Smuzhiyun			outch0-info = <2712 4614 0x2b 0x2b 1>;
1173*4882a593Smuzhiyun			hcrop = <2560>;
1174*4882a593Smuzhiyun			vcrop = <1520>;
1175*4882a593Smuzhiyun		};
1176*4882a593Smuzhiyun
1177*4882a593Smuzhiyun		ports {
1178*4882a593Smuzhiyun			#address-cells = <1>;
1179*4882a593Smuzhiyun			#size-cells = <0>;
1180*4882a593Smuzhiyun
1181*4882a593Smuzhiyun			port@0 {
1182*4882a593Smuzhiyun				rk1608_dphy0_in: endpoint {
1183*4882a593Smuzhiyun					remote-endpoint = <&rk1608_out0>;
1184*4882a593Smuzhiyun					data-lanes = <1 2 3 4>;
1185*4882a593Smuzhiyun				};
1186*4882a593Smuzhiyun			};
1187*4882a593Smuzhiyun			port@1 {
1188*4882a593Smuzhiyun				rk1608_dphy0_out: endpoint {
1189*4882a593Smuzhiyun					remote-endpoint = <&csidcphy0_in>;
1190*4882a593Smuzhiyun					clock-lanes = <0>;
1191*4882a593Smuzhiyun					data-lanes = <1 2 3 4>;
1192*4882a593Smuzhiyun					clock-noncontinuous;
1193*4882a593Smuzhiyun					link-freqs = /bits/ 64 <LINK_FREQ>;
1194*4882a593Smuzhiyun				};
1195*4882a593Smuzhiyun			};
1196*4882a593Smuzhiyun		};
1197*4882a593Smuzhiyun	};
1198*4882a593Smuzhiyun};
1199