blob: 9ead234aa1e2d0324579d8c3580c3da45099d91d [file] [log] [blame]
Lakshmi Narayana Kalavalac0dac062016-12-01 17:20:09 -08001/*
2 * Copyright (c) 2017, The Linux Foundation. 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 version 2 and
6 * only version 2 as published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 */
13
14&soc {
15 qcom,cam-req-mgr {
16 compatible = "qcom,cam-req-mgr";
17 status = "ok";
18 };
Jigarkumar Zala861231152017-02-28 14:05:11 -080019
20 qcom,csiphy@ac65000 {
21 cell-index = <0>;
22 compatible = "qcom,csiphy-v1.0", "qcom,csiphy";
23 reg = <0x0ac65000 0x1000>;
24 reg-names = "csiphy";
25 interrupts = <0 477 0>;
26 interrupt-names = "csiphy";
27 gdscr-supply = <&titan_top_gdsc>;
28 qcom,cam-vreg-name = "gdscr";
29 qcom,csi-vdd-voltage = <1200000>;
30 qcom,mipi-csi-vdd-supply = <&pm8998_l26>;
31 clocks = <&clock_camcc CAM_CC_CAMNOC_AXI_CLK>,
32 <&clock_camcc CAM_CC_SOC_AHB_CLK>,
33 <&clock_camcc CAM_CC_SLOW_AHB_CLK_SRC>,
34 <&clock_camcc CAM_CC_CPAS_AHB_CLK>,
35 <&clock_camcc CAM_CC_CPHY_RX_CLK_SRC>,
36 <&clock_camcc CAM_CC_CSIPHY0_CLK>,
37 <&clock_camcc CAM_CC_CSI0PHYTIMER_CLK_SRC>,
38 <&clock_camcc CAM_CC_CSI0PHYTIMER_CLK>,
39 <&clock_camcc CAM_CC_IFE_0_CSID_CLK>,
40 <&clock_camcc CAM_CC_IFE_0_CSID_CLK_SRC>;
41 clock-names = "camnoc_axi_clk",
42 "soc_ahb_clk",
43 "slow_ahb_src_clk",
44 "cpas_ahb_clk",
45 "cphy_rx_clk_src",
46 "csiphy0_clk",
47 "csi0phytimer_clk_src",
48 "csi0phytimer_clk",
49 "ife_0_csid_clk",
50 "ife_0_csid_clk_src";
51 qcom,clock-rates =
52 <0 0 80000000 0 320000000 0 269333333 0 0 384000000>;
53 status = "ok";
54 };
55
56 qcom,csiphy@ac66000{
57 cell-index = <1>;
58 compatible = "qcom,csiphy-v1.0", "qcom,csiphy";
59 reg = <0xac66000 0x1000>;
60 reg-names = "csiphy";
61 interrupts = <0 478 0>;
62 interrupt-names = "csiphy";
63 gdscr-supply = <&titan_top_gdsc>;
64 qcom,cam-vreg-name = "gdscr";
65 qcom,csi-vdd-voltage = <1200000>;
66 qcom,mipi-csi-vdd-supply = <&pm8998_l26>;
67 clocks = <&clock_camcc CAM_CC_CAMNOC_AXI_CLK>,
68 <&clock_camcc CAM_CC_SOC_AHB_CLK>,
69 <&clock_camcc CAM_CC_SLOW_AHB_CLK_SRC>,
70 <&clock_camcc CAM_CC_CPAS_AHB_CLK>,
71 <&clock_camcc CAM_CC_CPHY_RX_CLK_SRC>,
72 <&clock_camcc CAM_CC_CSIPHY1_CLK>,
73 <&clock_camcc CAM_CC_CSI1PHYTIMER_CLK_SRC>,
Viswanadha Raju Thotakuraeed9bb62017-05-03 12:10:19 -070074 <&clock_camcc CAM_CC_CSI1PHYTIMER_CLK>,
Jigarkumar Zala861231152017-02-28 14:05:11 -080075 <&clock_camcc CAM_CC_IFE_1_CSID_CLK>,
76 <&clock_camcc CAM_CC_IFE_1_CSID_CLK_SRC>;
77 clock-names = "camnoc_axi_clk",
78 "soc_ahb_clk",
79 "slow_ahb_src_clk",
80 "cpas_ahb_clk",
81 "cphy_rx_clk_src",
82 "csiphy1_clk",
83 "csi1phytimer_clk_src",
84 "csi1phytimer_clk",
85 "ife_1_csid_clk",
86 "ife_1_csid_clk_src";
87 qcom,clock-rates =
88 <0 0 80000000 0 320000000 0 269333333 0 0 384000000>;
89
90 status = "ok";
91 };
92
93 qcom,csiphy@ac67000 {
94 cell-index = <2>;
95 compatible = "qcom,csiphy-v1.0", "qcom,csiphy";
96 reg = <0xac67000 0x1000>;
97 reg-names = "csiphy";
98 interrupts = <0 479 0>;
99 interrupt-names = "csiphy";
100 gdscr-supply = <&titan_top_gdsc>;
101 qcom,cam-vreg-name = "gdscr";
102 qcom,csi-vdd-voltage = <1200000>;
103 qcom,mipi-csi-vdd-supply = <&pm8998_l26>;
104 clocks = <&clock_camcc CAM_CC_CAMNOC_AXI_CLK>,
105 <&clock_camcc CAM_CC_SOC_AHB_CLK>,
106 <&clock_camcc CAM_CC_SLOW_AHB_CLK_SRC>,
107 <&clock_camcc CAM_CC_CPAS_AHB_CLK>,
108 <&clock_camcc CAM_CC_CPHY_RX_CLK_SRC>,
109 <&clock_camcc CAM_CC_CSIPHY2_CLK>,
110 <&clock_camcc CAM_CC_CSI2PHYTIMER_CLK_SRC>,
111 <&clock_camcc CAM_CC_CSI2PHYTIMER_CLK>,
112 <&clock_camcc CAM_CC_IFE_LITE_CSID_CLK>,
113 <&clock_camcc CAM_CC_IFE_LITE_CSID_CLK_SRC>;
114 clock-names = "camnoc_axi_clk",
115 "soc_ahb_clk",
116 "slow_ahb_src_clk",
117 "cpas_ahb_clk",
118 "cphy_rx_clk_src",
119 "csiphy2_clk",
120 "csi2phytimer_clk_src",
121 "csi2phytimer_clk",
122 "ife_lite_csid_clk",
123 "ife_lite_csid_clk_src";
124 qcom,clock-rates =
125 <0 0 80000000 0 320000000 0 269333333 0 0 384000000>;
126 status = "ok";
127 };
128
129 cci: qcom,cci@ac4a000 {
130 cell-index = <0>;
131 compatible = "qcom,cci";
132 reg = <0xac4a000 0x4000>;
133 #address-cells = <1>;
134 #size-cells = <0>;
135 reg-names = "cci";
136 interrupts = <0 460 0>;
137 interrupt-names = "cci";
138 status = "ok";
139 gdscr-supply = <&titan_top_gdsc>;
140 qcom,cam-vreg-name = "gdscr";
141 clocks = <&clock_camcc CAM_CC_CAMNOC_AXI_CLK>,
142 <&clock_camcc CAM_CC_SOC_AHB_CLK>,
143 <&clock_camcc CAM_CC_SLOW_AHB_CLK_SRC>,
144 <&clock_camcc CAM_CC_CPAS_AHB_CLK>,
145 <&clock_camcc CAM_CC_CCI_CLK>,
146 <&clock_camcc CAM_CC_CCI_CLK_SRC>;
147 clock-names = "camnoc_axi_clk",
148 "soc_ahb_clk",
149 "slow_ahb_src_clk",
150 "cpas_ahb_clk",
151 "cci_clk",
152 "cci_clk_src";
153 qcom,clock-rates = <0 0 80000000 0 0 37500000>;
154 pinctrl-names = "cci_default", "cci_suspend";
155 pinctrl-0 = <&cci0_active &cci1_active>;
156 pinctrl-1 = <&cci0_suspend &cci1_suspend>;
157 gpios = <&tlmm 17 0>,
158 <&tlmm 18 0>,
159 <&tlmm 19 0>,
160 <&tlmm 20 0>;
161 qcom,gpio-tbl-num = <0 1 2 3>;
162 qcom,gpio-tbl-flags = <1 1 1 1>;
163 qcom,gpio-tbl-label = "CCI_I2C_DATA0",
164 "CCI_I2C_CLK0",
165 "CCI_I2C_DATA1",
166 "CCI_I2C_CLK1";
167
168 i2c_freq_100Khz: qcom,i2c_standard_mode {
169 qcom,hw-thigh = <201>;
170 qcom,hw-tlow = <174>;
171 qcom,hw-tsu-sto = <204>;
172 qcom,hw-tsu-sta = <231>;
173 qcom,hw-thd-dat = <22>;
174 qcom,hw-thd-sta = <162>;
175 qcom,hw-tbuf = <227>;
176 qcom,hw-scl-stretch-en = <0>;
177 qcom,hw-trdhld = <6>;
178 qcom,hw-tsp = <3>;
179 qcom,cci-clk-src = <37500000>;
180 status = "ok";
181 };
182
183 i2c_freq_400Khz: qcom,i2c_fast_mode {
184 qcom,hw-thigh = <38>;
185 qcom,hw-tlow = <56>;
186 qcom,hw-tsu-sto = <40>;
187 qcom,hw-tsu-sta = <40>;
188 qcom,hw-thd-dat = <22>;
189 qcom,hw-thd-sta = <35>;
190 qcom,hw-tbuf = <62>;
191 qcom,hw-scl-stretch-en = <0>;
192 qcom,hw-trdhld = <6>;
193 qcom,hw-tsp = <3>;
194 qcom,cci-clk-src = <37500000>;
195 status = "ok";
196 };
197
198 i2c_freq_custom: qcom,i2c_custom_mode {
199 qcom,hw-thigh = <38>;
200 qcom,hw-tlow = <56>;
201 qcom,hw-tsu-sto = <40>;
202 qcom,hw-tsu-sta = <40>;
203 qcom,hw-thd-dat = <22>;
204 qcom,hw-thd-sta = <35>;
205 qcom,hw-tbuf = <62>;
206 qcom,hw-scl-stretch-en = <1>;
207 qcom,hw-trdhld = <6>;
208 qcom,hw-tsp = <3>;
209 qcom,cci-clk-src = <37500000>;
210 status = "ok";
211 };
212
213 i2c_freq_1Mhz: qcom,i2c_fast_plus_mode {
214 qcom,hw-thigh = <16>;
215 qcom,hw-tlow = <22>;
216 qcom,hw-tsu-sto = <17>;
217 qcom,hw-tsu-sta = <18>;
218 qcom,hw-thd-dat = <16>;
219 qcom,hw-thd-sta = <15>;
220 qcom,hw-tbuf = <24>;
221 qcom,hw-scl-stretch-en = <0>;
222 qcom,hw-trdhld = <3>;
223 qcom,hw-tsp = <3>;
224 qcom,cci-clk-src = <37500000>;
225 status = "ok";
226 };
227 };
Seemanta Duttadf1dde72017-04-05 17:33:02 -0700228
229 qcom,cam_smmu {
230 compatible = "qcom,msm-cam-smmu";
231 status = "ok";
232
233 msm_cam_smmu_ife {
234 compatible = "qcom,msm-cam-smmu-cb";
235 iommus = <&apps_smmu 0x808>,
236 <&apps_smmu 0x810>,
237 <&apps_smmu 0x818>,
238 <&apps_smmu 0xc08>,
239 <&apps_smmu 0xc10>,
240 <&apps_smmu 0xc18>;
241 label = "ife";
242 ife_iova_mem_map: iova-mem-map {
243 /* IO region is approximately 3.4 GB */
244 iova-mem-region-io {
245 iova-region-name = "io";
246 iova-region-start = <0x7400000>;
247 iova-region-len = <0xd8c00000>;
248 iova-region-id = <0x3>;
249 status = "ok";
250 };
251 };
252 };
253
254 msm_cam_icp_fw {
255 compatible = "qcom,msm-cam-smmu-fw-dev";
256 label="icp";
257 memory-region = <&pil_camera_mem>;
258 };
259
260 msm_cam_smmu_icp {
261 compatible = "qcom,msm-cam-smmu-cb";
262 iommus = <&apps_smmu 0x1078>,
263 <&apps_smmu 0x1020>,
264 <&apps_smmu 0x1028>,
265 <&apps_smmu 0x1040>,
266 <&apps_smmu 0x1048>,
267 <&apps_smmu 0x1030>,
268 <&apps_smmu 0x1050>;
269 label = "icp";
270 icp_iova_mem_map: iova-mem-map {
271 iova-mem-region-firmware {
272 /* Firmware region is 5MB */
273 iova-region-name = "firmware";
274 iova-region-start = <0x0>;
275 iova-region-len = <0x500000>;
276 iova-region-id = <0x0>;
277 status = "ok";
278 };
279
280 iova-mem-region-shared {
281 /* Shared region is 100MB long */
282 iova-region-name = "shared";
283 iova-region-start = <0x7400000>;
284 iova-region-len = <0x6400000>;
285 iova-region-id = <0x1>;
286 status = "ok";
287 };
288
289 iova-mem-region-io {
290 /* IO region is approximately 3.3 GB */
291 iova-region-name = "io";
292 iova-region-start = <0xd800000>;
293 iova-region-len = <0xd2800000>;
294 iova-region-id = <0x3>;
295 status = "ok";
296 };
297 };
298 };
299
300 msm_cam_smmu_cpas_cdm {
301 compatible = "qcom,msm-cam-smmu-cb";
302 iommus = <&apps_smmu 0x1000>;
303 label = "cpas-cdm0";
304 cpas_cdm_iova_mem_map: iova-mem-map {
305 iova-mem-region-io {
306 /* IO region is approximately 3.4 GB */
307 iova-region-name = "io";
308 iova-region-start = <0x7400000>;
309 iova-region-len = <0xd8c00000>;
310 iova-region-id = <0x3>;
311 status = "ok";
312 };
313 };
314 };
315
316 msm_cam_smmu_secure {
317 compatible = "qcom,msm-cam-smmu-cb";
318 iommus = <&apps_smmu 0x1001>;
319 label = "cam-secure";
320 cam_secure_iova_mem_map: iova-mem-map {
321 /* Secure IO region is approximately 3.4 GB */
322 iova-mem-region-io {
323 iova-region-name = "io";
324 iova-region-start = <0x7400000>;
325 iova-region-len = <0xd8c00000>;
326 iova-region-id = <0x3>;
327 status = "ok";
328 };
329 };
330 };
331 };
Pavan Kumar Chilamkurthib6aa86d2017-05-01 23:47:11 -0700332
333 qcom,cam-cpas@ac40000 {
334 cell-index = <0>;
335 compatible = "qcom,cam-cpas";
336 label = "cpas";
337 arch-compat = "cpas_top";
338 status = "ok";
339 reg-names = "cam_cpas_top", "cam_camnoc";
340 reg = <0xac40000 0x1000>,
341 <0xac42000 0x5000>;
342 reg-cam-base = <0x40000 0x42000>;
343 interrupt-names = "cpas_camnoc";
344 interrupts = <0 459 0>;
345 regulator-names = "camss-vdd";
346 camss-vdd-supply = <&titan_top_gdsc>;
347 clock-names = "gcc_ahb_clk",
348 "gcc_axi_clk",
349 "soc_ahb_clk",
350 "cpas_ahb_clk",
351 "slow_ahb_clk_src",
352 "camnoc_axi_clk";
353 clocks = <&clock_gcc GCC_CAMERA_AHB_CLK>,
354 <&clock_gcc GCC_CAMERA_AXI_CLK>,
355 <&clock_camcc CAM_CC_SOC_AHB_CLK>,
356 <&clock_camcc CAM_CC_CPAS_AHB_CLK>,
357 <&clock_camcc CAM_CC_SLOW_AHB_CLK_SRC>,
358 <&clock_camcc CAM_CC_CAMNOC_AXI_CLK>;
359 src-clock-name = "slow_ahb_clk_src";
360 clock-rates = <0 0 0 0 80000000 0>;
361 qcom,msm-bus,name = "cam_ahb";
362 qcom,msm-bus,num-cases = <4>;
363 qcom,msm-bus,num-paths = <1>;
364 qcom,msm-bus,vectors-KBps =
365 <MSM_BUS_MASTER_AMPSS_M0
366 MSM_BUS_SLAVE_CAMERA_CFG 0 0>,
367 <MSM_BUS_MASTER_AMPSS_M0
368 MSM_BUS_SLAVE_CAMERA_CFG 0 300000>,
369 <MSM_BUS_MASTER_AMPSS_M0
370 MSM_BUS_SLAVE_CAMERA_CFG 0 640000>,
371 <MSM_BUS_MASTER_AMPSS_M0
372 MSM_BUS_SLAVE_CAMERA_CFG 0 640000>;
373 client-id-based;
374 client-names =
375 "csiphy0", "csiphy1", "csiphy2", "cci0",
376 "ife0", "ife1", "ife2", "ipe0",
377 "ipe1", "cam-cdm-intf0", "cpas-cdm0", "bps0",
378 "icp0", "jpeg-dma0", "jpeg0", "fd0";
379 client-axi-port-names =
380 "cam_hf_1", "cam_hf_2", "cam_hf_2", "cam_sf_1",
381 "cam_hf_1", "cam_hf_2", "cam_hf_2", "cam_sf_1",
382 "cam_sf_1", "cam_sf_1", "cam_sf_1", "cam_sf_1",
383 "cam_sf_1", "cam_sf_1", "cam_sf_1", "cam_sf_1";
384 client-bus-camnoc-based;
385 qcom,axi-port-list {
386 qcom,axi-port1 {
387 qcom,axi-port-name = "cam_hf_1";
388 qcom,axi-port-mnoc {
389 qcom,msm-bus,name = "cam_hf_1_mnoc";
390 qcom,msm-bus-vector-dyn-vote;
391 qcom,msm-bus,num-cases = <2>;
392 qcom,msm-bus,num-paths = <1>;
393 qcom,msm-bus,vectors-KBps =
394 <MSM_BUS_MASTER_CAMNOC_HF
395 MSM_BUS_SLAVE_EBI_CH0 0 0>,
396 <MSM_BUS_MASTER_CAMNOC_HF
397 MSM_BUS_SLAVE_EBI_CH0 0 0>;
398 };
399 qcom,axi-port-camnoc {
400 qcom,msm-bus,name = "cam_hf_1_camnoc";
401 qcom,msm-bus-vector-dyn-vote;
402 qcom,msm-bus,num-cases = <2>;
403 qcom,msm-bus,num-paths = <1>;
404 qcom,msm-bus,vectors-KBps =
405 <MSM_BUS_MASTER_CAMNOC_HF
406 MSM_BUS_SLAVE_EBI_CH0 0 0>,
407 <MSM_BUS_MASTER_CAMNOC_HF
408 MSM_BUS_SLAVE_EBI_CH0 0 0>;
409 };
410 };
411 qcom,axi-port2 {
412 qcom,axi-port-name = "cam_hf_2";
413 qcom,axi-port-mnoc {
414 qcom,msm-bus,name = "cam_hf_2_mnoc";
415 qcom,msm-bus-vector-dyn-vote;
416 qcom,msm-bus,num-cases = <2>;
417 qcom,msm-bus,num-paths = <1>;
418 qcom,msm-bus,vectors-KBps =
419 <MSM_BUS_MASTER_CAMNOC_HF
420 MSM_BUS_SLAVE_EBI_CH0 0 0>,
421 <MSM_BUS_MASTER_CAMNOC_HF
422 MSM_BUS_SLAVE_EBI_CH0 0 0>;
423 };
424 qcom,axi-port-camnoc {
425 qcom,msm-bus,name = "cam_hf_1_camnoc";
426 qcom,msm-bus-vector-dyn-vote;
427 qcom,msm-bus,num-cases = <2>;
428 qcom,msm-bus,num-paths = <1>;
429 qcom,msm-bus,vectors-KBps =
430 <MSM_BUS_MASTER_CAMNOC_HF
431 MSM_BUS_SLAVE_EBI_CH0 0 0>,
432 <MSM_BUS_MASTER_CAMNOC_HF
433 MSM_BUS_SLAVE_EBI_CH0 0 0>;
434 };
435 };
436 qcom,axi-port3 {
437 qcom,axi-port-name = "cam_sf_1";
438 qcom,axi-port-mnoc {
439 qcom,msm-bus,name = "cam_sf_1_mnoc";
440 qcom,msm-bus-vector-dyn-vote;
441 qcom,msm-bus,num-cases = <2>;
442 qcom,msm-bus,num-paths = <1>;
443 qcom,msm-bus,vectors-KBps =
444 <MSM_BUS_MASTER_CAMNOC_SF
445 MSM_BUS_SLAVE_EBI_CH0 0 0>,
446 <MSM_BUS_MASTER_CAMNOC_SF
447 MSM_BUS_SLAVE_EBI_CH0 0 0>;
448 };
449 qcom,axi-port-camnoc {
450 qcom,msm-bus,name = "cam_sf_1_camnoc";
451 qcom,msm-bus-vector-dyn-vote;
452 qcom,msm-bus,num-cases = <2>;
453 qcom,msm-bus,num-paths = <1>;
454 qcom,msm-bus,vectors-KBps =
455 <MSM_BUS_MASTER_CAMNOC_SF
456 MSM_BUS_SLAVE_EBI_CH0 0 0>,
457 <MSM_BUS_MASTER_CAMNOC_SF
458 MSM_BUS_SLAVE_EBI_CH0 0 0>;
459 };
460 };
461 };
462 };
Hariram Purushothamane87b44e02017-03-29 13:53:01 -0700463
464 qcom,cam-cdm-intf {
465 compatible = "qcom,cam-cdm-intf";
466 cell-index = <0>;
467 label = "cam-cdm-intf";
468 num-hw-cdm = <1>;
469 cdm-client-names = "ife",
470 "jpeg-dma",
471 "jpeg",
472 "fd";
473 status = "ok";
474 };
475
476 qcom,cpas-cdm0@ac48000 {
477 cell-index = <0>;
478 compatible = "qcom,cam170-cpas-cdm0";
479 label = "cpas-cdm";
480 reg = <0xac48000 0x1000>;
481 reg-names = "cpas-cdm";
482 reg-cam-base = <0x48000>;
483 interrupts = <0 461 0>;
484 interrupt-names = "cpas-cdm";
485 regulator-names = "camss";
486 camss-supply = <&titan_top_gdsc>;
487 clock-names = "gcc_camera_ahb",
488 "gcc_camera_axi",
489 "cam_cc_soc_ahb_clk",
490 "cam_cc_cpas_ahb_clk",
491 "cam_cc_camnoc_axi_clk";
492 clocks = <&clock_gcc GCC_CAMERA_AHB_CLK>,
493 <&clock_gcc GCC_CAMERA_AXI_CLK>,
494 <&clock_camcc CAM_CC_SOC_AHB_CLK>,
495 <&clock_camcc CAM_CC_CPAS_AHB_CLK>,
496 <&clock_camcc CAM_CC_CAMNOC_AXI_CLK>;
497 clock-rates = <0 0 0 0 0>;
498 cdm-client-names = "vfe";
499 status = "ok";
500 };
Lakshmi Narayana Kalavalac0dac062016-12-01 17:20:09 -0800501};