dtoverlays: Add overlays for the IMX708 image sensor
[platform/kernel/linux-rpi.git] / arch / arm / boot / dts / overlays / camera-mux-4port-overlay.dts
1 // SPDX-License-Identifier: GPL-2.0-only
2
3 // Overlay to configure a 4 port camera multiplexer
4 //
5 // Configuration is based on the Arducam 4 channel multiplexer
6 // which uses a PCA9543 I2C multiplexer to handle the
7 // I2C, and GPIOs 4, 17, and 18 to control the MIPI muxes.
8
9 /dts-v1/;
10 /plugin/;
11
12 #include <dt-bindings/gpio/gpio.h>
13
14 /{
15         compatible = "brcm,bcm2835";
16
17         /* Fragments that complete the individual sensor fragments */
18         /* IMX290 */
19         fragment@0 {
20                 target = <&imx290_0_ep>;
21                 __overlay__ {
22                         data-lanes = <1 2>;
23                         link-frequencies =
24                                 /bits/ 64 <445500000 297000000>;
25                 };
26         };
27
28         fragment@1 {
29                 target = <&imx290_1_ep>;
30                 __overlay__ {
31                         data-lanes = <1 2>;
32                         link-frequencies =
33                                 /bits/ 64 <445500000 297000000>;
34                 };
35         };
36
37         fragment@2 {
38                 target = <&imx290_2_ep>;
39                 __overlay__ {
40                         data-lanes = <1 2>;
41                         link-frequencies =
42                                 /bits/ 64 <445500000 297000000>;
43                 };
44         };
45
46         fragment@3 {
47                 target = <&imx290_3_ep>;
48                 __overlay__ {
49                         data-lanes = <1 2>;
50                         link-frequencies =
51                                 /bits/ 64 <445500000 297000000>;
52                 };
53         };
54
55         /* IMX477 */
56         fragment@10 {
57                 target = <&imx477_0>;
58                 __overlay__ {
59                         compatible = "sony,imx477";
60                 };
61         };
62
63         fragment@11 {
64                 target = <&imx477_1>;
65                 __overlay__ {
66                         compatible = "sony,imx477";
67                 };
68         };
69
70         fragment@12 {
71                 target = <&imx477_2>;
72                 __overlay__ {
73                         compatible = "sony,imx477";
74                 };
75         };
76
77         fragment@13 {
78                 target = <&imx477_3>;
79                 __overlay__ {
80                         compatible = "sony,imx477";
81                 };
82         };
83
84         /* Additional fragments affecting the mux nodes */
85         fragment@100 {
86                 target = <&mux_in0>;
87                 __dormant__ {
88                         data-lanes = <1>;
89                 };
90         };
91         fragment@101 {
92                 target = <&mux_in0>;
93                 __overlay__ {
94                         data-lanes = <1 2>;
95                 };
96         };
97
98         fragment@102 {
99                 target = <&mux_in1>;
100                 __dormant__ {
101                         data-lanes = <1>;
102                 };
103         };
104         fragment@103 {
105                 target = <&mux_in1>;
106                 __overlay__ {
107                         data-lanes = <1 2>;
108                 };
109         };
110
111         fragment@104 {
112                 target = <&mux_in2>;
113                 __dormant__ {
114                         data-lanes = <1>;
115                 };
116         };
117         fragment@105 {
118                 target = <&mux_in2>;
119                 __overlay__ {
120                         data-lanes = <1 2>;
121                 };
122         };
123
124         fragment@106 {
125                 target = <&mux_in3>;
126                 __dormant__ {
127                         data-lanes = <1>;
128                 };
129         };
130         fragment@107 {
131                 target = <&mux_in3>;
132                 __overlay__ {
133                         data-lanes = <1 2>;
134                 };
135         };
136
137         /* Mux define */
138         fragment@200 {
139                 target = <&i2c_csi_dsi>;
140                 __overlay__ {
141                         #address-cells = <1>;
142                         #size-cells = <0>;
143                         status = "okay";
144
145                         pca@70 {
146                                 reg = <0x70>;
147                                 compatible = "nxp,pca9544";
148
149                                 #address-cells = <1>;
150                                 #size-cells = <0>;
151
152                                 i2c@0 {
153                                         reg = <0>;
154                                         #address-cells = <1>;
155                                         #size-cells = <0>;
156
157                                         #define cam_node imx219_0
158                                         #define cam_endpoint imx219_0_ep
159                                         #define cam1_clk clk_24mhz
160                                         #include "imx219.dtsi"
161                                         #undef cam_node
162                                         #undef cam_endpoint
163                                         #undef cam1_clk
164
165                                         #define cam_node imx477_0
166                                         #define cam_endpoint imx477_0_ep
167                                         #define cam1_clk clk_24mhz
168                                         #include "imx477_378.dtsi"
169                                         #undef cam_node
170                                         #undef cam_endpoint
171                                         #undef cam1_clk
172
173                                         #define cam_node imx708_0
174                                         #define cam_endpoint imx708_0_ep
175                                         #define vcm_node imx708_0_vcm
176                                         #define cam1_clk clk_24mhz
177                                         #include "imx708.dtsi"
178                                         #undef cam_node
179                                         #undef cam_endpoint
180                                         #undef vcm_node
181                                         #undef cam1_clk
182
183                                         #define cam_node ov5647_0
184                                         #define cam_endpoint ov5647_0_ep
185                                         #define cam1_clk clk_25mhz
186                                         #include "ov5647.dtsi"
187                                         #undef cam_node
188                                         #undef cam_endpoint
189                                         #undef cam1_clk
190
191                                         #define cam_node ov7251_0
192                                         #define cam_endpoint ov7251_0_ep
193                                         #define cam1_clk clk_24mhz
194                                         #include "ov7251.dtsi"
195                                         #undef cam_node
196                                         #undef cam_endpoint
197                                         #undef cam1_clk
198
199                                         #define cam_node ov9281_0
200                                         #define cam_endpoint ov9281_0_ep
201                                         #define cam1_clk clk_24mhz
202                                         #include "ov9281.dtsi"
203                                         #undef cam_node
204                                         #undef cam_endpoint
205                                         #undef cam1_clk
206
207                                         #define cam_node imx258_0
208                                         #define cam_endpoint imx258_0_ep
209                                         #define cam1_clk clk_24mhz
210                                         #include "imx258.dtsi"
211                                         #undef cam_node
212                                         #undef cam_endpoint
213                                         #undef cam1_clk
214
215                                         #define cam_node imx290_0
216                                         #define cam_endpoint imx290_0_ep
217                                         #define cam1_clk clk_imx290
218                                         #include "imx290_327.dtsi"
219                                         #undef cam_node
220                                         #undef cam_endpoint
221                                         #undef cam1_clk
222
223                                         #define cam_node ov2311_0
224                                         #define cam_endpoint ov2311_0_ep
225                                         #define cam1_clk clk_24mhz
226                                         #include "ov2311.dtsi"
227                                         #undef cam_node
228                                         #undef cam_endpoint
229                                         #undef cam1_clk
230                                 };
231
232                                 i2c@1 {
233                                         reg = <1>;
234                                         #address-cells = <1>;
235                                         #size-cells = <0>;
236
237                                         #define cam_node imx219_1
238                                         #define cam_endpoint imx219_1_ep
239                                         #define cam1_clk clk_24mhz
240                                         #include "imx219.dtsi"
241                                         #undef cam_node
242                                         #undef cam_endpoint
243                                         #undef cam1_clk
244
245                                         #define cam_node imx477_1
246                                         #define cam_endpoint imx477_1_ep
247                                         #define cam1_clk clk_24mhz
248                                         #include "imx477_378.dtsi"
249                                         #undef cam_node
250                                         #undef cam_endpoint
251                                         #undef cam1_clk
252
253                                         #define cam_node imx708_1
254                                         #define cam_endpoint imx708_1_ep
255                                         #define vcm_node imx708_1_vcm
256                                         #define cam1_clk clk_24mhz
257                                         #include "imx708.dtsi"
258                                         #undef cam_node
259                                         #undef cam_endpoint
260                                         #undef vcm_node
261                                         #undef cam1_clk
262
263                                         #define cam_node ov5647_1
264                                         #define cam_endpoint ov5647_1_ep
265                                         #define cam1_clk clk_25mhz
266                                         #include "ov5647.dtsi"
267                                         #undef cam_node
268                                         #undef cam_endpoint
269                                         #undef cam1_clk
270
271                                         #define cam_node ov7251_1
272                                         #define cam_endpoint ov7251_1_ep
273                                         #define cam1_clk clk_24mhz
274                                         #include "ov7251.dtsi"
275                                         #undef cam_node
276                                         #undef cam_endpoint
277                                         #undef cam1_clk
278
279                                         #define cam_node ov9281_1
280                                         #define cam_endpoint ov9281_1_ep
281                                         #define cam1_clk clk_24mhz
282                                         #include "ov9281.dtsi"
283                                         #undef cam_node
284                                         #undef cam_endpoint
285                                         #undef cam1_clk
286
287                                         #define cam_node imx258_1
288                                         #define cam_endpoint imx258_1_ep
289                                         #define cam1_clk clk_24mhz
290                                         #include "imx258.dtsi"
291                                         #undef cam_node
292                                         #undef cam_endpoint
293                                         #undef cam1_clk
294
295                                         #define cam_node imx290_1
296                                         #define cam_endpoint imx290_1_ep
297                                         #define cam1_clk clk_imx290
298                                         #include "imx290_327.dtsi"
299                                         #undef cam_node
300                                         #undef cam_endpoint
301                                         #undef cam1_clk
302
303                                         #define cam_node ov2311_1
304                                         #define cam_endpoint ov2311_1_ep
305                                         #define cam1_clk clk_24mhz
306                                         #include "ov2311.dtsi"
307                                         #undef cam_node
308                                         #undef cam_endpoint
309                                         #undef cam1_clk
310                                 };
311
312                                 i2c@2 {
313                                         reg = <2>;
314                                         #address-cells = <1>;
315                                         #size-cells = <0>;
316
317                                         #define cam_node imx219_2
318                                         #define cam_endpoint imx219_2_ep
319                                         #define cam1_clk clk_24mhz
320                                         #include "imx219.dtsi"
321                                         #undef cam_node
322                                         #undef cam_endpoint
323                                         #undef cam1_clk
324
325                                         #define cam_node imx477_2
326                                         #define cam_endpoint imx477_2_ep
327                                         #define cam1_clk clk_24mhz
328                                         #include "imx477_378.dtsi"
329                                         #undef cam_node
330                                         #undef cam_endpoint
331                                         #undef cam1_clk
332
333                                         #define cam_node imx708_2
334                                         #define cam_endpoint imx708_2_ep
335                                         #define vcm_node imx708_2_vcm
336                                         #define cam1_clk clk_24mhz
337                                         #include "imx708.dtsi"
338                                         #undef cam_node
339                                         #undef cam_endpoint
340                                         #undef vcm_node
341                                         #undef cam1_clk
342
343                                         #define cam_node ov5647_2
344                                         #define cam_endpoint ov5647_2_ep
345                                         #define cam1_clk clk_25mhz
346                                         #include "ov5647.dtsi"
347                                         #undef cam_node
348                                         #undef cam_endpoint
349                                         #undef cam1_clk
350
351                                         #define cam_node ov7251_2
352                                         #define cam_endpoint ov7251_2_ep
353                                         #define cam1_clk clk_24mhz
354                                         #include "ov7251.dtsi"
355                                         #undef cam_node
356                                         #undef cam_endpoint
357                                         #undef cam1_clk
358
359                                         #define cam_node ov9281_2
360                                         #define cam_endpoint ov9281_2_ep
361                                         #define cam1_clk clk_24mhz
362                                         #include "ov9281.dtsi"
363                                         #undef cam_node
364                                         #undef cam_endpoint
365                                         #undef cam1_clk
366
367                                         #define cam_node imx258_2
368                                         #define cam_endpoint imx258_2_ep
369                                         #define cam1_clk clk_24mhz
370                                         #include "imx258.dtsi"
371                                         #undef cam_node
372                                         #undef cam_endpoint
373                                         #undef cam1_clk
374
375                                         #define cam_node imx290_2
376                                         #define cam_endpoint imx290_2_ep
377                                         #define cam1_clk clk_imx290
378                                         #include "imx290_327.dtsi"
379                                         #undef cam_node
380                                         #undef cam_endpoint
381                                         #undef cam1_clk
382
383                                         #define cam_node ov2311_2
384                                         #define cam_endpoint ov2311_2_ep
385                                         #define cam1_clk clk_24mhz
386                                         #include "ov2311.dtsi"
387                                         #undef cam_node
388                                         #undef cam_endpoint
389                                         #undef cam1_clk
390                                 };
391
392                                 i2c@3 {
393                                         reg = <3>;
394                                         #address-cells = <1>;
395                                         #size-cells = <0>;
396
397                                         #define cam_node imx219_3
398                                         #define cam_endpoint imx219_3_ep
399                                         #define cam1_clk clk_24mhz
400                                         #include "imx219.dtsi"
401                                         #undef cam_node
402                                         #undef cam_endpoint
403                                         #undef cam1_clk
404
405                                         #define cam_node imx477_3
406                                         #define cam_endpoint imx477_3_ep
407                                         #define cam1_clk clk_24mhz
408                                         #include "imx477_378.dtsi"
409                                         #undef cam_node
410                                         #undef cam_endpoint
411                                         #undef cam1_clk
412
413                                         #define cam_node imx708_3
414                                         #define cam_endpoint imx708_3_ep
415                                         #define vcm_node imx708_3_vcm
416                                         #define cam1_clk clk_24mhz
417                                         #include "imx708.dtsi"
418                                         #undef cam_node
419                                         #undef cam_endpoint
420                                         #undef vcm_node
421                                         #undef cam1_clk
422
423                                         #define cam_node ov5647_3
424                                         #define cam_endpoint ov5647_3_ep
425                                         #define cam1_clk clk_25mhz
426                                         #include "ov5647.dtsi"
427                                         #undef cam_node
428                                         #undef cam_endpoint
429                                         #undef cam1_clk
430
431                                         #define cam_node ov7251_3
432                                         #define cam_endpoint ov7251_3_ep
433                                         #define cam1_clk clk_24mhz
434                                         #include "ov7251.dtsi"
435                                         #undef cam_node
436                                         #undef cam_endpoint
437                                         #undef cam1_clk
438
439                                         #define cam_node ov9281_3
440                                         #define cam_endpoint ov9281_3_ep
441                                         #define cam1_clk clk_24mhz
442                                         #include "ov9281.dtsi"
443                                         #undef cam_node
444                                         #undef cam_endpoint
445                                         #undef cam1_clk
446
447                                         #define cam_node imx258_3
448                                         #define cam_endpoint imx258_3_ep
449                                         #define cam1_clk clk_24mhz
450                                         #include "imx258.dtsi"
451                                         #undef cam_node
452                                         #undef cam_endpoint
453                                         #undef cam1_clk
454
455                                         #define cam_node imx290_3
456                                         #define cam_endpoint imx290_3_ep
457                                         #define cam1_clk clk_imx290
458                                         #include "imx290_327.dtsi"
459                                         #undef cam_node
460                                         #undef cam_endpoint
461                                         #undef cam1_clk
462
463                                         #define cam_node ov2311_3
464                                         #define cam_endpoint ov2311_3_ep
465                                         #define cam1_clk clk_24mhz
466                                         #include "ov2311.dtsi"
467                                         #undef cam_node
468                                         #undef cam_endpoint
469                                         #undef cam1_clk
470                                 };
471                         };
472                 };
473         };
474
475         fragment@201 {
476                 target = <&csi1>;
477                 __overlay__ {
478                         status = "okay";
479
480                         brcm,media-controller;
481
482                         port {
483                                 csi1_ep: endpoint {
484                                         remote-endpoint = <&mux_out>;
485                                         clock-lanes = <0>;
486                                         data-lanes = <1 2>;
487                                 };
488                         };
489                 };
490         };
491
492         fragment@202 {
493                 target = <&i2c0if>;
494                 __overlay__ {
495                         status = "okay";
496                 };
497         };
498
499         fragment@203 {
500                 target-path="/";
501                 __overlay__ {
502                         mux: mux-controller {
503                                 compatible = "gpio-mux";
504                                 #mux-control-cells = <0>;
505
506                                 /* SEL, En2, En1 */
507                                 mux-gpios = <&gpio 4 GPIO_ACTIVE_HIGH>,
508                                             <&gpio 18 GPIO_ACTIVE_HIGH>,
509                                             <&gpio 17 GPIO_ACTIVE_HIGH>;
510                         };
511
512                         video-mux {
513                                 compatible = "video-mux";
514                                 mux-controls = <&mux>;
515                                 #address-cells = <1>;
516                                 #size-cells = <0>;
517
518                                 /* GPIO mappings settings for selecting the different
519                                  * camera connectors are not direct, hence port@ values
520                                  * are not straight forward.
521                                  */
522                                 port@2 {
523                                         /* Port A - GPIO 17 = 0, GPIO 18 = 1,GPIO 4 = 0 */
524                                         reg = <2>;
525
526                                         mux_in0: endpoint {
527                                                 clock-lanes = <0>;
528                                         };
529                                 };
530
531                                 port@3 {
532                                         /* Port B - GPIO 17 = 0, GPIO 18 = 1,GPIO 4 = 1 */
533                                         reg = <3>;
534
535                                         mux_in1: endpoint {
536                                                 clock-lanes = <0>;
537                                         };
538                                 };
539
540                                 port@4 {
541                                         /* Port C - GPIO 17 = 1, GPIO 18 = 0, GPIO 4 = 0 */
542                                         reg = <4>;
543
544                                         mux_in2: endpoint {
545                                                 clock-lanes = <0>;
546                                         };
547                                 };
548
549                                 port@5 {
550                                         /* Port D - GPIO 17 = 1, GPIO 18 = 0, GPIO 4 = 1 */
551                                         reg = <5>;
552
553                                         mux_in3: endpoint {
554                                                 clock-lanes = <0>;
555                                         };
556                                 };
557
558                                 port@6 {
559                                         /* Output port needs to be the highest port number */
560                                         reg = <6>;
561
562                                         mux_out: endpoint {
563                                                 remote-endpoint = <&csi1_ep>;
564                                                 clock-lanes = <0>;
565                                         };
566                                 };
567                         };
568
569                         clk_24mhz: clk_24mhz {
570                                 compatible = "fixed-clock";
571                                 #clock-cells = <0>;
572
573                                 clock-frequency = <24000000>;
574                                 status = "okay";
575                         };
576
577                         clk_25mhz: clk_25mhz {
578                                 compatible = "fixed-clock";
579                                 #clock-cells = <0>;
580
581                                 clock-frequency = <25000000>;
582                                 status = "okay";
583                         };
584
585                         clk_imx290: clk_imx290 {
586                                 compatible = "fixed-clock";
587                                 #clock-cells = <0>;
588
589                                 clock-frequency = <37125000>;
590                                 status = "okay";
591                         };
592                 };
593         };
594
595         fragment@204 {
596                 target = <&i2c0mux>;
597                 __overlay__ {
598                         status = "okay";
599                 };
600         };
601
602         __overrides__ {
603                 cam0-imx219 = <&mux_in0>, "remote-endpoint:0=",<&imx219_0_ep>,
604                               <&imx219_0_ep>, "remote-endpoint:0=",<&mux_in0>,
605                               <&mux_in0>, "clock-noncontinuous?",
606                               <&imx219_0>, "status=okay";
607                 cam0-imx477 = <&mux_in0>, "remote-endpoint:0=",<&imx477_0_ep>,
608                               <&imx477_0_ep>, "remote-endpoint:0=",<&mux_in0>,
609                               <&mux_in0>, "clock-noncontinuous?",
610                               <&imx477_0>, "status=okay";
611                 cam0-imx708 = <&mux_in0>, "remote-endpoint:0=",<&imx708_0_ep>,
612                               <&imx708_0_ep>, "remote-endpoint:0=",<&mux_in0>,
613                               <&mux_in0>, "clock-noncontinuous?",
614                               <&imx708_0>, "status=okay",
615                               <&imx708_0_vcm>, "status=okay",
616                               <&imx708_0>,"lens-focus:0=", <&imx708_0_vcm>;
617                 cam0-ov5647 = <&mux_in0>, "remote-endpoint:0=",<&ov5647_0_ep>,
618                               <&ov5647_0_ep>, "remote-endpoint:0=",<&mux_in0>,
619                               <&ov5647_0>, "status=okay";
620                 cam0-ov7251 = <&mux_in0>, "remote-endpoint:0=",<&ov7251_0_ep>,
621                               <&ov7251_0_ep>, "remote-endpoint:0=",<&mux_in0>,
622                               <&ov7251_0>, "status=okay",
623                               <0>,"+100-101";
624                 cam0-ov9281 = <&mux_in0>, "remote-endpoint:0=",<&ov9281_0_ep>,
625                               <&ov9281_0_ep>, "remote-endpoint:0=",<&mux_in0>,
626                               <&ov9281_0>, "status=okay";
627                 cam0-imx258 = <&mux_in0>, "remote-endpoint:0=",<&imx258_0_ep>,
628                               <&imx258_0_ep>, "remote-endpoint:0=",<&mux_in0>,
629                               <&imx258_0>, "status=okay";
630                 cam0-imx290 = <&mux_in0>, "remote-endpoint:0=",<&imx290_0_ep>,
631                               <&imx290_0_ep>, "remote-endpoint:0=",<&mux_in0>,
632                               <&imx290_0>, "status=okay";
633                 cam0-ov2311 = <&mux_in0>, "remote-endpoint:0=",<&ov2311_0_ep>,
634                               <&ov2311_0_ep>, "remote-endpoint:0=",<&mux_in0>,
635                               <&ov2311_0>, "status=okay";
636
637                 cam1-imx219 = <&mux_in1>, "remote-endpoint:0=",<&imx219_1_ep>,
638                               <&imx219_1_ep>, "remote-endpoint:0=",<&mux_in1>,
639                               <&mux_in1>, "clock-noncontinuous?",
640                               <&imx219_1>, "status=okay";
641                 cam1-imx477 = <&mux_in1>, "remote-endpoint:0=",<&imx477_1_ep>,
642                               <&imx477_1_ep>, "remote-endpoint:0=",<&mux_in1>,
643                               <&mux_in1>, "clock-noncontinuous?",
644                               <&imx477_1>, "status=okay";
645                 cam1-imx708 = <&mux_in1>, "remote-endpoint:0=",<&imx708_1_ep>,
646                               <&imx708_1_ep>, "remote-endpoint:0=",<&mux_in1>,
647                               <&mux_in1>, "clock-noncontinuous?",
648                               <&imx708_1>, "status=okay",
649                               <&imx708_1_vcm>, "status=okay",
650                               <&imx708_1>,"lens-focus:0=", <&imx708_1_vcm>;
651                 cam1-ov5647 = <&mux_in1>, "remote-endpoint:0=",<&ov5647_1_ep>,
652                               <&ov5647_1_ep>, "remote-endpoint:0=",<&mux_in1>,
653                               <&ov5647_1>, "status=okay";
654                 cam1-ov7251 = <&mux_in1>, "remote-endpoint:0=",<&ov7251_1_ep>,
655                               <&ov7251_1_ep>, "remote-endpoint:0=",<&mux_in1>,
656                               <&ov7251_1>, "status=okay",
657                               <0>,"+102-103";
658                 cam1-ov9281 = <&mux_in1>, "remote-endpoint:0=",<&ov9281_1_ep>,
659                               <&ov9281_1_ep>, "remote-endpoint:0=",<&mux_in1>,
660                               <&ov9281_1>, "status=okay";
661                 cam1-imx258 = <&mux_in1>, "remote-endpoint:0=",<&imx258_1_ep>,
662                               <&imx258_1_ep>, "remote-endpoint:0=",<&mux_in1>,
663                               <&imx258_1>, "status=okay";
664                 cam1-imx290 = <&mux_in1>, "remote-endpoint:0=",<&imx290_1_ep>,
665                               <&imx290_1_ep>, "remote-endpoint:0=",<&mux_in1>,
666                               <&imx290_1>, "status=okay";
667                 cam1-ov2311 = <&mux_in1>, "remote-endpoint:0=",<&ov2311_1_ep>,
668                               <&ov2311_1_ep>, "remote-endpoint:0=",<&mux_in1>,
669                               <&ov2311_1>, "status=okay";
670
671                 cam2-imx219 = <&mux_in2>, "remote-endpoint:0=",<&imx219_2_ep>,
672                               <&imx219_2_ep>, "remote-endpoint:0=",<&mux_in2>,
673                               <&mux_in2>, "clock-noncontinuous?",
674                               <&imx219_2>, "status=okay";
675                 cam2-imx477 = <&mux_in2>, "remote-endpoint:0=",<&imx477_2_ep>,
676                               <&imx477_2_ep>, "remote-endpoint:0=",<&mux_in2>,
677                               <&mux_in2>, "clock-noncontinuous?",
678                               <&imx477_2>, "status=okay";
679                 cam2-imx708 = <&mux_in2>, "remote-endpoint:0=",<&imx708_2_ep>,
680                               <&imx708_2_ep>, "remote-endpoint:0=",<&mux_in2>,
681                               <&mux_in2>, "clock-noncontinuous?",
682                               <&imx708_2>, "status=okay",
683                               <&imx708_2_vcm>, "status=okay",
684                               <&imx708_2>,"lens-focus:0=", <&imx708_2_vcm>;
685                 cam2-ov5647 = <&mux_in2>, "remote-endpoint:0=",<&ov5647_2_ep>,
686                               <&ov5647_2_ep>, "remote-endpoint:0=",<&mux_in2>,
687                               <&ov5647_2>, "status=okay";
688                 cam2-ov7251 = <&mux_in2>, "remote-endpoint:0=",<&ov7251_2_ep>,
689                               <&ov7251_2_ep>, "remote-endpoint:0=",<&mux_in2>,
690                               <&ov7251_2>, "status=okay",
691                               <0>,"+104-105";
692                 cam2-ov9281 = <&mux_in2>, "remote-endpoint:0=",<&ov9281_2_ep>,
693                               <&ov9281_2_ep>, "remote-endpoint:0=",<&mux_in2>,
694                               <&ov9281_2>, "status=okay";
695                 cam2-imx258 = <&mux_in2>, "remote-endpoint:0=",<&imx258_2_ep>,
696                               <&imx258_2>, "status=okay",
697                               <&imx258_2>, "remote-endpoint:0=",<&mux_in2>;
698                 cam2-imx290 = <&mux_in2>, "remote-endpoint:0=",<&imx290_2_ep>,
699                               <&imx290_2_ep>, "remote-endpoint:0=",<&mux_in2>,
700                               <&imx290_2>, "status=okay";
701                 cam2-ov2311 = <&mux_in2>, "remote-endpoint:0=",<&ov2311_2_ep>,
702                               <&ov2311_2_ep>, "remote-endpoint:0=",<&mux_in2>,
703                               <&ov2311_2>, "status=okay";
704
705                 cam3-imx219 = <&mux_in3>, "remote-endpoint:0=",<&imx219_3_ep>,
706                               <&imx219_3_ep>, "remote-endpoint:0=",<&mux_in3>,
707                               <&mux_in3>, "clock-noncontinuous?",
708                               <&imx219_3>, "status=okay";
709                 cam3-imx477 = <&mux_in3>, "remote-endpoint:0=",<&imx477_3_ep>,
710                               <&imx477_3_ep>, "remote-endpoint:0=",<&mux_in3>,
711                               <&mux_in3>, "clock-noncontinuous?",
712                               <&imx477_3>, "status=okay";
713                 cam3-imx708 = <&mux_in3>, "remote-endpoint:0=",<&imx708_3_ep>,
714                               <&imx708_3_ep>, "remote-endpoint:0=",<&mux_in3>,
715                               <&mux_in3>, "clock-noncontinuous?",
716                               <&imx708_3>, "status=okay",
717                               <&imx708_3_vcm>, "status=okay",
718                               <&imx708_3>,"lens-focus:0=", <&imx708_3_vcm>;
719                 cam3-ov5647 = <&mux_in3>, "remote-endpoint:0=",<&ov5647_3_ep>,
720                               <&ov5647_3_ep>, "remote-endpoint:0=",<&mux_in3>,
721                               <&ov5647_3>, "status=okay";
722                 cam3-ov7251 = <&mux_in3>, "remote-endpoint:0=",<&ov7251_3_ep>,
723                               <&ov7251_3_ep>, "remote-endpoint:0=",<&mux_in3>,
724                               <&ov7251_3>, "status=okay",
725                               <0>,"+106-107";
726                 cam3-ov9281 = <&mux_in3>, "remote-endpoint:0=",<&ov9281_3_ep>,
727                               <&ov9281_3_ep>, "remote-endpoint:0=",<&mux_in3>,
728                               <&ov9281_3>, "status=okay";
729                 cam3-imx258 = <&mux_in3>, "remote-endpoint:0=",<&imx258_3_ep>,
730                               <&imx258_3_ep>, "remote-endpoint:0=",<&mux_in3>,
731                               <&imx258_3>, "status=okay";
732                 cam3-imx290 = <&mux_in3>, "remote-endpoint:0=",<&imx290_3_ep>,
733                               <&imx290_3_ep>, "remote-endpoint:0=",<&mux_in3>,
734                               <&imx290_3>, "status=okay";
735                 cam3-ov2311 = <&mux_in3>, "remote-endpoint:0=",<&ov2311_3_ep>,
736                               <&ov2311_3_ep>, "remote-endpoint:0=",<&mux_in3>,
737                               <&ov2311_3>, "status=okay";
738
739                 cam0-imx290-clk-freq = <&clk_imx290>,"clock-frequency:0",
740                                        <&imx290_0>,"clock-frequency:0";
741                 cam1-imx290-clk-freq = <&clk_imx290>,"clock-frequency:0",
742                                        <&imx290_1>,"clock-frequency:0";
743                 cam2-imx290-clk-freq = <&clk_imx290>,"clock-frequency:0",
744                                        <&imx290_2>,"clock-frequency:0";
745                 cam3-imx290-clk-freq = <&clk_imx290>,"clock-frequency:0",
746                                        <&imx290_3>,"clock-frequency:0";
747         };
748 };