[9610] arm64: dts: add SoC dts file to make dtbo image
[GitHub/MotorolaMobilityLLC/kernel-slsi.git] / arch / arm64 / boot / dts / exynos / exynos9610-erd9610-camera.dtsi
CommitLineData
1b77cd64
WK
1/*
2 * SAMSUNG EXYNOS9610 board camera device tree source
3 *
4 * Copyright (c) 2018 Samsung Electronics Co., Ltd.
5 * http://www.samsung.com
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License version 2 as
9 * published by the Free Software Foundation.
10 */
11
12#include <dt-bindings/camera/fimc_is.h>
13
14/ {
15// fragment@camera {
16// target-path = "/";
17// __overlay__ {
18 fimc_is_flash_gpio: fimc-is-flash-gpio@0 {
19 compatible = "samsung,sensor-flash-gpio";
20 id = <0>;
21 status = "okay";
22
23 torch-gpio = <&gpg3 1 0x1>;
24 flash-gpio = <&gpg3 0 0x1>;
25 };
26
27 fimc_is_sensor_2p7sq: fimc-is_sensor_2p7sq@47 {
28 compatible = "samsung,sensor-module-2p7sq";
29
30 pinctrl-names = "pin0", "pin1", "pin2", "release";
31 pinctrl-0 = <>;
32 pinctrl-1 = <&fimc_is_mclk0_out>;
33 pinctrl-2 = <&fimc_is_mclk0_fn>;
34 pinctrl-3 = <>;
35
36 position = <0>; /* Rear:0. Front:1. Rear_sub:2. Secure:3. */
37 id = <0>; /* fimc_is_sensor id */
38 mclk_ch = <0>;
39 sensor_i2c_ch = <0>; /* SENSOR_CONTROL_I2C0 */
40
41 gpio_mclk = <&gpc2 0 0x1>;
42 gpio_reset = <&gpc1 0 0x1>; /* sensor reset */
43
44 power_seq_id = <1>; /* Rumba S6 Compatible */
45
46 status = "okay";
47
48 af {
49 product_name = <20>; /* ACTUATOR_NAME_LC898217 */
50 i2c_ch = <0>; /* SENSOR_CONTROL_I2C0 */
51 };
52
53 flash {
54 product_name = <11>; /* FLASH_GPIO */
55 };
56 };
57
58 fimc_is_sensor_2t7sx: fimc-is_sensor_2t7sx@48 {
59 compatible = "samsung,sensor-module-2t7sx";
60
61 pinctrl-names = "pin0", "pin1", "pin2", "release";
62 pinctrl-0 = <>;
63 pinctrl-1 = <&fimc_is_mclk2_out>;
64 pinctrl-2 = <&fimc_is_mclk2_fn>;
65 pinctrl-3 = <>;
66
67 position = <2>; /* Rear:0. Front:1. Rear_sub:2. Secure:3. */
68 id = <2>; /* fimc_is_sensor id */
69 mclk_ch = <2>;
70 sensor_i2c_ch = <1>; /* SENSOR_CONTROL_I2C1 */
71
72 gpio_mclk = <&gpc2 2 0x1>;
73 gpio_reset = <&gpc0 6 0x1>; /* sensor reset */
74
75 power_seq_id = <1>; /* Rumba S6 Compatible */
76
77 status = "okay";
78
79 af {
80 product_name = <20>; /* ACTUATOR_NAME_LC898217 */
81 i2c_ch = <1>; /* SENSOR_CONTROL_I2C1 */
82 };
83
84 flash {
85 product_name = <11>; /* FLASH_GPIO */
86 };
87 };
88
89 /* FRONT CAMERA */
90 fimc_is_sensor_6b2: fimc-is_sensor_6b2@7 {
91 compatible = "samsung,sensor-module-6b2";
92
93 pinctrl-names = "pin0", "pin1", "pin2", "release";
94 pinctrl-0 = <>;
95 pinctrl-1 = <&fimc_is_mclk1_out>;
96 pinctrl-2 = <&fimc_is_mclk1_fn>;
97 pinctrl-3 = <>;
98
99 position = <1>; /* Rear:0. Front:1. Rear_sub:2. Secure:3. */
100 id = <1>; /* fimc_is_sensor id */
101 mclk_ch = <1>;
102 sensor_i2c_ch = <2>; /* SENSOR_CONTROL_I2C4 */
103
104 gpio_mclk = <&gpc2 1 0x1>;
105 gpio_reset = <&gpc1 2 0x1>; /* sensor reset */
106 status = "okay";
107
108 af {
109 product_name = <100>; /* NOTHING */
110 i2c_ch = <2>; /* SENSOR_CONTROL_I2C2 */
111 };
112
113 flash {
114 product_name = <100>; /* NOTHING */
115 };
116
117 ois {
118 product_name = <100>; /* NOTHING */
119 };
120
121 internal_vc {
122 /* DUMMY */
123 };
124 };
125// }; /* end of __overlay__ */
126// }; /* end of fragment */
127}; /* end of root */
128
129/***** reference symbol node *****/
130
131&fimc_is {
132 vender {
133 rear_sensor_id = <47>; /* 46: RPB, 20: 2P8, 47: 2P7SQ */
134 front_sensor_id = <7>; /* 6B2 */
135 rear_second_sensor_id = <48>; /* 48: 2T7SX */
136 secure_sensor_id = <22>; /* 5E2 */
137 };
138
139 fimc_is_dvfs {
140 #define DVFS_INT_CAM_L0 690000
141 #define DVFS_INT_CAM_L1 680000
142 #define DVFS_INT_CAM_L2 670000
143 #define DVFS_INT_CAM_L3 660000
144 #define DVFS_INT_CAM_L4 650000
145
146 #define DVFS_INT_L0 667000
147 #define DVFS_INT_L1 533000
148 #define DVFS_INT_L2 400000
149 #define DVFS_INT_L3 200000
150 #define DVFS_INT_L4 100000
151
152 #define DVFS_CAM_L0 690000
153 #define DVFS_CAM_L1 680000
154 #define DVFS_CAM_L2 670000
155 #define DVFS_CAM_L3 660000
156 #define DVFS_CAM_L4 650000
157 #define DVFS_CAM_L5 640000
158
159 #define DVFS_MIF_L0 2093000
160 #define DVFS_MIF_L1 2002000
161 #define DVFS_MIF_L2 1794000
162 #define DVFS_MIF_L3 1539000
163 #define DVFS_MIF_L4 1352000
164 #define DVFS_MIF_L5 1014000
165 #define DVFS_MIF_L6 845000
166 #define DVFS_MIF_L7 676000
167 #define DVFS_MIF_L8 546000
168 #define DVFS_MIF_L9 419000
169
170 table0 {
171 desc = "dvfs table v0.0 for 16M/2M";
172
173 default_int_cam = <DVFS_INT_CAM_L0>;
174 default_cam = <DVFS_CAM_L0>;
175 default_mif = <DVFS_MIF_L0>;
176 default_int = <DVFS_INT_L0>;
177 default_hpg = <1>;
178
179 front_preview_int_cam = <DVFS_INT_CAM_L0>;
180 front_preview_cam = <DVFS_CAM_L0>;
181 front_preview_mif = <DVFS_MIF_L0>;
182 front_preview_int = <DVFS_INT_L0>;
183 front_preview_hpg = <1>;
184
185 front_preview_full_int_cam = <DVFS_INT_CAM_L0>;
186 front_preview_full_cam = <DVFS_CAM_L0>;
187 front_preview_full_mif = <DVFS_MIF_L0>;
188 front_preview_full_int = <DVFS_INT_L0>;
189 front_preview_full_hpg = <1>;
190
191 front_capture_int_cam = <DVFS_INT_CAM_L0>;
192 front_capture_cam = <DVFS_CAM_L0>;
193 front_capture_mif = <DVFS_MIF_L0>;
194 front_capture_int = <DVFS_INT_L0>;
195 front_capture_hpg = <1>;
196
197 front_video_int_cam = <DVFS_INT_CAM_L0>;
198 front_video_cam = <DVFS_CAM_L0>;
199 front_video_mif = <DVFS_MIF_L0>;
200 front_video_int = <DVFS_INT_L0>;
201 front_video_hpg = <1>;
202
203 front_video_capture_int_cam = <DVFS_INT_CAM_L0>;
204 front_video_capture_cam = <DVFS_CAM_L0>;
205 front_video_capture_mif = <DVFS_MIF_L0>;
206 front_video_capture_int = <DVFS_INT_L0>;
207 front_video_capture_hpg = <1>;
208
209 front_wide_selfie_int_cam = <DVFS_INT_CAM_L0>;
210 front_wide_selfie_cam = <DVFS_CAM_L0>;
211 front_wide_selfie_mif = <DVFS_MIF_L0>;
212 front_wide_selfie_int = <DVFS_INT_L0>;
213 front_wide_selfie_hpg = <1>;
214
215 front_vt1_int_cam = <DVFS_INT_CAM_L0>;
216 front_vt1_cam = <DVFS_CAM_L0>;
217 front_vt1_mif = <DVFS_MIF_L0>;
218 front_vt1_int = <DVFS_INT_L0>;
219 front_vt1_hpg = <1>;
220
221 front_vt2_int_cam = <DVFS_INT_CAM_L0>;
222 front_vt2_cam = <DVFS_CAM_L0>;
223 front_vt2_mif = <DVFS_MIF_L0>;
224 front_vt2_int = <DVFS_INT_L0>;
225 front_vt2_hpg = <1>;
226
227 front_vt4_int_cam = <DVFS_INT_CAM_L0>;
228 front_vt4_cam = <DVFS_CAM_L0>;
229 front_vt4_mif = <DVFS_MIF_L0>;
230 front_vt4_int = <DVFS_INT_L0>;
231 front_vt4_hpg = <1>;
232
233 rear_preview_fhd_int_cam = <DVFS_INT_CAM_L0>;
234 rear_preview_fhd_cam = <DVFS_CAM_L0>;
235 rear_preview_fhd_mif = <DVFS_MIF_L0>;
236 rear_preview_fhd_int = <DVFS_INT_L0>;
237 rear_preview_fhd_hpg = <1>;
238
239 rear_preview_hd_int_cam = <DVFS_INT_CAM_L0>;
240 rear_preview_hd_cam = <DVFS_CAM_L0>;
241 rear_preview_hd_mif = <DVFS_MIF_L0>;
242 rear_preview_hd_int = <DVFS_INT_L0>;
243 rear_preview_hd_hpg = <1>;
244
245 rear_preview_uhd_int_cam = <DVFS_INT_CAM_L0>;
246 rear_preview_uhd_cam = <DVFS_CAM_L0>;
247 rear_preview_uhd_mif = <DVFS_MIF_L0>;
248 rear_preview_uhd_int = <DVFS_INT_L0>;
249 rear_preview_uhd_hpg = <1>;
250
251 rear_preview_full_int_cam = <DVFS_INT_CAM_L0>;
252 rear_preview_full_cam = <DVFS_CAM_L0>;
253 rear_preview_full_mif = <DVFS_MIF_L0>;
254 rear_preview_full_int = <DVFS_INT_L0>;
255 rear_preview_full_hpg = <1>;
256
257 rear_capture_int_cam = <DVFS_INT_CAM_L0>;
258 rear_capture_cam = <DVFS_CAM_L0>;
259 rear_capture_mif = <DVFS_MIF_L0>;
260 rear_capture_int = <DVFS_INT_L0>;
261 rear_capture_hpg = <1>;
262
263 rear_video_fhd_int_cam = <DVFS_INT_CAM_L0>;
264 rear_video_fhd_cam = <DVFS_CAM_L0>;
265 rear_video_fhd_mif = <DVFS_MIF_L0>;
266 rear_video_fhd_int = <DVFS_INT_L0>;
267 rear_video_fhd_hpg = <1>;
268
269 rear_video_hd_int_cam = <DVFS_INT_CAM_L0>;
270 rear_video_hd_cam = <DVFS_CAM_L0>;
271 rear_video_hd_mif = <DVFS_MIF_L0>;
272 rear_video_hd_int = <DVFS_INT_L0>;
273 rear_video_hd_hpg = <1>;
274
275 rear_video_uhd_int_cam = <DVFS_INT_CAM_L0>;
276 rear_video_uhd_cam = <DVFS_CAM_L0>;
277 rear_video_uhd_mif = <DVFS_MIF_L0>;
278 rear_video_uhd_int = <DVFS_INT_L0>;
279 rear_video_uhd_hpg = <1>;
280
281 rear_video_fhd_capture_int_cam = <DVFS_INT_CAM_L0>;
282 rear_video_fhd_capture_cam = <DVFS_CAM_L0>;
283 rear_video_fhd_capture_mif = <DVFS_MIF_L0>;
284 rear_video_fhd_capture_int = <DVFS_INT_L0>;
285 rear_video_fhd_capture_hpg = <1>;
286
287 rear_video_hd_capture_int_cam = <DVFS_INT_CAM_L0>;
288 rear_video_hd_capture_cam = <DVFS_CAM_L0>;
289 rear_video_hd_capture_mif = <DVFS_MIF_L0>;
290 rear_video_hd_capture_int = <DVFS_INT_L0>;
291 rear_video_hd_capture_hpg = <1>;
292
293 rear_video_uhd_capture_int_cam = <DVFS_INT_CAM_L0>;
294 rear_video_uhd_capture_cam = <DVFS_CAM_L0>;
295 rear_video_uhd_capture_mif = <DVFS_MIF_L0>;
296 rear_video_uhd_capture_int = <DVFS_INT_L0>;
297 rear_video_uhd_capture_hpg = <1>;
298
299 secure_front_int_cam = <DVFS_INT_CAM_L0>;
300 secure_front_cam = <DVFS_CAM_L0>;
301 secure_front_mif = <DVFS_MIF_L0>;
302 secure_front_int = <DVFS_INT_L0>;
303 secure_front_hpg = <1>;
304
305 pip_preview_int_cam = <DVFS_INT_CAM_L0>;
306 pip_preview_cam = <DVFS_CAM_L0>;
307 pip_preview_mif = <DVFS_MIF_L0>;
308 pip_preview_int = <DVFS_INT_L0>;
309 pip_preview_hpg = <1>;
310
311 pip_capture_int_cam = <DVFS_INT_CAM_L0>;
312 pip_capture_cam = <DVFS_CAM_L0>;
313 pip_capture_mif = <DVFS_MIF_L0>;
314 pip_capture_int = <DVFS_INT_L0>;
315 pip_capture_hpg = <1>;
316
317 pip_video_int_cam = <DVFS_INT_CAM_L0>;
318 pip_video_cam = <DVFS_CAM_L0>;
319 pip_video_mif = <DVFS_MIF_L0>;
320 pip_video_int = <DVFS_INT_L0>;
321 pip_video_hpg = <1>;
322
323 pip_video_capture_int_cam = <DVFS_INT_CAM_L0>;
324 pip_video_capture_cam = <DVFS_CAM_L0>;
325 pip_video_capture_mif = <DVFS_MIF_L0>;
326 pip_video_capture_int = <DVFS_INT_L0>;
327 pip_video_capture_hpg = <1>;
328
329 preview_high_speed_fps_int_cam = <DVFS_INT_CAM_L1>;
330 preview_high_speed_fps_cam = <DVFS_CAM_L3>;
331 preview_high_speed_fps_mif = <DVFS_MIF_L5>;
332 preview_high_speed_fps_int = <DVFS_INT_L0>;
333 preview_high_speed_fps_hpg = <1>;
334
335 video_high_speed_60fps_int_cam = <DVFS_INT_CAM_L0>;
336 video_high_speed_60fps_cam = <DVFS_CAM_L0>;
337 video_high_speed_60fps_mif = <DVFS_MIF_L0>;
338 video_high_speed_60fps_int = <DVFS_INT_L0>;
339 video_high_speed_60fps_hpg = <1>;
340
341 video_high_speed_480fps_int_cam = <DVFS_INT_CAM_L0>;
342 video_high_speed_480fps_cam = <DVFS_CAM_L0>;
343 video_high_speed_480fps_mif = <DVFS_MIF_L0>;
344 video_high_speed_480fps_int = <DVFS_INT_L0>;
345 video_high_speed_480fps_hpg = <1>;
346
347 video_high_speed_60fps_capture_int_cam = <DVFS_INT_CAM_L0>;
348 video_high_speed_60fps_capture_cam = <DVFS_CAM_L0>;
349 video_high_speed_60fps_capture_mif = <DVFS_MIF_L0>;
350 video_high_speed_60fps_capture_int = <DVFS_INT_L0>;
351 video_high_speed_60fps_capture_hpg = <1>;
352
353 ext_front_int_cam = <DVFS_INT_CAM_L0>;
354 ext_front_cam = <DVFS_CAM_L0>;
355 ext_front_mif = <DVFS_MIF_L0>;
356 ext_front_int = <DVFS_INT_L0>;
357 ext_front_hpg = <1>;
358
359 ext_secure_int_cam = <DVFS_INT_CAM_L3>;
360 ext_secure_cam = <DVFS_CAM_L4>;
361 ext_secure_mif = <DVFS_MIF_L7>;
362 ext_secure_int = <DVFS_INT_L4>;
363 ext_secure_hpg = <1>;
364
365 max_int_cam = <DVFS_INT_CAM_L0>;
366 max_cam = <DVFS_CAM_L0>;
367 max_mif = <DVFS_MIF_L0>;
368 max_int = <DVFS_INT_L0>;
369 max_hpg = <1>;
370 };
371 };
372};
373
374/* I2C_CAM0 */ /* SENSOR_CONTROL_I2C0 */
375&hsi2c_12 {
376 gpios = <&gpc0 0 0 &gpc0 1 0>;
377 status = "okay";
378 clock-frequency = <400000>;
379 samsung,reset-before-trans;
380 samsung,polling-mode;
381
382 fimc-is-2p7sq@2d {
383 compatible = "samsung,exynos5-fimc-is-cis-2p7sq";
384 reg = <0x2d>; /* 1 bit right shift */
385 id = <0>; /* matching fimc_is_sensor id */
386 setfile = "setA";
387 };
388
389 fimc-is-actuator@72 {
390 compatible = "samsung,exynos5-fimc-is-actuator-lc898217";
391 reg = <0x72>; /* 1 bit right shift */
392 id = <0>; /* matching fimc_is_sensor id */
393 place = <0>;
394 };
395};
396
397/* I2C_CAM1 */ /* SENSOR_CONTROL_I2C1 */
398&hsi2c_13 {
399 gpios = <&gpc0 2 0 &gpc0 3 0>;
400 status = "okay";
401 clock-frequency = <400000>;
402 samsung,reset-before-trans;
403 samsung,polling-mode;
404
405 fimc-is-2t7sx@10 {
406 compatible = "samsung,exynos5-fimc-is-cis-2t7sx";
407 reg = <0x10>; /* 1 bit right shift */
408 id = <2>; /* matching fimc_is_sensor id */
409 setfile = "setA";
410 };
411
412 fimc-is-actuator@74 {
413 compatible = "samsung,exynos5-fimc-is-actuator-lc898217";
414 reg = <0x74>; /* 1 bit right shift */
415 id = <2>; /* matching fimc_is_sensor id */
416 place = <1>; /* HACK */
417 };
418};
419
420/* I2C_CAM2 */ /* SENSOR_CONTROL_I2C2 */
421&hsi2c_14 {
422 gpios = <&gpc0 4 0 &gpc0 5 0>;
423 status = "okay";
424 clock-frequency = <400000>;
425 samsung,reset-before-trans;
426
427 fimc-is-6b2@35 {
428 compatible = "samsung,exynos5-fimc-is-cis-6b2";
429 reg = <0x35>; /* 1 bit right shift */
430 id = <1>; /* matching fimc_is_sensor id */
431 setfile = "setA";
432 };
433};
434
435/* I2C_CAM3 */ /* SENSOR_CONTROL_I2C3 */
436&hsi2c_15 {
437 gpios = <&gpc0 6 0 &gpc0 7 0>;
438 status = "okay";
439 clock-frequency = <400000>;
440 samsung,reset-before-trans;
441
442 fimc-is-actuator@72 {
443 compatible = "samsung,exynos5-fimc-is-actuator-dw9780";
444 reg = <0x72>; /* 1 bit right shift */
445 id = <0>; /* matching fimc_is_sensor id */
446 place = <1>; /* HACK */
447 };
448};
449
450&fimc_is_sensor0 {
451 scenario = <SENSOR_SCENARIO_NORMAL>; /* Normal, Vision, OIS etc */
452 id = <0>;
453 csi_ch = <0>;
454 dma_ch = <0 0 0 0 0 1 1 1>;
455 vc_ch = <0 1 2 3 0 1 2 3>;
456 flite_ch = <FLITE_ID_NOTHING>;
457 is_bns = <0>;
458 /* use_ssvc1_internal; */
459 /* use_ssvc2_internal; */
460 status = "okay";
461};
462
463&fimc_is_sensor1 {
464 scenario = <SENSOR_SCENARIO_NORMAL>; /* Normal, Vision, OIS etc */
465 id = <1>;
466 csi_ch = <1>;
467 dma_ch = <1 1 1 1 1 1 1 1>;
468 vc_ch = <0 1 2 3 0 1 2 3>;
469 flite_ch = <FLITE_ID_NOTHING>;
470 is_bns = <0>;
471 status = "okay";
472};
473
474&fimc_is_sensor2 {
475 scenario = <SENSOR_SCENARIO_NORMAL>; /* Normal, Vision, OIS etc */
476 id = <2>;
477 csi_ch = <2>;
478 dma_ch = <2 2 2 2>;
479 vc_ch = <0 1 2 3>;
480 flite_ch = <FLITE_ID_NOTHING>;
481 is_bns = <0>;
482 status = "okay";
483};
484
485&fimc_is_sensor3 {
486 scenario = <SENSOR_SCENARIO_SECURE>; /* Normal, Vision, OIS etc */
487 id = <3>;
488 csi_ch = <3>;
489 dma_ch = <3 3 3 3>;
490 vc_ch = <0 1 2 3>;
491 flite_ch = <FLITE_ID_NOTHING>;
492 is_bns = <0>;
493 status = "okay";
494};