2 * Copyright (c) 2015-2016, NVIDIA CORPORATION. All rights reserved.
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.
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
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/>.
18 #include <dt-bindings/media/camera.h>
19 #include <dt-bindings/platform/t210/t210.h>
21 /* camera control gpio definitions */
31 e3333_vi_in0: endpoint {
34 remote-endpoint = <&e3333_ov5693_out0>;
39 e3333_vi_in1: endpoint {
42 remote-endpoint = <&e3333_ov5693_out1>;
47 e3333_vi_in2: endpoint {
50 remote-endpoint = <&e3333_ov5693_out2>;
55 e3333_vi_in3: endpoint {
58 remote-endpoint = <&e3333_ov5693_out3>;
63 e3333_vi_in4: endpoint {
66 remote-endpoint = <&e3333_ov5693_out4>;
71 e3333_vi_in5: endpoint {
74 remote-endpoint = <&e3333_ov5693_out5>;
81 avdd_dsi_csi-supply = <&max77620_gpio7>;
90 compatible = "nvidia,ov5693";
97 mode0 { // OV5693_MODE_2592X1944
100 tegra_sinterface = "serial_a";
101 discontinuous_clk = "no";
102 dpcm_enable = "false";
103 cil_settletime = "0";
106 pixel_t = "bayer_bggr";
107 readout_orientation = "90";
108 line_length = "2688";
110 mclk_multiplier = "17.0";
111 pix_clk_hz = "160000000";
112 min_gain_val = "1.0";
115 max_hdr_ratio = "64";
116 min_framerate = "1.816577";
117 max_framerate = "30";
119 max_exp_time = "550385";
121 mode1 { //OV5693_MODE_2592X1458
124 tegra_sinterface = "serial_a";
125 discontinuous_clk = "no";
126 dpcm_enable = "false";
127 cil_settletime = "0";
130 pixel_t = "bayer_bggr";
131 readout_orientation = "90";
132 line_length = "2688";
134 mclk_multiplier = "17.0";
135 pix_clk_hz = "160000000";
136 min_gain_val = "1.0";
139 max_hdr_ratio = "64";
140 min_framerate = "1.816577";
141 max_framerate = "30";
143 max_exp_time = "550385";
145 mode2 { //OV5693_MODE_1280X720
148 tegra_sinterface = "serial_a";
149 discontinuous_clk = "no";
150 dpcm_enable = "false";
151 cil_settletime = "0";
154 pixel_t = "bayer_bggr";
155 readout_orientation = "90";
156 line_length = "1752";
158 mclk_multiplier = "17.0";
159 pix_clk_hz = "160000000";
160 min_gain_val = "1.0";
163 max_hdr_ratio = "64";
164 min_framerate = "2.787078";
165 max_framerate = "120";
167 max_exp_time = "358733";
170 mode3 { //OV5693_MODE_2592X1944_HDR
173 tegra_sinterface = "serial_a";
174 discontinuous_clk = "no";
175 dpcm_enable = "false";
176 cil_settletime = "0";
179 pixel_t = "hdr_bggr";
180 readout_orientation = "90";
181 line_length = "3696";
183 mclk_multiplier = "19.0";
184 pix_clk_hz = "176000000";
185 min_gain_val = "1.0";
188 max_hdr_ratio = "64";
189 min_framerate = "1.453262";
190 max_framerate = "24";
192 max_exp_time = "687981";
195 #address-cells = <1>;
199 e3333_ov5693_out0: endpoint {
202 remote-endpoint = <&e3333_vi_in0>;
210 compatible = "nvidia,ov5693";
215 physical_w = "3.674";
216 physical_h = "2.738";
217 mode0 { // OV5693_MODE_2592X1944
220 tegra_sinterface = "serial_b";
221 discontinuous_clk = "no";
222 dpcm_enable = "false";
223 cil_settletime = "0";
226 pixel_t = "bayer_bggr";
227 readout_orientation = "90";
228 line_length = "2688";
230 mclk_multiplier = "17.0";
231 pix_clk_hz = "160000000";
232 min_gain_val = "1.0";
235 max_hdr_ratio = "64";
236 min_framerate = "1.816577";
237 max_framerate = "30";
239 max_exp_time = "550385";
241 mode1 { //OV5693_MODE_2592X1458
244 tegra_sinterface = "serial_b";
245 discontinuous_clk = "no";
246 dpcm_enable = "false";
247 cil_settletime = "0";
250 pixel_t = "bayer_bggr";
251 readout_orientation = "90";
252 line_length = "2688";
254 mclk_multiplier = "17.0";
255 pix_clk_hz = "160000000";
256 min_gain_val = "1.0";
259 max_hdr_ratio = "64";
260 min_framerate = "1.816577";
261 max_framerate = "30";
263 max_exp_time = "550385";
265 mode2 { //OV5693_MODE_1280X720
268 tegra_sinterface = "serial_b";
269 discontinuous_clk = "no";
270 dpcm_enable = "false";
271 cil_settletime = "0";
274 pixel_t = "bayer_bggr";
275 readout_orientation = "90";
276 line_length = "1752";
278 mclk_multiplier = "17.0";
279 pix_clk_hz = "160000000";
280 min_gain_val = "1.0";
283 max_hdr_ratio = "64";
284 min_framerate = "2.787078";
285 max_framerate = "120";
287 max_exp_time = "358733";
290 mode3 { //OV5693_MODE_2592X1944_HDR
293 tegra_sinterface = "serial_b";
294 discontinuous_clk = "no";
295 dpcm_enable = "false";
296 cil_settletime = "0";
299 pixel_t = "hdr_bggr";
300 readout_orientation = "90";
301 line_length = "3696";
303 mclk_multiplier = "19.0";
304 pix_clk_hz = "176000000";
305 min_gain_val = "1.0";
308 max_hdr_ratio = "64";
309 min_framerate = "1.453262";
310 max_framerate = "24";
312 max_exp_time = "687981";
315 #address-cells = <1>;
319 e3333_ov5693_out1: endpoint {
322 remote-endpoint = <&e3333_vi_in1>;
330 compatible = "nvidia,ov5693";
335 physical_w = "3.674";
336 physical_h = "2.738";
337 mode0 { // OV5693_MODE_2592X1944
340 tegra_sinterface = "serial_c";
341 discontinuous_clk = "no";
342 dpcm_enable = "false";
343 cil_settletime = "0";
346 pixel_t = "bayer_bggr";
347 readout_orientation = "90";
348 line_length = "2688";
350 mclk_multiplier = "17.0";
351 pix_clk_hz = "160000000";
352 min_gain_val = "1.0";
355 max_hdr_ratio = "64";
356 min_framerate = "1.816577";
357 max_framerate = "30";
359 max_exp_time = "550385";
361 mode1 { //OV5693_MODE_2592X1458
364 tegra_sinterface = "serial_c";
365 discontinuous_clk = "no";
366 dpcm_enable = "false";
367 cil_settletime = "0";
370 pixel_t = "bayer_bggr";
371 readout_orientation = "90";
372 line_length = "2688";
374 mclk_multiplier = "17.0";
375 pix_clk_hz = "160000000";
376 min_gain_val = "1.0";
379 max_hdr_ratio = "64";
380 min_framerate = "1.816577";
381 max_framerate = "30";
383 max_exp_time = "550385";
385 mode2 { //OV5693_MODE_1280X720
388 tegra_sinterface = "serial_c";
389 discontinuous_clk = "no";
390 dpcm_enable = "false";
391 cil_settletime = "0";
394 pixel_t = "bayer_bggr";
395 readout_orientation = "90";
396 line_length = "1752";
398 mclk_multiplier = "17.0";
399 pix_clk_hz = "160000000";
400 min_gain_val = "1.0";
403 max_hdr_ratio = "64";
404 min_framerate = "2.787078";
405 max_framerate = "120";
407 max_exp_time = "358733";
410 mode3 { //OV5693_MODE_2592X1944_HDR
413 tegra_sinterface = "serial_c";
414 discontinuous_clk = "no";
415 dpcm_enable = "false";
416 cil_settletime = "0";
419 pixel_t = "hdr_bggr";
420 readout_orientation = "90";
421 line_length = "3696";
423 mclk_multiplier = "19.0";
424 pix_clk_hz = "176000000";
425 min_gain_val = "1.0";
428 max_hdr_ratio = "64";
429 min_framerate = "1.453262";
430 max_framerate = "24";
432 max_exp_time = "687981";
435 #address-cells = <1>;
439 e3333_ov5693_out2: endpoint {
442 remote-endpoint = <&e3333_vi_in2>;
450 compatible = "nvidia,ov5693";
455 physical_w = "3.674";
456 physical_h = "2.738";
457 mode0 { // OV5693_MODE_2592X1944
460 tegra_sinterface = "serial_d";
461 discontinuous_clk = "no";
462 dpcm_enable = "false";
463 cil_settletime = "0";
466 pixel_t = "bayer_bggr";
467 readout_orientation = "90";
468 line_length = "2688";
470 mclk_multiplier = "17.0";
471 pix_clk_hz = "160000000";
472 min_gain_val = "1.0";
475 max_hdr_ratio = "64";
476 min_framerate = "1.816577";
477 max_framerate = "30";
479 max_exp_time = "550385";
481 mode1 { //OV5693_MODE_2592X1458
484 tegra_sinterface = "serial_d";
485 discontinuous_clk = "no";
486 dpcm_enable = "false";
487 cil_settletime = "0";
490 pixel_t = "bayer_bggr";
491 readout_orientation = "90";
492 line_length = "2688";
494 mclk_multiplier = "17.0";
495 pix_clk_hz = "160000000";
496 min_gain_val = "1.0";
499 max_hdr_ratio = "64";
500 min_framerate = "1.816577";
501 max_framerate = "30";
503 max_exp_time = "550385";
505 mode2 { //OV5693_MODE_1280X720
508 tegra_sinterface = "serial_d";
509 discontinuous_clk = "no";
510 dpcm_enable = "false";
511 cil_settletime = "0";
514 pixel_t = "bayer_bggr";
515 readout_orientation = "90";
516 line_length = "1752";
518 mclk_multiplier = "17.0";
519 pix_clk_hz = "160000000";
520 min_gain_val = "1.0";
523 max_hdr_ratio = "64";
524 min_framerate = "2.787078";
525 max_framerate = "120";
527 max_exp_time = "358733";
530 mode3 { //OV5693_MODE_2592X1944_HDR
533 tegra_sinterface = "serial_d";
534 discontinuous_clk = "no";
535 dpcm_enable = "false";
536 cil_settletime = "0";
539 pixel_t = "hdr_bggr";
540 readout_orientation = "90";
541 line_length = "3696";
543 mclk_multiplier = "19.0";
544 pix_clk_hz = "176000000";
545 min_gain_val = "1.0";
548 max_hdr_ratio = "64";
549 min_framerate = "1.453262";
550 max_framerate = "24";
552 max_exp_time = "687981";
555 #address-cells = <1>;
559 e3333_ov5693_out3: endpoint {
562 remote-endpoint = <&e3333_vi_in3>;
570 compatible = "nvidia,ov5693";
575 physical_w = "3.674";
576 physical_h = "2.738";
577 mode0 { // OV5693_MODE_2592X1944
580 tegra_sinterface = "serial_e";
581 discontinuous_clk = "no";
582 dpcm_enable = "false";
583 cil_settletime = "0";
586 pixel_t = "bayer_bggr";
587 readout_orientation = "90";
588 line_length = "2688";
590 mclk_multiplier = "17.0";
591 pix_clk_hz = "160000000";
592 min_gain_val = "1.0";
595 max_hdr_ratio = "64";
596 min_framerate = "1.816577";
597 max_framerate = "30";
599 max_exp_time = "550385";
601 mode1 { //OV5693_MODE_2592X1458
604 tegra_sinterface = "serial_e";
605 discontinuous_clk = "no";
606 dpcm_enable = "false";
607 cil_settletime = "0";
610 pixel_t = "bayer_bggr";
611 readout_orientation = "90";
612 line_length = "2688";
614 mclk_multiplier = "17.0";
615 pix_clk_hz = "160000000";
616 min_gain_val = "1.0";
619 max_hdr_ratio = "64";
620 min_framerate = "1.816577";
621 max_framerate = "30";
623 max_exp_time = "550385";
625 mode2 { //OV5693_MODE_1280X720
628 tegra_sinterface = "serial_e";
629 discontinuous_clk = "no";
630 dpcm_enable = "false";
631 cil_settletime = "0";
634 pixel_t = "bayer_bggr";
635 readout_orientation = "90";
636 line_length = "1752";
638 mclk_multiplier = "17.0";
639 pix_clk_hz = "160000000";
640 min_gain_val = "1.0";
643 max_hdr_ratio = "64";
644 min_framerate = "2.787078";
645 max_framerate = "120";
647 max_exp_time = "358733";
650 mode3 { //OV5693_MODE_2592X1944_HDR
653 tegra_sinterface = "serial_e";
654 discontinuous_clk = "no";
655 dpcm_enable = "false";
656 cil_settletime = "0";
659 pixel_t = "hdr_bggr";
660 readout_orientation = "90";
661 line_length = "3696";
663 mclk_multiplier = "19.0";
664 pix_clk_hz = "176000000";
665 min_gain_val = "1.0";
668 max_hdr_ratio = "64";
669 min_framerate = "1.453262";
670 max_framerate = "24";
672 max_exp_time = "687981";
675 #address-cells = <1>;
679 e3333_ov5693_out4: endpoint {
682 remote-endpoint = <&e3333_vi_in4>;
690 compatible = "nvidia,ov5693";
695 physical_w = "3.674";
696 physical_h = "2.738";
697 mode0 { // OV5693_MODE_2592X1944
700 tegra_sinterface = "serial_f";
701 discontinuous_clk = "no";
702 dpcm_enable = "false";
703 cil_settletime = "0";
706 pixel_t = "bayer_bggr";
707 readout_orientation = "90";
708 line_length = "2688";
710 mclk_multiplier = "17.0";
711 pix_clk_hz = "160000000";
712 min_gain_val = "1.0";
715 max_hdr_ratio = "64";
716 min_framerate = "1.816577";
717 max_framerate = "30";
719 max_exp_time = "550385";
721 mode1 { //OV5693_MODE_2592X1458
724 tegra_sinterface = "serial_f";
725 discontinuous_clk = "no";
726 dpcm_enable = "false";
727 cil_settletime = "0";
730 pixel_t = "bayer_bggr";
731 readout_orientation = "90";
732 line_length = "2688";
734 mclk_multiplier = "17.0";
735 pix_clk_hz = "160000000";
736 min_gain_val = "1.0";
739 max_hdr_ratio = "64";
740 min_framerate = "1.816577";
741 max_framerate = "30";
743 max_exp_time = "550385";
745 mode2 { //OV5693_MODE_1280X720
748 tegra_sinterface = "serial_f";
749 discontinuous_clk = "no";
750 dpcm_enable = "false";
751 cil_settletime = "0";
754 pixel_t = "bayer_bggr";
755 readout_orientation = "90";
756 line_length = "1752";
758 mclk_multiplier = "17.0";
759 pix_clk_hz = "160000000";
760 min_gain_val = "1.0";
763 max_hdr_ratio = "64";
764 min_framerate = "2.787078";
765 max_framerate = "120";
767 max_exp_time = "358733";
770 mode3 { //OV5693_MODE_2592X1944_HDR
773 tegra_sinterface = "serial_f";
774 discontinuous_clk = "no";
775 dpcm_enable = "false";
776 cil_settletime = "0";
779 pixel_t = "hdr_bggr";
780 readout_orientation = "90";
781 line_length = "3696";
783 mclk_multiplier = "19.0";
784 pix_clk_hz = "176000000";
785 min_gain_val = "1.0";
788 max_hdr_ratio = "64";
789 min_framerate = "1.453262";
790 max_framerate = "24";
792 max_exp_time = "687981";
795 #address-cells = <1>;
799 e3333_ov5693_out5: endpoint {
802 remote-endpoint = <&e3333_vi_in5>;
813 /* camera control gpio definitions */
816 tegra-camera-platform {
817 compatible = "nvidia, tegra-camera-platform";
820 * The general guideline for naming badge_info contains 3 parts, and is as follows,
821 * The first part is the camera_board_id for the module; if the module is in a FFD
822 * platform, then use the platform name for this part.
823 * The second part contains the position of the module, ex. “rear” or “front”.
824 * The third part contains the last 6 characters of a part number which is found
825 * in the module's specsheet from the vender.
829 badge = "e3333_bottomleft_P5V27C";
830 position = "bottomleft";
833 pcl_id = "v4l2_sensor";
834 proc-device-tree = "/proc/device-tree/host1x/i2c@546c0000/tca9548@77/i2c@0/ov5693_a@36";
838 badge = "e3333_centerleft_P5V27C";
839 position = "centerleft";
842 pcl_id = "v4l2_sensor";
843 proc-device-tree = "/proc/device-tree/host1x/i2c@546c0000/tca9548@77/i2c@1/ov5693_b@36";
847 badge = "e3333_centerright_P5V27C";
848 position = "centerright";
851 pcl_id = "v4l2_sensor";
852 proc-device-tree = "/proc/device-tree/host1x/i2c@546c0000/tca9548@77/i2c@2/ov5693_c@36";
856 badge = "e3333_topleft_P5V27C";
857 position = "topleft";
860 pcl_id = "v4l2_sensor";
861 proc-device-tree = "/proc/device-tree/host1x/i2c@546c0000/tca9548@77/i2c@3/ov5693_d@36";
865 badge = "e3333_bottomright_P5V27C";
866 position = "bottomright";
869 pcl_id = "v4l2_sensor";
870 proc-device-tree = "/proc/device-tree/host1x/i2c@546c0000/tca9548@77/i2c@4/ov5693_e@36";
874 badge = "e3333_topright_P5V27C";
875 position = "topright";
878 pcl_id = "v4l2_sensor";
879 proc-device-tree = "/proc/device-tree/host1x/i2c@546c0000/tca9548@77/i2c@5/ov5693_f@36";