arch: arm64: boot: dts: T210 camera devnames
[linux-3.10.git] / arch / arm64 / boot / dts / tegra210-platforms / tegra210-camera-e3322-a00.dtsi
1 /*
2  * Copyright (c) 2015-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; either version 2 of the License, or
7  * (at your option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful, but WITHOUT
10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
12  * more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
16  */
17
18 #include <dt-bindings/media/camera.h>
19 #include <dt-bindings/platform/t210/t210.h>
20
21 #define CAM0_RST_L      TEGRA_GPIO(S, 4)
22 #define CAM0_PWDN       TEGRA_GPIO(S, 7)
23
24 /* camera control gpio definitions */
25 / {
26         host1x {
27                 vi {
28                         num-channels = <6>;
29                         ports {
30                                 #address-cells = <1>;
31                                 #size-cells = <0>;
32                                 port@0 {
33                                         reg = <0>;
34                                         e3322_vi_in0: endpoint {
35                                                 remote-endpoint = <&imx219_out0>;
36                                         };
37                                 };
38                                 port@1 {
39                                         reg = <1>;
40                                         e3322_vi_in1: endpoint {
41                                                 remote-endpoint = <&imx219_out1>;
42                                         };
43                                 };
44                                 port@2 {
45                                         reg = <2>;
46                                         e3322_vi_in2: endpoint {
47                                                 remote-endpoint = <&imx219_out2>;
48                                         };
49                                 };
50                                 port@3 {
51                                         reg = <3>;
52                                         e3322_vi_in3: endpoint {
53                                                 remote-endpoint = <&imx219_out3>;
54                                         };
55                                 };
56                                 port@4 {
57                                         reg = <4>;
58                                         e3322_vi_in4: endpoint {
59                                                 remote-endpoint = <&imx219_out4>;
60                                         };
61                                 };
62                                 port@5 {
63                                         reg = <5>;
64                                         e3322_vi_in5: endpoint {
65                                                 remote-endpoint = <&imx219_out5>;
66                                         };
67                                 };
68                         };
69                 };
70
71                 i2c@546c0000 {
72                         status = "okay";
73                         #address-cells = <1>;
74                         #size-cells = <0>;
75
76                         tca9548@77 {
77                                 i2c@0 {
78                                         imx219_a@10 {
79                                                 compatible = "nvidia,imx219";
80                                                 reg = <0x10>;
81
82                                                 physical_w = "5.095";
83                                                 physical_h = "4.930";
84
85                                                 sensor_model ="imx219";
86                                                 dovdd-supply = <&en_vdd_cam>;
87                                                 avdd-reg = "vana";
88                                                 dvdd-reg = "vdig";
89                                                 iovdd-reg = "dovdd";
90
91                                                 /* Defines number of frames to be dropped by driver internally after applying */
92                                                 /* sensor crop settings. Some sensors send corrupt frames after applying */
93                                                 /* crop co-ordinates */
94                                                 post_crop_frame_drop = "0";
95
96                                                 mode0 { // IMX219_MODE_3280X2464
97                                                         mclk_khz = "12000";
98                                                         num_lanes = "2";
99                                                         tegra_sinterface = "serial_a";
100                                                         discontinuous_clk = "yes";
101                                                         cil_settletime = "0";
102
103                                                         active_w = "3280";
104                                                         active_h = "2464";
105                                                         pixel_t = "bayer_rggb";
106                                                         readout_orientation = "90";
107                                                         line_length = "3448";
108                                                         inherent_gain = "1";
109                                                         mclk_multiplier = "25";
110                                                         pix_clk_hz = "170000000";
111
112                                                         min_gain_val = "1.0";
113                                                         max_gain_val = "16.0";
114                                                         min_hdr_ratio = "1";
115                                                         max_hdr_ratio = "64";
116                                                         min_framerate = "1.462526";
117                                                         max_framerate = "21";
118                                                         min_exp_time = "13";
119                                                         max_exp_time = "683709";
120                                                 };
121                                                 ports {
122                                                         #address-cells = <1>;
123                                                         #size-cells = <0>;
124
125                                                         port@0 {
126                                                                 reg = <0>;
127                                                                 imx219_out0: endpoint {
128                                                                         csi-port = <0>;
129                                                                         bus-width = <2>;
130                                                                         remote-endpoint = <&e3322_vi_in0>;
131                                                                 };
132                                                         };
133                                                 };
134                                         };
135                                 };
136                                 i2c@1 {
137                                         imx219_b@10 {
138                                                 compatible = "nvidia,imx219";
139                                                 reg = <0x10>;
140
141                                                 physical_w = "5.095";
142                                                 physical_h = "4.930";
143
144                                                 sensor_model ="imx219";
145                                                 avdd-reg = "vana";
146                                                 dvdd-reg = "vdig";
147                                                 iovdd-reg = "dovdd";
148
149                                                 /* Defines number of frames to be dropped by driver internally after applying */
150                                                 /* sensor crop settings. Some sensors send corrupt frames after applying */
151                                                 /* crop co-ordinates */
152                                                 post_crop_frame_drop = "0";
153
154                                                 mode0 { // IMX219_MODE_3280X2464
155                                                         mclk_khz = "12000";
156                                                         num_lanes = "2";
157                                                         tegra_sinterface = "serial_b";
158                                                         discontinuous_clk = "yes";
159                                                         cil_settletime = "0";
160
161                                                         active_w = "3280";
162                                                         active_h = "2464";
163                                                         pixel_t = "bayer_rggb";
164                                                         readout_orientation = "90";
165                                                         line_length = "3448";
166                                                         inherent_gain = "1";
167                                                         mclk_multiplier = "25";
168                                                         pix_clk_hz = "170000000";
169
170                                                         min_gain_val = "1.0";
171                                                         max_gain_val = "16.0";
172                                                         min_hdr_ratio = "1";
173                                                         max_hdr_ratio = "64";
174                                                         min_framerate = "1.462526";
175                                                         max_framerate = "21";
176                                                         min_exp_time = "13";
177                                                         max_exp_time = "683709";
178                                                 };
179                                                 ports {
180                                                         #address-cells = <1>;
181                                                         #size-cells = <0>;
182
183                                                         port@0 {
184                                                                 reg = <0>;
185                                                                 imx219_out1: endpoint {
186                                                                         csi-port = <1>;
187                                                                         bus-width = <2>;
188                                                                         remote-endpoint = <&e3322_vi_in1>;
189                                                                 };
190                                                         };
191                                                 };
192                                         };
193                                 };
194                                 i2c@2 {
195                                         imx219_c@10 {
196                                                 compatible = "nvidia,imx219";
197                                                 reg = <0x10>;
198
199                                                 physical_w = "5.095";
200                                                 physical_h = "4.930";
201
202                                                 sensor_model ="imx219";
203                                                 avdd-reg = "vana";
204                                                 dvdd-reg = "vdig";
205                                                 iovdd-reg = "dovdd";
206
207                                                 /* Defines number of frames to be dropped by driver internally after applying */
208                                                 /* sensor crop settings. Some sensors send corrupt frames after applying */
209                                                 /* crop co-ordinates */
210                                                 post_crop_frame_drop = "0";
211
212                                                 mode0 { // IMX219_MODE_3280X2464
213                                                         mclk_khz = "12000";
214                                                         num_lanes = "2";
215                                                         tegra_sinterface = "serial_c";
216                                                         discontinuous_clk = "yes";
217                                                         cil_settletime = "0";
218
219                                                         active_w = "3280";
220                                                         active_h = "2464";
221                                                         pixel_t = "bayer_rggb";
222                                                         readout_orientation = "90";
223                                                         line_length = "3448";
224                                                         inherent_gain = "1";
225                                                         mclk_multiplier = "25";
226                                                         pix_clk_hz = "170000000";
227
228                                                         min_gain_val = "1.0";
229                                                         max_gain_val = "16.0";
230                                                         min_hdr_ratio = "1";
231                                                         max_hdr_ratio = "64";
232                                                         min_framerate = "1.462526";
233                                                         max_framerate = "21";
234                                                         min_exp_time = "13";
235                                                         max_exp_time = "683709";
236                                                 };
237                                                 ports {
238                                                         #address-cells = <1>;
239                                                         #size-cells = <0>;
240
241                                                         port@0 {
242                                                                 reg = <0>;
243                                                                 imx219_out2: endpoint {
244                                                                         csi-port = <2>;
245                                                                         bus-width = <2>;
246                                                                         remote-endpoint = <&e3322_vi_in2>;
247                                                                 };
248                                                         };
249                                                 };
250                                         };
251                                 };
252                                 i2c@3 {
253                                         imx219_d@10 {
254                                                 compatible = "nvidia,imx219";
255                                                 reg = <0x10>;
256
257                                                 physical_w = "5.095";
258                                                 physical_h = "4.930";
259
260                                                 sensor_model ="imx219";
261                                                 avdd-reg = "vana";
262                                                 dvdd-reg = "vdig";
263                                                 iovdd-reg = "dovdd";
264
265                                                 /* Defines number of frames to be dropped by driver internally after applying */
266                                                 /* sensor crop settings. Some sensors send corrupt frames after applying */
267                                                 /* crop co-ordinates */
268                                                 post_crop_frame_drop = "0";
269
270                                                 mode0 { // IMX219_MODE_3280X2464
271                                                         mclk_khz = "12000";
272                                                         num_lanes = "2";
273                                                         tegra_sinterface = "serial_d";
274                                                         discontinuous_clk = "yes";
275                                                         cil_settletime = "0";
276
277                                                         active_w = "3280";
278                                                         active_h = "2464";
279                                                         pixel_t = "bayer_rggb";
280                                                         readout_orientation = "90";
281                                                         line_length = "3448";
282                                                         inherent_gain = "1";
283                                                         mclk_multiplier = "25";
284                                                         pix_clk_hz = "170000000";
285
286                                                         min_gain_val = "1.0";
287                                                         max_gain_val = "16.0";
288                                                         min_hdr_ratio = "1";
289                                                         max_hdr_ratio = "64";
290                                                         min_framerate = "1.462526";
291                                                         max_framerate = "21";
292                                                         min_exp_time = "13";
293                                                         max_exp_time = "683709";
294                                                 };
295                                                 ports {
296                                                         #address-cells = <1>;
297                                                         #size-cells = <0>;
298
299                                                         port@0 {
300                                                                 reg = <0>;
301                                                                 imx219_out3: endpoint {
302                                                                         csi-port = <3>;
303                                                                         bus-width = <2>;
304                                                                         remote-endpoint = <&e3322_vi_in3>;
305                                                                 };
306                                                         };
307                                                 };
308                                         };
309                                 };
310                                 i2c@4 {
311                                         imx219_e@10 {
312                                                 compatible = "nvidia,imx219";
313                                                 reg = <0x10>;
314
315                                                 physical_w = "5.095";
316                                                 physical_h = "4.930";
317
318                                                 sensor_model ="imx219";
319                                                 avdd-reg = "vana";
320                                                 dvdd-reg = "vdig";
321                                                 iovdd-reg = "dovdd";
322
323                                                 /* Defines number of frames to be dropped by driver internally after applying */
324                                                 /* sensor crop settings. Some sensors send corrupt frames after applying */
325                                                 /* crop co-ordinates */
326                                                 post_crop_frame_drop = "0";
327
328                                                 mode0 { // IMX219_MODE_3280X2464
329                                                         mclk_khz = "12000";
330                                                         num_lanes = "2";
331                                                         tegra_sinterface = "serial_e";
332                                                         discontinuous_clk = "yes";
333                                                         cil_settletime = "0";
334
335                                                         active_w = "3280";
336                                                         active_h = "2464";
337                                                         pixel_t = "bayer_rggb";
338                                                         readout_orientation = "90";
339                                                         line_length = "3448";
340                                                         inherent_gain = "1";
341                                                         mclk_multiplier = "25";
342                                                         pix_clk_hz = "170000000";
343
344                                                         min_gain_val = "1.0";
345                                                         max_gain_val = "16.0";
346                                                         min_hdr_ratio = "1";
347                                                         max_hdr_ratio = "64";
348                                                         min_framerate = "1.462526";
349                                                         max_framerate = "21";
350                                                         min_exp_time = "13";
351                                                         max_exp_time = "683709";
352                                                 };
353                                                 ports {
354                                                         #address-cells = <1>;
355                                                         #size-cells = <0>;
356
357                                                         port@0 {
358                                                                 reg = <0>;
359                                                                 imx219_out4: endpoint {
360                                                                         csi-port = <4>;
361                                                                         bus-width = <2>;
362                                                                         remote-endpoint = <&e3322_vi_in4>;
363                                                                 };
364                                                         };
365                                                 };
366                                         };
367                                 };
368                                 i2c@5 {
369                                         imx219_f@10 {
370                                                 compatible = "nvidia,imx219";
371                                                 reg = <0x10>;
372
373                                                 physical_w = "5.095";
374                                                 physical_h = "4.930";
375
376                                                 sensor_model ="imx219";
377                                                 avdd-reg = "vana";
378                                                 dvdd-reg = "vdig";
379                                                 iovdd-reg = "dovdd";
380
381                                                 /* Defines number of frames to be dropped by driver internally after applying */
382                                                 /* sensor crop settings. Some sensors send corrupt frames after applying */
383                                                 /* crop co-ordinates */
384                                                 post_crop_frame_drop = "0";
385
386                                                 mode0 { // IMX219_MODE_3280X2464
387                                                         mclk_khz = "12000";
388                                                         num_lanes = "2";
389                                                         tegra_sinterface = "serial_f";
390                                                         discontinuous_clk = "yes";
391                                                         cil_settletime = "0";
392
393                                                         active_w = "3280";
394                                                         active_h = "2464";
395                                                         pixel_t = "bayer_rggb";
396                                                         readout_orientation = "90";
397                                                         line_length = "3448";
398                                                         inherent_gain = "1";
399                                                         mclk_multiplier = "25";
400                                                         pix_clk_hz = "170000000";
401
402                                                         min_gain_val = "1.0";
403                                                         max_gain_val = "16.0";
404                                                         min_hdr_ratio = "1";
405                                                         max_hdr_ratio = "64";
406                                                         min_framerate = "1.462526";
407                                                         max_framerate = "21";
408                                                         min_exp_time = "13";
409                                                         max_exp_time = "683709";
410                                                 };
411                                                 ports {
412                                                         #address-cells = <1>;
413                                                         #size-cells = <0>;
414
415                                                         port@0 {
416                                                                 reg = <0>;
417                                                                 imx219_out5: endpoint {
418                                                                         csi-port = <5>;
419                                                                         bus-width = <2>;
420                                                                         remote-endpoint = <&e3322_vi_in5>;
421                                                                 };
422                                                         };
423                                                 };
424                                         };
425                                 };
426                         };
427                 };
428         };
429 };
430
431 /* camera control gpio definitions */
432 / {
433
434         tegra-camera-platform {
435                 compatible = "nvidia, tegra-camera-platform";
436
437                 /**
438                  * The general guideline for naming badge_info contains 3 parts, and is as follows,
439                  * The first part is the camera_board_id for the module; if the module is in a FFD
440                  * platform, then use the platform name for this part.
441                  * The second part contains the position of the module, ex. “rear” or “front”.
442                  * The third part contains the last 6 characters of a part number which is found
443                  * in the module's specsheet from the vender.
444                  */
445                 modules {
446                         module0 {
447                                 badge = "e3322_bottomleft_A815P2";
448                                 position = "bottomleft";
449                                 orientation = "1";
450                                 drivernode0 {
451                                         pcl_id = "v4l2_sensor";
452                                         devname = "imx219 30-0010";
453                                         proc-device-tree = "/proc/device-tree/host1x/i2c@546c0000/tca9548@77/i2c@0/imx219_a@10";
454                                 };
455                         };
456                         module1 {
457                                 badge = "e3322_centerleft_A815P2";
458                                 position = "centerleft";
459                                 orientation = "1";
460                                 drivernode0 {
461                                         pcl_id = "v4l2_sensor";
462                                         devname = "imx219 31-0010";
463                                         proc-device-tree = "/proc/device-tree/host1x/i2c@546c0000/tca9548@77/i2c@1/imx219_b@10";
464                                 };
465                         };
466                         module2 {
467                                 badge = "e3322_centerleft_A815P2";
468                                 position = "centerright";
469                                 orientation = "1";
470                                 drivernode0 {
471                                         pcl_id = "v4l2_sensor";
472                                         devname = "imx219 32-0010";
473                                         proc-device-tree = "/proc/device-tree/host1x/i2c@546c0000/tca9548@77/i2c@2/imx219_c@10";
474                                 };
475                         };
476                         module3 {
477                                 badge = "e3322_centerleft_A815P2";
478                                 position = "topleft";
479                                 orientation = "1";
480                                 drivernode0 {
481                                         pcl_id = "v4l2_sensor";
482                                         devname = "imx219 33-0010";
483                                         proc-device-tree = "/proc/device-tree/host1x/i2c@546c0000/tca9548@77/i2c@3/imx219_d@10";
484                                 };
485                         };
486                         module4 {
487                                 badge = "e3322_centerleft_A815P2";
488                                 position = "bottomright";
489                                 orientation = "1";
490                                 drivernode0 {
491                                         pcl_id = "v4l2_sensor";
492                                         devname = "imx219 34-0010";
493                                         proc-device-tree = "/proc/device-tree/host1x/i2c@546c0000/tca9548@77/i2c@4/imx219_e@10";
494                                 };
495                         };
496                         module5 {
497                                 badge = "e3322_centerleft_A815P2";
498                                 position = "topright";
499                                 orientation = "1";
500                                 drivernode0 {
501                                         pcl_id = "v4l2_sensor";
502                                         devname = "imx219 35-0010";
503                                         proc-device-tree = "/proc/device-tree/host1x/i2c@546c0000/tca9548@77/i2c@5/imx219_f@10";
504                                 };
505                         };
506                 };
507         };
508 };