summaryrefslogtreecommitdiff
path: root/bindings/msm-cam-cci.txt
blob: 59651a3541570c9b076f43ad31db629e8c504494 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
* Qualcomm Technologies, Inc. MSM CCI

CCI (Camera Control Interface) is module that is use for camera sensor module
I2C communication.

=======================
Required Node Structure
=======================
The camera CCI node must be described in two levels of device nodes. The
first level describe the overall CCI node structure. Second level nodes
describe camera sensor submodule nodes which is using CCI for
i2c communication.

======================================
First Level Node - CCI device
======================================

- compatible
  Usage: required
  Value type: <string>
  Definition: Should be "qcom,cci".

- cell-index: cci hardware core index
  Usage: required
  Value type: <u32>
  Definition: Should specify the Hardware index id.

- reg
  Usage: required
  Value type: <u32>
  Definition: offset and length of the register set
	for the device for the cci operating in
	compatible mode.

- reg-names
  Usage: required
  Value type: <string>
  Definition: Should specify relevant names to each
	reg property defined.

- interrupts
  Usage: required
  Value type: <u32>
  Definition: Interrupt associated with CCI HW.

- interrupt-names
  Usage: required
  Value type: <string>
  Definition: Name of the interrupt.

- gpios
  Usage: required
  Value type: <phandle>
  Definition: should specify the gpios to be used for the CCI.

- gpio-req-tbl-num
  Usage: required
  Value type: <u32>
  Definition: should specify the gpio table index.

- gpio-req-tbl-flags
  Usage: required
  Value type: <u32>
  Definition: should specify the gpio functions.

- gpio-req-tbl-label
  Usage: required
  Value type: <string>
  Definition: should specify the gpio labels in
	gpio-req-tbl-num property (in the same order)

- clock-names
  Usage: required
  Value type: <string>
  Definition: List of clock names required for CCI HW.

- clock-rates
  Usage: required
  Value type: <u32>
  Definition: List of clock rates in Hz for CCI HW.

- clock-cntl-level
  Usage: required
  Value type: <string>
  Definition: All different clock level node can support.

- clocks
  Usage: required
  Value type: <phandle>
  Definition: all clock phandle and source clocks.

- src-clock-name
  Usage: required
  Value type: <string>
  Definition: name for the source clock.

- regulator-names
  Usage: required
  Value type: <string>
  Definition: name of the voltage regulators required for the device.

- gdscr-supply
  Usage: required
  Value type: <phandle>
  Definition: should contain gdsr regulator used for cci clocks.

- mmagic-supply
  Usage: optional
  Value type: <phandle>
  Definition: should contain mmagic regulator used for mmagic clocks.

=========================
CCI clock settings
=========================
- I2c speed settings (*)
  Usage: required
  Definition: List of i2c rates for CCI HW.
  - i2c_freq_100Khz
    Definition: qcom,i2c_standard_mode - node should contain clock settings for
		100Khz
  - i2c_freq_400Khz
    Definition: qcom,i2c_fast_mode - node should contain clock settings for
		400Khz
  - i2c_freq_custom
    Definition: qcom,i2c_custom_mode - node can contain clock settings for
		frequencies other than 100Khz and 400Khz which is specific to usecase.
		Currently it has settings for 375Khz.
  - i2c_freq_1Mhz
    Definition: qcom,i2c_fast_plus_mode - node should contain clock
		settings for 1Mhz
* if speed settings is not defined the low level driver can use "i2c_freq_custom"
like default

  - hw-thigh
    Definition: should contain high period of the SCL clock in terms of CCI clock cycle
  - hw-tlow
    Definition: should contain high period of the SCL clock in terms of CCI clock cycle
  - hw-tsu-sto
    Definition: should contain setup time for STOP condition
  - hw-tsu-sta
    Definition: should contain setup time for Repeated START condition
  - hw-thd-dat
    Definition: should contain hold time for the data
  - hw-thd-sta
    Definition: should contain hold time for START condition
  - hw-tbuf
    Definition: should contain free time between a STOP and a START condition
  - hw-scl-stretch-en
    Definition: should contain enable or disable clock stretching
  - hw-trdhld
    Definition: should contain internal hold time for SDA
  - hw-tsp
    Definition: should contain filtering of glitches

Example:

	qcom,cci@0xfda0c000 {
		cell-index = <0>;
		compatible = "qcom,cci";
		reg = <0xfda0c000 0x300>;
		reg-names = "cci";
		interrupts = <0 50 0>;
		interrupt-names = "cci";
		clock-names = "camnoc_axi_clk", "soc_ahb_clk",
		"slow_ahb_src_clk", "cpas_ahb_clk",
		"cci_clk", "cci_clk_src";
		clock-rates = <0 0 80000000 0 0 37500000>;
		clock-cntl-level = "turbo";
		gpios = <&tlmm 17 0>,
			   <&tlmm 18 0>,
			   <&tlmm 19 0>,
			   <&tlmm 20 0>;
		gpio-tbl-num = <0 1 2 3>;
		gpio-tbl-flags = <1 1 1 1>;
		gpio-tbl-label = "CCI_I2C_DATA0",
				"CCI_I2C_CLK0",
				"CCI_I2C_DATA1",
				"CCI_I2C_CLK1";
		i2c_freq_100Khz: qcom,i2c_standard_mode {
			 hw-thigh = <78>;
			 hw-tlow = <114>;
			 hw-tsu-sto = <28>;
			 hw-tsu-sta = <28>;
			 hw-thd-dat = <10>;
			 hw-thd-sta = <77>;
			 hw-tbuf = <118>;
			 hw-scl-stretch-en = <0>;
			 hw-trdhld = <6>;
			 hw-tsp = <1>;
			 status = "ok";
		};
		i2c_freq_400Khz: qcom,i2c_fast_mode {
			 hw-thigh = <20>;
			 hw-tlow = <28>;
			 hw-tsu-sto = <21>;
			 hw-tsu-sta = <21>;
			 hw-thd-dat = <13>;
			 hw-thd-sta = <18>;
			 hw-tbuf = <25>;
			 hw-scl-stretch-en = <0>;
			 hw-trdhld = <6>;
			 hw-tsp = <3>;
			 status = "ok";
		};
		i2c_freq_custom: qcom,i2c_custom_mode {
			 hw-thigh = <15>;
			 hw-tlow = <28>;
			 hw-tsu-sto = <21>;
			 hw-tsu-sta = <21>;
			 hw-thd-dat = <13>;
			 hw-thd-sta = <18>;
			 hw-tbuf = <25>;
			 hw-scl-stretch-en = <1>;
			 hw-trdhld = <6>;
			 hw-tsp = <3>;
			 status = "ok";
		};
		i2c_freq_1Mhz: qcom,i2c_fast_plus_mode {
			 hw-thigh = <16>;
			 hw-tlow = <22>;
			 hw-tsu-sto = <17>;
			 hw-tsu-sta = <18>;
			 hw-thd-dat = <16>;
			 hw-thd-sta = <15>;
			 hw-tbuf = <19>;
			 hw-scl-stretch-en = <1>;
			 hw-trdhld = <3>;
			 hw-tsp = <3>;
			 cci-clk-src = <37500000>;
			 status = "ok";
		};
	};

=======================================
Second Level Node - CAM SENSOR MODULES
=======================================

=======================================
CAM SENSOR RESOURCE MANAGER
=======================================
Camera Sensor Resource manager node contains properties of shared camera
sensor resource.

- compatible
  Usage: required
  Value type: <string>
  Definition: Should be "qcom,cam-res-mgr".

- shared-gpios
  Usage: optional
  Value type: <u32>
  Definition: should contain the gpios which are used by two or more
	cameras, and these cameras may be opened together.

- pinctrl-names
  Usage: optional
  Value type: <string>
  Definition: List of names to assign the shared pin state defined in pinctrl device node

- pinctrl-<0..n>
  Usage: optional
  Value type: <phandle>
  Definition: Lists phandles each pointing to the pin configuration node within a pin
	controller. These pin configurations are installed in the pinctrl device node.


=============================
CAMERA IMAGE SENSOR MODULE
=============================
Image sensor node contains properties of camera image sensor

- compatible
  Usage: required
  Value type: <string>
  Definition: Should be "qcom,cam-sensor".

- cell-index: cci hardware core index
  Usage: required
  Value type: <u32>
  Definition: Should specify the Hardware index id.

- reg
  Usage: required
  Value type: <u32>
  Definition: offset and length of the register set
	for the device for the cci operating in
	compatible mode.

- cci-device
  Usage: required
  Value type: <u32>
  Definition: should contain i2c device id to be used for this camera
	sensor

- cci-master
  Usage: required
  Value type: <u32>
  Definition: should contain i2c master id to be used for this camera
	sensor
	- 0 -> MASTER 0
	- 1 -> MASTER 1

- csiphy-sd-index
  Usage: required
  Value type: <u32>
  Definition: should contain csiphy instance that will used to
	receive sensor data (0, 1, 2, 3).

- cam_vdig-supply
  Usage: required
  Value type: <phandle>
  Definition: should contain regulator from which digital voltage is
	supplied

- cam_vana-supply
  Usage: required
  Value type: <phandle>
  Definition: should contain regulator from which analog voltage is
	supplied

- cam_vio-supply
  Usage: required
  Value type: <phandle>
  Definition: should contain regulator from which IO voltage is supplied

- cam_bob-supply
  Usage: optional
  Value type: <phandle>
  Definition: should contain regulator from which BoB voltage is supplied

- regulator-names
  Usage: required
  Value type: <string>
  Definition: should contain names of all regulators needed by this
	sensor

- rgltr-cntrl-support
  Usage: required
  Value type: <boolean>
  Definition: This property is required if the sw control regulator parameters
	e.g. rgltr-min-voltage

- rgltr-min-voltage
  Usage: required
  Value type: <u32>
  Definition: should contain minimum voltage level for regulators mentioned
	in regulator-names property (in the same order)

- rgltr-max-voltage
  Usage: required
  Value type: <u32>
  Definition: should contain maximum voltage level for regulators mentioned
	in regulator-names property (in the same order)

- rgltr-load-current
  Usage: required
  Value type: <u32>
  Definition: should contain optimum voltage level for regulators mentioned
	in regulator-names property (in the same order)

- sensor-position-roll
  Usage: required
  Value type: <u32>
  Definition: should contain sensor rotational angle with respect to axis of
	reference. i.e. 0, 90, 180, 360

- sensor-position-pitch
  Usage: required
  Value type: <u32>
  Definition: should contain sensor rotational angle with respect to axis of
	reference. i.e. 0, 90, 180, 360

- sensor-position-yaw
  Usage: required
  Value type: <u32>
  Definition: should contain sensor rotational angle  with respect to axis of
	reference. i.e. 0, 90, 180, 360

- qcom,secure
  Usage: optional
  Value type: <u32>
  Definition: should be enabled to operate the camera in secure mode

- gpio-no-mux
  Usage: optional
  Value type: <u32>
  Definition: should contain field to indicate whether gpio mux table is
	available. i.e. 1 if gpio mux is not available, 0 otherwise

- cam_vaf-supply
  Usage: optional
  Value type: <u32>
  Definition: should contain regulator from which AF voltage is supplied

- pwm-switch
  Usage: optional
  Value type: <boolean>
  Definition: This property is required for regulator to switch into PWM mode.

- gpios
  Usage: required
  Value type: <phandle>
  Definition: should contain phandle to gpio controller node and array of
	#gpio-cells specifying specific gpio (controller specific)

- gpio-reset
  Usage: required
  Value type: <u32>
  Definition: should contain index to gpio used by sensors reset_n

- gpio-standby
  Usage: optional
  Value type: <u32>
  Definition: should contain index to gpio used by sensors standby_n

- gpio-vio
  Usage: optional
  Value type: <u32>
  Definition: should contain index to gpio used by sensors io vreg enable

- gpio-vana
  Usage: optional
  Value type: <u32>
  Definition: should contain index to gpio used by sensors analog vreg enable

- gpio-vdig
  Usage: optional
  Value type: <u32>
  Definition: should contain index to gpio used by sensors digital vreg enable

- gpio-vaf
  Usage: optional
  Value type: <u32>
  Definition: should contain index to gpio used by sensors af vreg enable

- gpio-af-pwdm
  Usage: optional
  Value type: <u32>
  Definition: should contain index to gpio used by sensors af pwdm_n

- gpio-req-tbl-num
  Usage: optional
  Value type: <u32>
  Definition: should contain index to gpios specific to this sensor

- gpio-req-tbl-flags
  Usage: optional
  Value type: <u32>
  Definition: should contain direction of gpios present in
	gpio-req-tbl-num property (in the same order)

- gpio-req-tbl-label
  Usage: optional
  Value type: <u32>
  Definition: should contain name of gpios present in
	gpio-req-tbl-num property (in the same order)

- gpio-set-tbl-num
  Usage: optional
  Value type: <u32>
  Definition: should contain index of gpios that need to be
	configured by msm

- gpio-set-tbl-flags
  Usage: optional
  Value type: <u32>
  Definition: should contain value to be configured for the gpios
	present in gpio-set-tbl-num property (in the same order)

- gpio-set-tbl-delay
  Usage: optional
  Value type: <u32>
  Definition: should contain amount of delay after configuring
	gpios as specified in gpio_set_tbl_flags property (in the same order)

- actuator-src
  Usage: optional
  Value type: <phandle>
  Definition: if auto focus is supported by this sensor, this
	property should contain phandle of respective actuator node

- led-flash-src
  Usage: optional
  Value type: <phandle>
  Definition: if LED flash is supported by this sensor, this
	property should contain phandle of respective LED flash node

- qcom,vdd-cx-supply
  Usage: optional
  Value type: <phandle>
  Definition: should contain regulator from which cx voltage is supplied

- qcom,vdd-cx-name
  Usage: optional
  Value type: <string>
  Definition: should contain names of cx regulator

- eeprom-src
  Usage: optional
  Value type: <phandle>
  Definition: if eeprom memory is supported by this sensor, this
	property should contain phandle of respective eeprom nodes

- ois-src
  Usage: optional
  Value type: <phandle>
  Definition: if optical image stabilization is supported by this sensor,
	this property should contain phandle of respective ois node

- ir-led-src
  Usage: optional
  Value type: <phandle>
  Definition: if ir led is supported by this sensor, this property
	should contain phandle of respective ir-led node

- qcom,ir-cut-src
  Usage: optional
  Value type: <phandle>
  Definition: if ir cut is supported by this sensor, this property
	should contain phandle of respective ir-cut node

- qcom,special-support-sensors
  Usage: required
  Value type: <string>
  Definition: if only some special sensors are supported
	on this board, add sensor name in this property.

- use-shared-clk
  Usage: optional
  Value type: <boolean>
  Definition: It is booloean property. This property is required
	if the clk is shared clk between different sensor and ois, if this
	device need to be opened together.

- clock-rates
  Usage: required
  Value type: <u32>
  Definition: clock rate in Hz.

- clock-cntl-level
  Usage: required
  Value type: <string>
  Definition: All different clock level node can support.

- clock-cntl-support
  Usage: optional
  Value type: <boolean>
  Definition: Says whether clock control support is present or not

- clocks
  Usage: required
  Value type: <phandle>
  Definition: all clock phandle and source clocks.

- clock-control
  Usage: optional
  Value type: <string>
  Definition: The valid fields are "NO_SET_RATE", "INIT_RATE" and
	"SET_RATE". "NO_SET_RATE" the corresponding clock is enabled without setting
	the rate assuming some other driver has already set it to appropriate rate.
	"INIT_RATE" clock rate is not queried assuming some other driver has set
	the clock rate and ispif will set the the clock to this rate.
	"SET_RATE" clock is enabled and the rate is set to the value specified
	in the property clock-rates.

=============================
ACTUATOR MODULE
=============================

- compatible
  Usage: required
  Value type: <string>
  Definition: Should be "qcom,actuator".

- cell-index: cci hardware core index
  Usage: required
  Value type: <u32>
  Definition: Should specify the Hardware index id.

- reg
  Usage: required
  Value type: <u32>
  Definition: offset and length of the register set
	for the device for the cci operating in
	compatible mode.

- cci-device
  Usage: required
  Value type: <u32>
  Definition: should contain i2c device id to be used for this camera
	sensor

- cci-master
  Usage: required
  Value type: <u32>
  Definition: should contain i2c master id to be used for this camera
	sensor
	- 0 -> MASTER 0
	- 1 -> MASTER 1

- cam_vaf-supply
  Usage: required
  Value type: <phandle>
  Definition: should contain regulator from which AF voltage is supplied

- regulator-names
  Usage: required
  Value type: <string>
  Definition: should contain names of all regulators needed by this
	actuator. i.e. "cam_vaf"

- rgltr-cntrl-support
  Usage: optional
  Value type: <boolean>
  Definition: It is booloean property. This property is required
	if the code and regulator control parameters e.g. rgltr-min-voltage

- rgltr-min-voltage
  Usage: optional
  Value type: <u32>
  Definition: should contain minimum voltage level in mcrovolts
	for regulators mentioned in regulator-names property (in the same order)

- rgltr-max-voltage
  Usage: optional
  Value type: <u32>
  Definition: should contain maximum voltage level in mcrovolts
	for regulators mentioned in regulator-names property (in the same order)

- rgltr-load-current
  Usage: optional
  Value type: <u32>
  Definition: should contain the maximum current in microamps
	required from the regulators mentioned in the regulator-names property
	(in the same order).

=============================
OIS MODULE
=============================

- compatible
  Usage: required
  Value type: <string>
  Definition: Should be "qcom,ois".

- cell-index: cci hardware core index
  Usage: required
  Value type: <u32>
  Definition: Should specify the Hardware index id.

- reg
  Usage: required
  Value type: <u32>
  Definition: offset and length of the register set
	for the device for the cci operating in
	compatible mode.

- cci-device
  Usage: required
  Value type: <u32>
  Definition: should contain i2c device id to be used for this camera
	sensor

- cci-master
  Usage: required
  Value type: <u32>
  Definition: should contain i2c master id to be used for this camera
	sensor
	- 0 -> MASTER 0
	- 1 -> MASTER 1

- cam_vaf-supply
  Usage: required
  Value type: <phandle>
  Definition: should contain regulator from which AF voltage is supplied

- regulator-names
  Usage: required
  Value type: <string>
  Definition: should contain names of all regulators needed by this
	actuator. i.e. "cam_vaf"

- rgltr-cntrl-support
  Usage: optional
  Value type: <boolean>
  Definition: It is booloean property. This property is required
	if the code and regulator control parameters e.g. rgltr-min-voltage

- rgltr-min-voltage
  Usage: optional
  Value type: <u32>
  Definition: should contain minimum voltage level in mcrovolts
	for regulators mentioned in regulator-names property (in the same order)

- rgltr-max-voltage
  Usage: optional
  Value type: <u32>
  Definition: should contain maximum voltage level in mcrovolts
	for regulators mentioned in regulator-names property (in the same order)

- rgltr-load-current
  Usage: optional
  Value type: <u32>
  Definition: should contain the maximum current in microamps
	required from the regulators mentioned in the regulator-names property
	(in the same order).

- use-shared-clk
  Usage: optional
  Value type: <boolean>
  Definition: This property is required if the clk is shared clk between different
	sensor and ois, if this device need to be opened together.

Example:
&soc {
    led_flash0: qcom,camera-flash@0 {
         cell-index = <0>;
         compatible = "qcom,camera-flash";
         flash-source = <&pmi8994_flash0 &pmi8994_flash1>;
         torch-source = <&pmi8998_torch0 &pmi8998_torch1>;
         switch-source = <&pmi8998_switch>;
         status = "ok";
    };
};

&cam_cci0 {
    actuator0: qcom,actuator@0 {
         cell-index = <0>;
         reg = <0x0>;
         compatible = "qcom,actuator";
         cci-device = <0>;
         cci-master = <0>;
         cam_vaf-supply = <&pmi8998_bob>;
         regulator-names = "cam_vaf";
         rgltr-cntrl-support;
         rgltr-min-voltage = <2800000>;
         rgltr-max-voltage = <2800000>;
         rgltr-load-current = <100000>;
    };

	ois0: qcom,ois@0 {
         cell-index = <0>;
         reg = <0x0>;
         compatible = "qcom,ois";
         cci-device = <0>;
         cci-master = <0>;
         cam_vaf-supply = <&pmi8998_bob>;
         regulator-names = "cam_vaf";
         rgltr-cntrl-support;
         rgltr-min-voltage = <2800000>;
         rgltr-max-voltage = <2800000>;
         rgltr-load-current = <100000>;
    };

    qcom,cam-res-mgr {
         compatible = "qcom,cam-res-mgr";
         status = "ok";
         shared-gpios = <18 19>;
         pinctrl-names = "cam_res_mgr_default", "cam_res_mgr_suspend";
         pinctrl-0 = <&cam_shared_clk_active &cam_res_mgr_active>;
         pinctrl-1 = <&cam_shared_clk_suspend &cam_res_mgr_suspend>;
    };

    qcom,cam-sensor@0 {
         cell-index = <0>;
         compatible = "qcom,camera";
         reg = <0x0>;
         csiphy-sd-index = <0>;
         sensor-position-roll = <90>;
         sensor-position-pitch = <0>;
         sensor-position-yaw = <180>;
         secure = <1>;
         led-flash-src = <&led_flash0>;
         actuator-src = <&actuator0>;
         ois-src = <&ois0>;
         eeprom-src = <&eeprom0>;
         cam_vdig-supply = <&pm8009_l2>;
         cam_vio-supply = <&pm8009l_l1>;
         cam_vana-supply = <&pm8009l_l5>;
         cam_bob-supply = <&pm8150l_bob>;
         cam_clk-supply = <&tital_top_gdsc>;
         regulator-names = "cam_vio", "cam_vana", "cam_vdig",
                "cam_clk", "cam_bob";
         rgltr-cntrl-support;
         pwm-switch;
         rgltr-min-voltage = <0 2800000 1200000 0 3008000>;
         rgltr-max-voltage = <0 2800000 1200000 0 4000000>;
         rgltr-load-current = <0 80000 1200000 0 2000000>;
         gpio-no-mux = <0>;
         pinctrl-names = "cam_default", "cam_suspend";
         pinctrl-0 = <&cam_sensor_mclk0_active
                   &cam_sensor_rear_active>;
         pinctrl-1 = <&cam_sensor_mclk0_suspend
                   &cam_sensor_rear_suspend>;
         gpios = <&tlmm 13 0>,
              <&tlmm 80 0>,
              <&tlmm 79 0>;
         gpio-reset = <1>;
         gpio-standby = <2>;
         gpio-req-tbl-num = <0 1 2>;
         gpio-req-tbl-flags = <1 0 0>;
         gpio-req-tbl-label = "CAMIF_MCLK0",
                         "CAM_RESET0",
                         "CAM_VANA";
         sensor-position = <0>;
         sensor-mode = <0>;
         cci-device = <0>;
         cci-master = <0>;
         status = "ok";
         use-shared-clk;
         clocks = <&clock_mmss clk_mclk0_clk_src>,
               <&clock_mmss clk_camss_mclk0_clk>;
         clock-names = "cam_src_clk", "cam_clk";
         clock-cntl-leveli = "turbo";
         clock-rates = <24000000>;
    };
};