blob: 929633ea402a8193210afdc1d0e12ba7aea01ddf [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";
Patrick Daly8cb8d962017-05-08 14:46:09 -0700235 iommus = <&apps_smmu 0x808 0x0>,
236 <&apps_smmu 0x810 0x8>,
237 <&apps_smmu 0xc08 0x0>,
238 <&apps_smmu 0xc10 0x8>;
Seemanta Duttadf1dde72017-04-05 17:33:02 -0700239 label = "ife";
240 ife_iova_mem_map: iova-mem-map {
241 /* IO region is approximately 3.4 GB */
242 iova-mem-region-io {
243 iova-region-name = "io";
244 iova-region-start = <0x7400000>;
245 iova-region-len = <0xd8c00000>;
246 iova-region-id = <0x3>;
247 status = "ok";
248 };
249 };
250 };
251
252 msm_cam_icp_fw {
253 compatible = "qcom,msm-cam-smmu-fw-dev";
254 label="icp";
255 memory-region = <&pil_camera_mem>;
256 };
257
258 msm_cam_smmu_icp {
259 compatible = "qcom,msm-cam-smmu-cb";
Patrick Daly8cb8d962017-05-08 14:46:09 -0700260 iommus = <&apps_smmu 0x1078 0x2>,
261 <&apps_smmu 0x1020 0x8>,
262 <&apps_smmu 0x1040 0x8>,
263 <&apps_smmu 0x1030 0x0>,
264 <&apps_smmu 0x1050 0x0>;
Seemanta Duttadf1dde72017-04-05 17:33:02 -0700265 label = "icp";
266 icp_iova_mem_map: iova-mem-map {
267 iova-mem-region-firmware {
268 /* Firmware region is 5MB */
269 iova-region-name = "firmware";
270 iova-region-start = <0x0>;
271 iova-region-len = <0x500000>;
272 iova-region-id = <0x0>;
273 status = "ok";
274 };
275
276 iova-mem-region-shared {
277 /* Shared region is 100MB long */
278 iova-region-name = "shared";
279 iova-region-start = <0x7400000>;
280 iova-region-len = <0x6400000>;
281 iova-region-id = <0x1>;
282 status = "ok";
283 };
284
285 iova-mem-region-io {
286 /* IO region is approximately 3.3 GB */
287 iova-region-name = "io";
288 iova-region-start = <0xd800000>;
289 iova-region-len = <0xd2800000>;
290 iova-region-id = <0x3>;
291 status = "ok";
292 };
293 };
294 };
295
296 msm_cam_smmu_cpas_cdm {
297 compatible = "qcom,msm-cam-smmu-cb";
Patrick Daly8cb8d962017-05-08 14:46:09 -0700298 iommus = <&apps_smmu 0x1000 0x0>;
Seemanta Duttadf1dde72017-04-05 17:33:02 -0700299 label = "cpas-cdm0";
300 cpas_cdm_iova_mem_map: iova-mem-map {
301 iova-mem-region-io {
302 /* IO region is approximately 3.4 GB */
303 iova-region-name = "io";
304 iova-region-start = <0x7400000>;
305 iova-region-len = <0xd8c00000>;
306 iova-region-id = <0x3>;
307 status = "ok";
308 };
309 };
310 };
311
312 msm_cam_smmu_secure {
313 compatible = "qcom,msm-cam-smmu-cb";
Patrick Daly8cb8d962017-05-08 14:46:09 -0700314 iommus = <&apps_smmu 0x1001 0x0>;
Seemanta Duttadf1dde72017-04-05 17:33:02 -0700315 label = "cam-secure";
316 cam_secure_iova_mem_map: iova-mem-map {
317 /* Secure IO region is approximately 3.4 GB */
318 iova-mem-region-io {
319 iova-region-name = "io";
320 iova-region-start = <0x7400000>;
321 iova-region-len = <0xd8c00000>;
322 iova-region-id = <0x3>;
323 status = "ok";
324 };
325 };
326 };
327 };
Pavan Kumar Chilamkurthib6aa86d2017-05-01 23:47:11 -0700328
329 qcom,cam-cpas@ac40000 {
330 cell-index = <0>;
331 compatible = "qcom,cam-cpas";
332 label = "cpas";
333 arch-compat = "cpas_top";
334 status = "ok";
335 reg-names = "cam_cpas_top", "cam_camnoc";
336 reg = <0xac40000 0x1000>,
337 <0xac42000 0x5000>;
338 reg-cam-base = <0x40000 0x42000>;
339 interrupt-names = "cpas_camnoc";
340 interrupts = <0 459 0>;
341 regulator-names = "camss-vdd";
342 camss-vdd-supply = <&titan_top_gdsc>;
343 clock-names = "gcc_ahb_clk",
344 "gcc_axi_clk",
345 "soc_ahb_clk",
346 "cpas_ahb_clk",
347 "slow_ahb_clk_src",
348 "camnoc_axi_clk";
349 clocks = <&clock_gcc GCC_CAMERA_AHB_CLK>,
350 <&clock_gcc GCC_CAMERA_AXI_CLK>,
351 <&clock_camcc CAM_CC_SOC_AHB_CLK>,
352 <&clock_camcc CAM_CC_CPAS_AHB_CLK>,
353 <&clock_camcc CAM_CC_SLOW_AHB_CLK_SRC>,
354 <&clock_camcc CAM_CC_CAMNOC_AXI_CLK>;
355 src-clock-name = "slow_ahb_clk_src";
356 clock-rates = <0 0 0 0 80000000 0>;
357 qcom,msm-bus,name = "cam_ahb";
358 qcom,msm-bus,num-cases = <4>;
359 qcom,msm-bus,num-paths = <1>;
360 qcom,msm-bus,vectors-KBps =
361 <MSM_BUS_MASTER_AMPSS_M0
362 MSM_BUS_SLAVE_CAMERA_CFG 0 0>,
363 <MSM_BUS_MASTER_AMPSS_M0
364 MSM_BUS_SLAVE_CAMERA_CFG 0 300000>,
365 <MSM_BUS_MASTER_AMPSS_M0
366 MSM_BUS_SLAVE_CAMERA_CFG 0 640000>,
367 <MSM_BUS_MASTER_AMPSS_M0
368 MSM_BUS_SLAVE_CAMERA_CFG 0 640000>;
Pavan Kumar Chilamkurthi071f3d22017-05-31 22:33:48 -0700369 vdd-corners = <RPMH_REGULATOR_LEVEL_OFF
370 RPMH_REGULATOR_LEVEL_RETENTION
371 RPMH_REGULATOR_LEVEL_MIN_SVS
372 RPMH_REGULATOR_LEVEL_LOW_SVS
373 RPMH_REGULATOR_LEVEL_SVS
374 RPMH_REGULATOR_LEVEL_SVS_L1
375 RPMH_REGULATOR_LEVEL_NOM
376 RPMH_REGULATOR_LEVEL_NOM_L1
377 RPMH_REGULATOR_LEVEL_NOM_L2
378 RPMH_REGULATOR_LEVEL_TURBO
379 RPMH_REGULATOR_LEVEL_TURBO_L1>;
380 vdd-corner-ahb-mapping = "suspend", "suspend",
381 "svs", "svs", "svs", "svs",
382 "nominal", "nominal", "nominal",
383 "turbo", "turbo";
Pavan Kumar Chilamkurthib6aa86d2017-05-01 23:47:11 -0700384 client-id-based;
385 client-names =
386 "csiphy0", "csiphy1", "csiphy2", "cci0",
Pavan Kumar Chilamkurthi4e070ba2017-05-12 14:47:04 -0700387 "csid0", "csid1", "csid2",
Pavan Kumar Chilamkurthib6aa86d2017-05-01 23:47:11 -0700388 "ife0", "ife1", "ife2", "ipe0",
389 "ipe1", "cam-cdm-intf0", "cpas-cdm0", "bps0",
390 "icp0", "jpeg-dma0", "jpeg0", "fd0";
391 client-axi-port-names =
392 "cam_hf_1", "cam_hf_2", "cam_hf_2", "cam_sf_1",
Pavan Kumar Chilamkurthi4e070ba2017-05-12 14:47:04 -0700393 "cam_hf_1", "cam_hf_2", "cam_hf_2",
Pavan Kumar Chilamkurthib6aa86d2017-05-01 23:47:11 -0700394 "cam_hf_1", "cam_hf_2", "cam_hf_2", "cam_sf_1",
395 "cam_sf_1", "cam_sf_1", "cam_sf_1", "cam_sf_1",
396 "cam_sf_1", "cam_sf_1", "cam_sf_1", "cam_sf_1";
397 client-bus-camnoc-based;
398 qcom,axi-port-list {
399 qcom,axi-port1 {
400 qcom,axi-port-name = "cam_hf_1";
401 qcom,axi-port-mnoc {
402 qcom,msm-bus,name = "cam_hf_1_mnoc";
403 qcom,msm-bus-vector-dyn-vote;
404 qcom,msm-bus,num-cases = <2>;
405 qcom,msm-bus,num-paths = <1>;
406 qcom,msm-bus,vectors-KBps =
407 <MSM_BUS_MASTER_CAMNOC_HF
408 MSM_BUS_SLAVE_EBI_CH0 0 0>,
409 <MSM_BUS_MASTER_CAMNOC_HF
410 MSM_BUS_SLAVE_EBI_CH0 0 0>;
411 };
412 qcom,axi-port-camnoc {
413 qcom,msm-bus,name = "cam_hf_1_camnoc";
414 qcom,msm-bus-vector-dyn-vote;
415 qcom,msm-bus,num-cases = <2>;
416 qcom,msm-bus,num-paths = <1>;
417 qcom,msm-bus,vectors-KBps =
418 <MSM_BUS_MASTER_CAMNOC_HF
419 MSM_BUS_SLAVE_EBI_CH0 0 0>,
420 <MSM_BUS_MASTER_CAMNOC_HF
421 MSM_BUS_SLAVE_EBI_CH0 0 0>;
422 };
423 };
424 qcom,axi-port2 {
425 qcom,axi-port-name = "cam_hf_2";
426 qcom,axi-port-mnoc {
427 qcom,msm-bus,name = "cam_hf_2_mnoc";
428 qcom,msm-bus-vector-dyn-vote;
429 qcom,msm-bus,num-cases = <2>;
430 qcom,msm-bus,num-paths = <1>;
431 qcom,msm-bus,vectors-KBps =
432 <MSM_BUS_MASTER_CAMNOC_HF
433 MSM_BUS_SLAVE_EBI_CH0 0 0>,
434 <MSM_BUS_MASTER_CAMNOC_HF
435 MSM_BUS_SLAVE_EBI_CH0 0 0>;
436 };
437 qcom,axi-port-camnoc {
438 qcom,msm-bus,name = "cam_hf_1_camnoc";
439 qcom,msm-bus-vector-dyn-vote;
440 qcom,msm-bus,num-cases = <2>;
441 qcom,msm-bus,num-paths = <1>;
442 qcom,msm-bus,vectors-KBps =
443 <MSM_BUS_MASTER_CAMNOC_HF
444 MSM_BUS_SLAVE_EBI_CH0 0 0>,
445 <MSM_BUS_MASTER_CAMNOC_HF
446 MSM_BUS_SLAVE_EBI_CH0 0 0>;
447 };
448 };
449 qcom,axi-port3 {
450 qcom,axi-port-name = "cam_sf_1";
451 qcom,axi-port-mnoc {
452 qcom,msm-bus,name = "cam_sf_1_mnoc";
453 qcom,msm-bus-vector-dyn-vote;
454 qcom,msm-bus,num-cases = <2>;
455 qcom,msm-bus,num-paths = <1>;
456 qcom,msm-bus,vectors-KBps =
457 <MSM_BUS_MASTER_CAMNOC_SF
458 MSM_BUS_SLAVE_EBI_CH0 0 0>,
459 <MSM_BUS_MASTER_CAMNOC_SF
460 MSM_BUS_SLAVE_EBI_CH0 0 0>;
461 };
462 qcom,axi-port-camnoc {
463 qcom,msm-bus,name = "cam_sf_1_camnoc";
464 qcom,msm-bus-vector-dyn-vote;
465 qcom,msm-bus,num-cases = <2>;
466 qcom,msm-bus,num-paths = <1>;
467 qcom,msm-bus,vectors-KBps =
468 <MSM_BUS_MASTER_CAMNOC_SF
469 MSM_BUS_SLAVE_EBI_CH0 0 0>,
470 <MSM_BUS_MASTER_CAMNOC_SF
471 MSM_BUS_SLAVE_EBI_CH0 0 0>;
472 };
473 };
474 };
475 };
Hariram Purushothamane87b44e02017-03-29 13:53:01 -0700476
477 qcom,cam-cdm-intf {
478 compatible = "qcom,cam-cdm-intf";
479 cell-index = <0>;
480 label = "cam-cdm-intf";
481 num-hw-cdm = <1>;
482 cdm-client-names = "ife",
483 "jpeg-dma",
484 "jpeg",
485 "fd";
486 status = "ok";
487 };
488
489 qcom,cpas-cdm0@ac48000 {
490 cell-index = <0>;
491 compatible = "qcom,cam170-cpas-cdm0";
492 label = "cpas-cdm";
493 reg = <0xac48000 0x1000>;
494 reg-names = "cpas-cdm";
495 reg-cam-base = <0x48000>;
496 interrupts = <0 461 0>;
497 interrupt-names = "cpas-cdm";
498 regulator-names = "camss";
499 camss-supply = <&titan_top_gdsc>;
500 clock-names = "gcc_camera_ahb",
501 "gcc_camera_axi",
502 "cam_cc_soc_ahb_clk",
503 "cam_cc_cpas_ahb_clk",
504 "cam_cc_camnoc_axi_clk";
505 clocks = <&clock_gcc GCC_CAMERA_AHB_CLK>,
506 <&clock_gcc GCC_CAMERA_AXI_CLK>,
507 <&clock_camcc CAM_CC_SOC_AHB_CLK>,
508 <&clock_camcc CAM_CC_CPAS_AHB_CLK>,
509 <&clock_camcc CAM_CC_CAMNOC_AXI_CLK>;
510 clock-rates = <0 0 0 0 0>;
511 cdm-client-names = "vfe";
512 status = "ok";
513 };
Jing Zhoud4020692017-02-09 15:16:49 -0800514
515 qcom,cam-isp {
516 compatible = "qcom,cam-isp";
517 arch-compat = "ife";
518 status = "ok";
519 };
520
521 qcom,csid0@acb3000 {
522 cell-index = <0>;
523 compatible = "qcom,csid170";
524 reg-names = "csid";
525 reg = <0xacb3000 0x1000>;
526 reg-cam-base = <0xb3000>;
527 interrupt-names = "csid";
528 interrupts = <0 464 0>;
529 regulator-names = "camss", "ife0";
530 camss-supply = <&titan_top_gdsc>;
531 ife0-supply = <&ife_0_gdsc>;
532 clock-names = "camera_ahb",
533 "camera_axi",
534 "soc_ahb_clk",
535 "cpas_ahb_clk",
536 "slow_ahb_clk_src",
537 "ife_csid_clk",
538 "ife_csid_clk_src",
539 "ife_cphy_rx_clk",
540 "cphy_rx_clk_src",
541 "ife_clk",
542 "ife_clk_src",
543 "camnoc_axi_clk",
544 "ife_axi_clk";
545 clocks = <&clock_gcc GCC_CAMERA_AHB_CLK>,
546 <&clock_gcc GCC_CAMERA_AXI_CLK>,
547 <&clock_camcc CAM_CC_SOC_AHB_CLK>,
548 <&clock_camcc CAM_CC_CPAS_AHB_CLK>,
549 <&clock_camcc CAM_CC_SLOW_AHB_CLK_SRC>,
550 <&clock_camcc CAM_CC_IFE_0_CSID_CLK>,
551 <&clock_camcc CAM_CC_IFE_0_CSID_CLK_SRC>,
552 <&clock_camcc CAM_CC_IFE_0_CPHY_RX_CLK>,
553 <&clock_camcc CAM_CC_CPHY_RX_CLK_SRC>,
554 <&clock_camcc CAM_CC_IFE_0_CLK>,
555 <&clock_camcc CAM_CC_IFE_0_CLK_SRC>,
556 <&clock_camcc CAM_CC_CAMNOC_AXI_CLK>,
557 <&clock_camcc CAM_CC_IFE_0_AXI_CLK>;
Harsh Shahff6bc352017-05-16 18:03:08 -0700558 clock-rates = <0 0 0 0 0 0 500000000 0 0 0 60000000 0 0>;
Jing Zhoud4020692017-02-09 15:16:49 -0800559 src-clock-name = "ife_csid_clk_src";
560 status = "ok";
561 };
562
563 qcom,vfe0@acaf000 {
564 cell-index = <0>;
565 compatible = "qcom,vfe170";
566 reg-names = "ife";
567 reg = <0xacaf000 0x4000>;
568 reg-cam-base = <0xaf000>;
569 interrupt-names = "ife";
570 interrupts = <0 465 0>;
571 regulator-names = "camss", "ife0";
572 camss-supply = <&titan_top_gdsc>;
573 ife0-supply = <&ife_0_gdsc>;
574 clock-names = "camera_ahb",
575 "camera_axi",
576 "soc_ahb_clk",
577 "cpas_ahb_clk",
578 "slow_ahb_clk_src",
579 "ife_clk",
580 "ife_clk_src",
581 "camnoc_axi_clk",
582 "ife_axi_clk";
583 clocks = <&clock_gcc GCC_CAMERA_AHB_CLK>,
584 <&clock_gcc GCC_CAMERA_AXI_CLK>,
585 <&clock_camcc CAM_CC_SOC_AHB_CLK>,
586 <&clock_camcc CAM_CC_CPAS_AHB_CLK>,
587 <&clock_camcc CAM_CC_SLOW_AHB_CLK_SRC>,
588 <&clock_camcc CAM_CC_IFE_0_CLK>,
589 <&clock_camcc CAM_CC_IFE_0_CLK_SRC>,
590 <&clock_camcc CAM_CC_CAMNOC_AXI_CLK>,
591 <&clock_camcc CAM_CC_IFE_0_AXI_CLK>;
Harsh Shahff6bc352017-05-16 18:03:08 -0700592 clock-rates = <0 0 0 0 0 0 600000000 0 0>;
Jing Zhoud4020692017-02-09 15:16:49 -0800593 src-clock-name = "ife_clk_src";
594 clock-names-option = "ife_dsp_clk";
595 clocks-option = <&clock_camcc CAM_CC_IFE_0_DSP_CLK>;
596 clock-rates-option = <404000000>;
597 status = "ok";
598 };
599
600 qcom,csid1@acba000 {
601 cell-index = <1>;
602 compatible = "qcom,csid170";
603 reg-names = "csid";
604 reg = <0xacba000 0x1000>;
605 reg-cam-base = <0xba000>;
606 interrupt-names = "csid";
607 interrupts = <0 466 0>;
608 regulator-names = "camss", "ife1";
609 camss-supply = <&titan_top_gdsc>;
610 ife1-supply = <&ife_1_gdsc>;
611 clock-names = "camera_ahb",
612 "camera_axi",
613 "soc_ahb_clk",
614 "cpas_ahb_clk",
615 "slow_ahb_clk_src",
616 "ife_csid_clk",
617 "ife_csid_clk_src",
618 "ife_cphy_rx_clk",
619 "cphy_rx_clk_src",
620 "ife_clk",
621 "ife_clk_src",
622 "camnoc_axi_clk",
623 "ife_axi_clk";
624 clocks = <&clock_gcc GCC_CAMERA_AHB_CLK>,
625 <&clock_gcc GCC_CAMERA_AXI_CLK>,
626 <&clock_camcc CAM_CC_SOC_AHB_CLK>,
627 <&clock_camcc CAM_CC_CPAS_AHB_CLK>,
628 <&clock_camcc CAM_CC_SLOW_AHB_CLK_SRC>,
629 <&clock_camcc CAM_CC_IFE_1_CSID_CLK>,
630 <&clock_camcc CAM_CC_IFE_1_CSID_CLK_SRC>,
631 <&clock_camcc CAM_CC_IFE_1_CPHY_RX_CLK>,
632 <&clock_camcc CAM_CC_CPHY_RX_CLK_SRC>,
633 <&clock_camcc CAM_CC_IFE_1_CLK>,
634 <&clock_camcc CAM_CC_IFE_1_CLK_SRC>,
635 <&clock_camcc CAM_CC_CAMNOC_AXI_CLK>,
636 <&clock_camcc CAM_CC_IFE_1_AXI_CLK>;
Harsh Shahff6bc352017-05-16 18:03:08 -0700637 clock-rates = <0 0 0 0 0 0 500000000 0 0 0 60000000 0 0>;
Jing Zhoud4020692017-02-09 15:16:49 -0800638 src-clock-name = "ife_csid_clk_src";
639 status = "ok";
640 };
641
642 qcom,vfe1@acb6000 {
643 cell-index = <1>;
644 compatible = "qcom,vfe170";
645 reg-names = "ife";
646 reg = <0xacb6000 0x4000>;
647 reg-cam-base = <0xb6000>;
648 interrupt-names = "ife";
649 interrupts = <0 467 0>;
650 regulator-names = "camss", "ife1";
651 camss-supply = <&titan_top_gdsc>;
652 ife1-supply = <&ife_1_gdsc>;
653 clock-names = "camera_ahb",
654 "camera_axi",
655 "soc_ahb_clk",
656 "cpas_ahb_clk",
657 "slow_ahb_clk_src",
658 "ife_clk",
659 "ife_clk_src",
660 "camnoc_axi_clk",
661 "ife_axi_clk";
662 clocks = <&clock_gcc GCC_CAMERA_AHB_CLK>,
663 <&clock_gcc GCC_CAMERA_AXI_CLK>,
664 <&clock_camcc CAM_CC_SOC_AHB_CLK>,
665 <&clock_camcc CAM_CC_CPAS_AHB_CLK>,
666 <&clock_camcc CAM_CC_SLOW_AHB_CLK_SRC>,
667 <&clock_camcc CAM_CC_IFE_1_CLK>,
668 <&clock_camcc CAM_CC_IFE_1_CLK_SRC>,
669 <&clock_camcc CAM_CC_CAMNOC_AXI_CLK>,
670 <&clock_camcc CAM_CC_IFE_1_AXI_CLK>;
Harsh Shahff6bc352017-05-16 18:03:08 -0700671 clock-rates = <0 0 0 0 0 0 600000000 0 0>;
Jing Zhoud4020692017-02-09 15:16:49 -0800672 src-clock-name = "ife_clk_src";
673 clock-names-option = "ife_dsp_clk";
674 clocks-option = <&clock_camcc CAM_CC_IFE_1_DSP_CLK>;
675 clock-rates-option = <404000000>;
676 status = "ok";
677 };
678
679 qcom,csid-lite@acc8000 {
680 cell-index = <2>;
681 compatible = "qcom,csid-lite170";
682 reg-names = "csid-lite";
683 reg = <0xacc8000 0x1000>;
684 reg-cam-base = <0xc8000>;
685 interrupt-names = "csid-lite";
686 interrupts = <0 468 0>;
687 regulator-names = "camss";
688 camss-supply = <&titan_top_gdsc>;
689 clock-names = "camera_ahb",
690 "camera_axi",
691 "soc_ahb_clk",
692 "cpas_ahb_clk",
693 "slow_ahb_clk_src",
694 "ife_csid_clk",
695 "ife_csid_clk_src",
696 "ife_cphy_rx_clk",
697 "cphy_rx_clk_src",
698 "ife_clk",
699 "ife_clk_src",
700 "camnoc_axi_clk";
701 clocks = <&clock_gcc GCC_CAMERA_AHB_CLK>,
702 <&clock_gcc GCC_CAMERA_AXI_CLK>,
703 <&clock_camcc CAM_CC_SOC_AHB_CLK>,
704 <&clock_camcc CAM_CC_CPAS_AHB_CLK>,
705 <&clock_camcc CAM_CC_SLOW_AHB_CLK_SRC>,
706 <&clock_camcc CAM_CC_IFE_LITE_CSID_CLK>,
707 <&clock_camcc CAM_CC_IFE_LITE_CSID_CLK_SRC>,
708 <&clock_camcc CAM_CC_IFE_LITE_CPHY_RX_CLK>,
709 <&clock_camcc CAM_CC_CPHY_RX_CLK_SRC>,
710 <&clock_camcc CAM_CC_IFE_LITE_CLK>,
711 <&clock_camcc CAM_CC_IFE_LITE_CLK_SRC>,
712 <&clock_camcc CAM_CC_CAMNOC_AXI_CLK>;
713 clock-rates = <0 0 0 0 0 0 384000000 0 0 0 40400000 0>;
714 src-clock-name = "ife_csid_clk_src";
715 status = "ok";
716 };
717
718 qcom,vfe-lite@acc4000 {
719 cell-index = <2>;
720 compatible = "qcom,vfe-lite170";
721 reg-names = "ife-lite";
722 reg = <0xacc4000 0x4000>;
723 reg-cam-base = <0xc4000>;
724 interrupt-names = "ife-lite";
725 interrupts = <0 469 0>;
726 regulator-names = "camss";
727 camss-supply = <&titan_top_gdsc>;
728 clock-names = "camera_ahb",
729 "camera_axi",
730 "soc_ahb_clk",
731 "cpas_ahb_clk",
732 "slow_ahb_clk_src",
733 "ife_clk",
734 "ife_clk_src",
735 "camnoc_axi_clk";
736 clocks = <&clock_gcc GCC_CAMERA_AHB_CLK>,
737 <&clock_gcc GCC_CAMERA_AXI_CLK>,
738 <&clock_camcc CAM_CC_SOC_AHB_CLK>,
739 <&clock_camcc CAM_CC_CPAS_AHB_CLK>,
740 <&clock_camcc CAM_CC_SLOW_AHB_CLK_SRC>,
741 <&clock_camcc CAM_CC_IFE_LITE_CLK>,
742 <&clock_camcc CAM_CC_IFE_LITE_CLK_SRC>,
743 <&clock_camcc CAM_CC_CAMNOC_AXI_CLK>;
744 qcom,clock-rates = <0 0 0 0 0 0 404000000 0>;
745 src-clock-name = "ife_clk_src";
746 status = "ok";
747 };
Hariram Purushothaman71b8d632017-05-15 14:49:59 -0700748
749 qcom,cam-icp {
750 compatible = "qcom,cam-icp";
751 compat-hw-name = "qcom,a5",
752 "qcom,ipe0",
753 "qcom,ipe1",
754 "qcom,bps";
755 num-a5 = <1>;
756 num-ipe = <2>;
757 num-bps = <1>;
758 status = "ok";
759 };
760
761 qcom,a5@ac00000 {
762 cell-index = <0>;
763 compatible = "qcom,cam_a5";
764 reg = <0xac00000 0x6000>,
765 <0xac10000 0x8000>,
766 <0xac18000 0x3000>;
767 reg-names = "a5_qgic", "a5_sierra", "a5_csr";
768 reg-cam-base = <0x00000 0x10000 0x18000>;
769 interrupts = <0 463 0>;
770 interrupt-names = "a5";
771 regulator-names = "camss-vdd";
772 camss-vdd-supply = <&titan_top_gdsc>;
773 clock-names = "gcc_cam_ahb_clk",
774 "gcc_cam_axi_clk",
775 "soc_ahb_clk",
776 "cpas_ahb_clk",
777 "camnoc_axi_clk",
778 "icp_apb_clk",
779 "icp_atb_clk",
780 "icp_clk",
781 "icp_clk_src",
782 "icp_cti_clk",
783 "icp_ts_clk";
784 clocks = <&clock_gcc GCC_CAMERA_AHB_CLK>,
785 <&clock_gcc GCC_CAMERA_AXI_CLK>,
786 <&clock_camcc CAM_CC_SOC_AHB_CLK>,
787 <&clock_camcc CAM_CC_CPAS_AHB_CLK>,
788 <&clock_camcc CAM_CC_CAMNOC_AXI_CLK>,
789 <&clock_camcc CAM_CC_ICP_APB_CLK>,
790 <&clock_camcc CAM_CC_ICP_ATB_CLK>,
791 <&clock_camcc CAM_CC_ICP_CLK>,
792 <&clock_camcc CAM_CC_ICP_CLK_SRC>,
793 <&clock_camcc CAM_CC_ICP_CTI_CLK>,
794 <&clock_camcc CAM_CC_ICP_TS_CLK>;
795
796 clock-rates = <0 0 0 80000000 0 0 0 0 600000000 0 0>;
797 fw_name = "CAMERA_ICP.elf";
798 status = "ok";
799 };
800
801 qcom,ipe0 {
802 cell-index = <0>;
803 compatible = "qcom,cam_ipe";
804 regulator-names = "ipe0-vdd";
805 ipe0-vdd-supply = <&ipe_0_gdsc>;
806 clock-names = "ipe_0_ahb_clk",
807 "ipe_0_areg_clk",
808 "ipe_0_axi_clk",
809 "ipe_0_clk",
810 "ipe_0_clk_src";
811 clocks = <&clock_camcc CAM_CC_IPE_0_AHB_CLK>,
812 <&clock_camcc CAM_CC_IPE_0_AREG_CLK>,
813 <&clock_camcc CAM_CC_IPE_0_AXI_CLK>,
814 <&clock_camcc CAM_CC_IPE_0_CLK>,
815 <&clock_camcc CAM_CC_IPE_0_CLK_SRC>;
816
817 clock-rates = <80000000 400000000 0 0 600000000>;
818 status = "ok";
819 };
820
821 qcom,ipe1 {
822 cell-index = <1>;
823 compatible = "qcom,cam_ipe";
824 regulator-names = "ipe1-vdd";
825 ipe1-vdd-supply = <&ipe_1_gdsc>;
826 clock-names = "ipe_1_ahb_clk",
827 "ipe_1_areg_clk",
828 "ipe_1_axi_clk",
829 "ipe_1_clk",
830 "ipe_1_clk_src";
831 clocks = <&clock_camcc CAM_CC_IPE_1_AHB_CLK>,
832 <&clock_camcc CAM_CC_IPE_1_AREG_CLK>,
833 <&clock_camcc CAM_CC_IPE_1_AXI_CLK>,
834 <&clock_camcc CAM_CC_IPE_1_CLK>,
835 <&clock_camcc CAM_CC_IPE_1_CLK_SRC>;
836
837 clock-rates = <80000000 400000000 0 0 600000000>;
838 status = "ok";
839 };
840
841 qcom,bps {
842 cell-index = <0>;
843 compatible = "qcom,cam_bps";
844 regulator-names = "bps-vdd";
845 bps-vdd-supply = <&bps_gdsc>;
846 clock-names = "bps_ahb_clk",
847 "bps_areg_clk",
848 "bps_axi_clk",
849 "bps_clk",
850 "bps_clk_src";
851 clocks = <&clock_camcc CAM_CC_BPS_AHB_CLK>,
852 <&clock_camcc CAM_CC_BPS_AREG_CLK>,
853 <&clock_camcc CAM_CC_BPS_AXI_CLK>,
854 <&clock_camcc CAM_CC_BPS_CLK>,
855 <&clock_camcc CAM_CC_BPS_CLK_SRC>;
856
857 clock-rates = <80000000 400000000 0 0 600000000>;
858 status = "ok";
859 };
Lakshmi Narayana Kalavalac0dac062016-12-01 17:20:09 -0800860};