ARM64: DT: Add auto detect support for E3333 board
[linux-3.10.git] / arch / arm64 / boot / dts / tegra210-plugin-manager / tegra210-jetson-cv-camera-plugin-manager.dtsi
1 /*
2  * Copyright (c) 2016, NVIDIA CORPORATION.  All rights reserved.
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation; version 2 of the License.
7  *
8  * This program is distributed in the hope that it will be useful, but WITHOUT
9  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
10  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
11  * more details.
12  *
13  */
14 / {
15         /* camera plugin-manager */
16         plugin-manager {
17                 /* E3326 camera board is enabled by default */
18
19                 /* E3323 camera board */
20                 fragment-e3323@0 {
21                         ids = "3323-1000-A00", "3323-1000-A01", "3323-1000-100";
22                         /* enable E3323 camera 0 */
23                         override@0 {
24                                 target = <&e3323_cam0>;
25                                 _overlay_ {
26                                         status = "okay";
27                                 };
28                         };
29                         override@1 {
30                                 target = <&cam_module0>;
31                                 _overlay_ {
32                                         status = "okay";
33                                         badge = "e3323_bottom_CH06P1";
34                                         position = "bottom";
35                                         orientation = "3";
36                                 };
37                         };
38                         override@2 {
39                                 target = <&cam_module0_drivernode0>;
40                                 _overlay_ {
41                                         status = "okay";
42                                         pcl_id = "v4l2_sensor";
43                                         proc-device-tree = "/proc/device-tree/host1x/i2c@546c0000/ov23850_a@10";
44                                 };
45                         };
46                         /* enable E3323 camera 1 */
47                         override@5 {
48                                 target = <&e3323_cam1>;
49                                 _overlay_ {
50                                         status = "okay";
51                                 };
52                         };
53                         override@6 {
54                                 target = <&cam_module1>;
55                                 _overlay_ {
56                                         status = "okay";
57                                         badge = "e3323_top_CH06P1";
58                                         position = "top";
59                                         orientation = "3";
60                                 };
61                         };
62                         override@7 {
63                                 target = <&cam_module1_drivernode0>;
64                                 _overlay_ {
65                                         status = "okay";
66                                         pcl_id = "v4l2_sensor";
67                                         proc-device-tree = "/proc/device-tree/i2c@7000c000/ov23850_c@36";
68                                 };
69                         };
70                         /* enable E3323 focuser 0 */
71                         override@10 {
72                                 target = <&e3323_vcm0>;
73                                 _overlay_ {
74                                         status = "okay";
75                                 };
76                         };
77                         override@11 {
78                                 target = <&cam_module0_drivernode1>;
79                                 _overlay_ {
80                                         status = "okay";
81                                         pcl_id = "v4l2_focuser";
82                                         proc-device-tree = "/proc/device-tree/host1x/i2c@546c0000/lc898212@72";
83                                 };
84                         };
85                         /* enable E3323 focuser 1 */
86                         override@14 {
87                                 target = <&e3323_vcm1>;
88                                 _overlay_ {
89                                         status = "okay";
90                                 };
91                         };
92                         override@15 {
93                                 target = <&cam_module1_drivernode1>;
94                                 _overlay_ {
95                                         status = "okay";
96                                         pcl_id = "v4l2_focuser";
97                                         proc-device-tree = "/proc/device-tree/i2c@7000c000/lc898212@72";
98                                 };
99                         };
100                         /* enable VI ports */
101                         override@18 {
102                                 target = <&vi_base>;
103                                 _overlay_ {
104                                         num-channels=<4>;
105                                 };
106                         };
107                         override@3 {
108                                 target = <&vi_port0>;
109                                 _overlay_ {
110                                         status = "okay";
111                                 };
112                         };
113                         override@4 {
114                                 target = <&vi_in0>;
115                                 _overlay_ {
116                                         status = "okay";
117                                         remote-endpoint = <&ov23850_out0>;
118                                 };
119                         };
120                         override@8 {
121                                 target = <&vi_port1>;
122                                 _overlay_ {
123                                         status = "okay";
124                                 };
125                         };
126                         override@9 {
127                                 target = <&vi_in1>;
128                                 _overlay_ {
129                                         status = "okay";
130                                         remote-endpoint = <&ov23850_out1>;
131                                 };
132                         };
133                         override@12 {
134                                 target = <&vi_port2>;
135                                 _overlay_ {
136                                         status = "okay";
137                                 };
138                         };
139                         override@13 {
140                                 target = <&vi_in2>;
141                                 _overlay_ {
142                                         status = "okay";
143                                         remote-endpoint = <&lc898212_out0>;
144                                 };
145                         };
146                         override@16 {
147                                 target = <&vi_port3>;
148                                 _overlay_ {
149                                         status = "okay";
150                                 };
151                         };
152                         override@17 {
153                                 target = <&vi_in3>;
154                                 _overlay_ {
155                                         status = "okay";
156                                         remote-endpoint = <&lc898212_out1>;
157                                 };
158                         };
159                         /* disable E3326 camera board*/
160                         override@19 {
161                                 target = <&e3326_cam0>;
162                                 _overlay_ {
163                                         status = "disabled";
164                                 };
165                         };
166                 };
167
168                 /* E3322 camera board */
169                 fragment-e3322@0 {
170                         ids = "3322-1000-000";
171                         /* enable E3322 camera 0 */
172                         override@0 {
173                                 target = <&e3322_cam0>;
174                                 _overlay_ {
175                                         status = "okay";
176                                 };
177                         };
178                         override@1 {
179                                 target = <&cam_module0>;
180                                 _overlay_ {
181                                         status = "okay";
182                                         badge = "e3322_bottomleft_A815P2";
183                                         position = "bottomleft";
184                                         orientation = "1";
185                                 };
186                         };
187                         override@2 {
188                                 target = <&cam_module0_drivernode0>;
189                                 _overlay_ {
190                                         status = "okay";
191                                         pcl_id = "v4l2_sensor";
192                                         proc-device-tree = "/proc/device-tree/host1x/i2c@546c0000/tca9548@77/i2c@0/imx219_a@10";
193                                 };
194                         };
195                         /* enable E3322 camera 1 */
196                         override@3 {
197                                 target = <&e3322_cam1>;
198                                 _overlay_ {
199                                         status = "okay";
200                                 };
201                         };
202                         override@4 {
203                                 target = <&cam_module1>;
204                                 _overlay_ {
205                                         status = "okay";
206                                         badge = "e3322_centerleft_A815P2";
207                                         position = "centerleft";
208                                         orientation = "1";
209                                 };
210                         };
211                         override@5 {
212                                 target = <&cam_module1_drivernode0>;
213                                 _overlay_ {
214                                         status = "okay";
215                                         pcl_id = "v4l2_sensor";
216                                         proc-device-tree = "/proc/device-tree/host1x/i2c@546c0000/tca9548@77/i2c@1/imx219_b@10";
217                                 };
218                         };
219                         /* E3322 camera 2 */
220                         override@6 {
221                                 target = <&e3322_cam2>;
222                                 _overlay_ {
223                                         status = "okay";
224                                 };
225                         };
226                         override@7 {
227                                 target = <&cam_module2>;
228                                 _overlay_ {
229                                         status = "okay";
230                                         badge = "e3322_centerright_A815P2";
231                                         position = "centerright";
232                                         orientation = "1";
233                                 };
234                         };
235                         override@8 {
236                                 target = <&cam_module2_drivernode0>;
237                                 _overlay_ {
238                                         status = "okay";
239                                         pcl_id = "v4l2_sensor";
240                                         proc-device-tree = "/proc/device-tree/host1x/i2c@546c0000/tca9548@77/i2c@2/imx219_c@10";
241                                 };
242                         };
243                         /* E3322 camera 3 */
244                         override@9 {
245                                 target = <&e3322_cam3>;
246                                 _overlay_ {
247                                         status = "okay";
248                                 };
249                         };
250                         override@10 {
251                                 target = <&cam_module3>;
252                                 _overlay_ {
253                                         status = "okay";
254                                         badge = "e3322_topleft_A815P2";
255                                         position = "topleft";
256                                         orientation = "1";
257                                 };
258                         };
259                         override@11 {
260                                 target = <&cam_module3_drivernode0>;
261                                 _overlay_ {
262                                         status = "okay";
263                                         pcl_id = "v4l2_sensor";
264                                         proc-device-tree = "/proc/device-tree/host1x/i2c@546c0000/tca9548@77/i2c@3/imx219_d@10";
265                                 };
266                         };
267                         /* E3322 camera 4 */
268                         override@12 {
269                                 target = <&e3322_cam4>;
270                                 _overlay_ {
271                                         status = "okay";
272                                 };
273                         };
274                         override@13 {
275                                 target = <&cam_module4>;
276                                 _overlay_ {
277                                         status = "okay";
278                                         badge = "e3322_bottomright_A815P2";
279                                         position = "bottomright";
280                                         orientation = "1";
281                                 };
282                         };
283                         override@14 {
284                                 target = <&cam_module4_drivernode0>;
285                                 _overlay_ {
286                                         status = "okay";
287                                         pcl_id = "v4l2_sensor";
288                                         proc-device-tree = "/proc/device-tree/host1x/i2c@546c0000/tca9548@77/i2c@4/imx219_e@10";
289                                 };
290                         };
291                         /* E3322 camera 5 */
292                         override@15 {
293                                 target = <&e3322_cam5>;
294                                 _overlay_ {
295                                         status = "okay";
296                                 };
297                         };
298                         override@16 {
299                                 target = <&cam_module5>;
300                                 _overlay_ {
301                                         status = "okay";
302                                         badge = "e3322_topright_A815P2";
303                                         position = "topright";
304                                         orientation = "1";
305                                 };
306                         };
307                         override@17 {
308                                 target = <&cam_module5_drivernode0>;
309                                 _overlay_ {
310                                         status = "okay";
311                                         pcl_id = "v4l2_sensor";
312                                         proc-device-tree = "/proc/device-tree/host1x/i2c@546c0000/tca9548@77/i2c@5/imx219_f@10";
313                                 };
314                         };
315                         /* Enable VI ports */
316                         override@18 {
317                                 target = <&vi_base>;
318                                 _overlay_ {
319                                         num-channels=<6>;
320                                 };
321                         };
322                         override@19 {
323                                 target = <&vi_port0>;
324                                 _overlay_ {
325                                         status = "okay";
326                                 };
327                         };
328                         override@20 {
329                                 target = <&vi_in0>;
330                                 _overlay_ {
331                                         status = "okay";
332                                         remote-endpoint = <&imx219_out0>;
333                                 };
334                         };
335                         override@21 {
336                                 target = <&vi_port1>;
337                                 _overlay_ {
338                                         status = "okay";
339                                 };
340                         };
341                         override@22 {
342                                 target = <&vi_in1>;
343                                 _overlay_ {
344                                         status = "okay";
345                                         remote-endpoint = <&imx219_out1>;
346                                 };
347                         };
348                         override@23 {
349                                 target = <&vi_port2>;
350                                 _overlay_ {
351                                         status = "okay";
352                                 };
353                         };
354                         override@24 {
355                                 target = <&vi_in2>;
356                                 _overlay_ {
357                                         status = "okay";
358                                         remote-endpoint = <&imx219_out2>;
359                                 };
360                         };
361                         override@25 {
362                                 target = <&vi_port3>;
363                                 _overlay_ {
364                                         status = "okay";
365                                 };
366                         };
367                         override@26 {
368                                 target = <&vi_in3>;
369                                 _overlay_ {
370                                         status = "okay";
371                                         remote-endpoint = <&imx219_out3>;
372                                 };
373                         };
374                         override@27 {
375                                 target = <&vi_port4>;
376                                 _overlay_ {
377                                         status = "okay";
378                                 };
379                         };
380                         override@28 {
381                                 target = <&vi_in4>;
382                                 _overlay_ {
383                                         status = "okay";
384                                         remote-endpoint = <&imx219_out4>;
385                                 };
386                         };
387                         override@29 {
388                                 target = <&vi_port5>;
389                                 _overlay_ {
390                                         status = "okay";
391                                 };
392                         };
393                         override@30 {
394                                 target = <&vi_in5>;
395                                 _overlay_ {
396                                         status = "okay";
397                                         remote-endpoint = <&imx219_out5>;
398                                 };
399                         };
400                         /* Enable TCA6408 GPIO expander */
401                         override@31 {
402                                 target = <&cam_tca6408_21>;
403                                 _overlay_ {
404                                         status = "okay";
405                                 };
406                         };
407                         /* Enable TCA9548 I2C mux */
408                         override@32 {
409                                 target = <&cam_tca9548_77>;
410                                 _overlay_ {
411                                         status = "okay";
412                                 };
413                         };
414                         /* Disable E3326 camera board */
415                         override@33 {
416                                 target = <&e3326_cam0>;
417                                 _overlay_ {
418                                         status = "disabled";
419                                 };
420                         };
421                 };
422
423                 /* E3333 camera board */
424                 fragment-e3333@0 {
425                         ids = "3333-1000-000", "3333-1000-100";
426                         /* Enable E3333 camera 0 */
427                         override@0 {
428                                 target = <&e3333_cam0>;
429                                 _overlay_ {
430                                         status = "okay";
431                                 };
432                         };
433                         override@1 {
434                                 target = <&cam_module0>;
435                                 _overlay_ {
436                                         status = "okay";
437                                         badge = "e3333_bottomleft_P5V27C";
438                                         position = "bottomleft";
439                                         orientation = "1";
440                                 };
441                         };
442                         override@2 {
443                                 target = <&cam_module0_drivernode0>;
444                                 _overlay_ {
445                                         status = "okay";
446                                         pcl_id = "v4l2_sensor";
447                                         proc-device-tree = "/proc/device-tree/host1x/i2c@546c0000/tca9548@77/i2c@0/ov5693_a@36";
448                                 };
449                         };
450                         /* Enable E3333 camera 1 */
451                         override@3 {
452                                 target = <&e3333_cam1>;
453                                 _overlay_ {
454                                         status = "okay";
455                                 };
456                         };
457                         override@4 {
458                                 target = <&cam_module1>;
459                                 _overlay_ {
460                                         status = "okay";
461                                         badge = "e3333_centerleft_P5V27C";
462                                         position = "centerleft";
463                                         orientation = "1";
464                                 };
465                         };
466                         override@5 {
467                                 target = <&cam_module1_drivernode0>;
468                                 _overlay_ {
469                                         status = "okay";
470                                         pcl_id = "v4l2_sensor";
471                                         proc-device-tree = "/proc/device-tree/host1x/i2c@546c0000/tca9548@77/i2c@1/ov5693_b@36";
472                                 };
473                         };
474                         /* Enable E3333 camera 2 */
475                         override@6 {
476                                 target = <&e3333_cam2>;
477                                 _overlay_ {
478                                         status = "okay";
479                                 };
480                         };
481                         override@7 {
482                                 target = <&cam_module2>;
483                                 _overlay_ {
484                                         status = "okay";
485                                         badge = "e3333_centerright_P5V27C";
486                                         position = "centerright";
487                                         orientation = "1";
488                                 };
489                         };
490                         override@8 {
491                                 target = <&cam_module2_drivernode0>;
492                                 _overlay_ {
493                                         status = "okay";
494                                         pcl_id = "v4l2_sensor";
495                                         proc-device-tree = "/proc/device-tree/host1x/i2c@546c0000/tca9548@77/i2c@2/ov5693_c@36";
496                                 };
497                         };
498                         /* Enable E3333 camera 3 */
499                         override@9 {
500                                 target = <&e3333_cam3>;
501                                 _overlay_ {
502                                         status = "okay";
503                                 };
504                         };
505                         override@10 {
506                                 target = <&cam_module3>;
507                                 _overlay_ {
508                                         status = "okay";
509                                         badge = "e3333_topleft_P5V27C";
510                                         position = "topleft";
511                                         orientation = "1";
512                                 };
513                         };
514                         override@11 {
515                                 target = <&cam_module3_drivernode0>;
516                                 _overlay_ {
517                                         status = "okay";
518                                         pcl_id = "v4l2_sensor";
519                                         proc-device-tree = "/proc/device-tree/host1x/i2c@546c0000/tca9548@77/i2c@3/ov5693_d@36";
520                                 };
521                         };
522                         /* Enable E3333 camera 4 */
523                         override@12 {
524                                 target = <&e3333_cam4>;
525                                 _overlay_ {
526                                         status = "okay";
527                                 };
528                         };
529                         override@13 {
530                                 target = <&cam_module4>;
531                                 _overlay_ {
532                                         status = "okay";
533                                         badge = "e3333_bottomright_P5V27C";
534                                         position = "bottomright";
535                                         orientation = "1";
536                                 };
537                         };
538                         override@14 {
539                                 target = <&cam_module4_drivernode0>;
540                                 _overlay_ {
541                                         status = "okay";
542                                         pcl_id = "v4l2_sensor";
543                                         proc-device-tree = "/proc/device-tree/host1x/i2c@546c0000/tca9548@77/i2c@4/ov5693_e@36";
544                                 };
545                         };
546                         /* Enable E3333 camera 5 */
547                         override@15 {
548                                 target = <&e3333_cam5>;
549                                 _overlay_ {
550                                         status = "okay";
551                                 };
552                         };
553                         override@16 {
554                                 target = <&cam_module5>;
555                                 _overlay_ {
556                                         status = "okay";
557                                         badge = "e3333_topright_P5V27C";
558                                         position = "topright";
559                                         orientation = "1";
560                                 };
561                         };
562                         override@17 {
563                                 target = <&cam_module5_drivernode0>;
564                                 _overlay_ {
565                                         status = "okay";
566                                         pcl_id = "v4l2_sensor";
567                                         proc-device-tree = "/proc/device-tree/host1x/i2c@546c0000/tca9548@77/i2c@5/ov5693_f@36";
568                                 };
569                         };
570                         /* Enable VI ports */
571                         override@18 {
572                                 target = <&vi_base>;
573                                 _overlay_ {
574                                         num-channels=<6>;
575                                 };
576                         };
577                         override@19 {
578                                 target = <&vi_port0>;
579                                 _overlay_ {
580                                         status = "okay";
581                                 };
582                         };
583                         override@20 {
584                                 target = <&e3333_vi_in0>;
585                                 _overlay_ {
586                                         status = "okay";
587                                         remote-endpoint = <&e3333_ov5693_out0>;
588                                 };
589                         };
590                         override@21 {
591                                 target = <&vi_port1>;
592                                 _overlay_ {
593                                         status = "okay";
594                                 };
595                         };
596                         override@22 {
597                                 target = <&vi_in1>;
598                                 _overlay_ {
599                                         status = "okay";
600                                         remote-endpoint = <&e3333_ov5693_out1>;
601                                 };
602                         };
603                         override@23 {
604                                 target = <&vi_port2>;
605                                 _overlay_ {
606                                         status = "okay";
607                                 };
608                         };
609                         override@24 {
610                                 target = <&vi_in2>;
611                                 _overlay_ {
612                                         status = "okay";
613                                         remote-endpoint = <&e3333_ov5693_out2>;
614                                 };
615                         };
616                         override@25 {
617                                 target = <&vi_port3>;
618                                 _overlay_ {
619                                         status = "okay";
620                                 };
621                         };
622                         override@26 {
623                                 target = <&vi_in3>;
624                                 _overlay_ {
625                                         status = "okay";
626                                         remote-endpoint = <&e3333_ov5693_out3>;
627                                 };
628                         };
629                         override@27 {
630                                 target = <&vi_port4>;
631                                 _overlay_ {
632                                         status = "okay";
633                                 };
634                         };
635                         override@28 {
636                                 target = <&vi_in4>;
637                                 _overlay_ {
638                                         status = "okay";
639                                         remote-endpoint = <&e3333_ov5693_out4>;
640                                 };
641                         };
642                         override@29 {
643                                 target = <&vi_port5>;
644                                 _overlay_ {
645                                         status = "okay";
646                                 };
647                         };
648                         override@30 {
649                                 target = <&vi_in5>;
650                                 _overlay_ {
651                                         status = "okay";
652                                         remote-endpoint = <&e3333_ov5693_out5>;
653                                 };
654                         };
655                         /* Enable TCA6408 GPIO expander */
656                         override@31 {
657                                 target = <&cam_tca6408_21>;
658                                 _overlay_ {
659                                         status = "okay";
660                                 };
661                         };
662                         /* Enable TCA9548 I2C mux */
663                         override@32 {
664                                 target = <&cam_tca9548_77>;
665                                 _overlay_ {
666                                         status = "okay";
667                                 };
668                         };
669                         /* Disable E3326 camera board */
670                         override@33 {
671                                 target = <&e3326_cam0>;
672                                 _overlay_ {
673                                         status = "disabled";
674                                 };
675                         };
676                 };
677         };
678 };