blob: 0c63c7e98bb944a95ebacfec6197dc4a3d21b770 [file] [log] [blame]
Lakshmi Narayana Kalavala85c40352017-05-15 16:19:13 -07001* Qualcomm Technologies, Inc. MSM Camera ICP
2
3The MSM camera ICP devices are implemented multiple device nodes.
4The root icp device node has properties defined to hint the driver
5about the number of A5,IPE and BPS nodes available during the
6probe sequence. Each node has multiple properties defined
7for interrupts, clocks and regulators.
8
9=======================
10Required Node Structure
11=======================
12ICP root interface node takes care of the handling account for number
13of A5, IPE and BPS devices present on the hardware.
14
15- compatible
16 Usage: required
17 Value type: <string>
18 Definition: Should be "qcom,cam-icp".
19
20- compat-hw-name
Lakshmi Narayana Kalavala85c40352017-05-15 16:19:13 -070021 Usage: required
22 Value type: <string>
Suresh Vankadara22697d32017-07-03 12:14:09 -070023 Definition: Should be "qcom,a5" or "qcom,ipe0" or "qcom,ipe1" or "qcom,bps".
Lakshmi Narayana Kalavala85c40352017-05-15 16:19:13 -070024
25- num-a5
26 Usage: required
27 Value type: <u32>
28 Definition: Number of supported A5 processors.
29
30- num-ipe
31 Usage: required
32 Value type: <u32>
33 Definition: Number of supported IPE HW blocks.
34
35- num-bps
36 Usage: required
37 Value type: <u32>
38 Definition: Number of supported BPS HW blocks.
39
40Example:
41 qcom,cam-icp {
42 compatible = "qcom,cam-icp";
43 compat-hw-name = "qcom,a5", "qcom,ipe0", "qcom,ipe1", "qcom,bps";
44 num-a5 = <1>;
45 num-ipe = <2>;
46 num-bps = <1>;
47 status = "ok";
48 };
49
50=======================
51Required Node Structure
52=======================
53A5/IPE/BPS Node's provides interface for Image Control Processor driver
54about the A5 register map, interrupt map, clocks, regulators
55and name of firmware image.
56
57- cell-index
58 Usage: required
59 Value type: <u32>
60 Definition: Node instance number.
61
62- compatible
63 Usage: required
64 Value type: <string>
Suresh Vankadara22697d32017-07-03 12:14:09 -070065 Definition: Should be "qcom,cam-a5" or "qcom,cam-ipe" or "qcom,cam-bps".
Lakshmi Narayana Kalavala85c40352017-05-15 16:19:13 -070066
67- reg-names
68 Usage: optional
69 Value type: <string>
70 Definition: Name of the register resources.
71
72- reg
73 Usage: optional
74 Value type: <u32>
75 Definition: Register values.
76
77- reg-cam-base
78 Usage: optional
79 Value type: <u32>
80 Definition: Register values.
81
82- interrupt-names
83 Usage: optional
84 Value type: <string>
85 Definition: Name of the interrupt.
86
87- interrupts
88 Usage: optional
89 Value type: <u32>
90 Definition: Interrupt associated with CDM HW.
91
92- regulator-names
93 Usage: required
94 Value type: <string>
95 Definition: Name of the regulator resources for CDM HW.
96
97- camss-supply
98 Usage: required
99 Value type: <phandle>
100 Definition: Regulator reference corresponding to the names listed
101 in "regulator-names".
102
103- clock-names
104 Usage: required
105 Value type: <string>
106 Definition: List of clock names required for CDM HW.
107
108- clocks
109 Usage: required
110 Value type: <phandle>
111 Definition: List of clocks used for CDM HW.
112
Pavan Kumar Chilamkurthi7e7607b2017-06-22 20:02:50 -0700113- clock-cntl-level
114 Usage: required
115 Value type: <string>
116 Definition: List of strings corresponds clock-rates levels.
117 Supported strings: minsvs, lowsvs, svs, svs_l1, nominal, turbo.
118
Lakshmi Narayana Kalavala85c40352017-05-15 16:19:13 -0700119- clock-rates
120 Usage: required
121 Value type: <u32>
122 Definition: List of clocks rates.
123
124- fw_name
125 Usage: optional
126 Value type: <string>
127 Definition: Name of firmware image.
128
129Examples:
Suresh Vankadara22697d32017-07-03 12:14:09 -0700130a5: qcom,a5@ac00000 {
Lakshmi Narayana Kalavala85c40352017-05-15 16:19:13 -0700131 cell-index = <0>;
Suresh Vankadara22697d32017-07-03 12:14:09 -0700132 compatible = "qcom,cam-a5";
Lakshmi Narayana Kalavala85c40352017-05-15 16:19:13 -0700133 reg = <0xac00000 0x6000>,
134 <0xac10000 0x8000>,
135 <0xac18000 0x3000>;
136 reg-names = "a5_qgic", "a5_sierra", "a5_csr";
137 interrupts = <0 463 0>;
138 interrupt-names = "a5";
139 regulator-names = "camss-vdd";
140 camss-vdd-supply = <&titan_top_gdsc>;
141 clock-names = "gcc_cam_ahb_clk",
142 "gcc_cam_axi_clk",
143 "soc_ahb_clk",
144 "cpas_ahb_clk",
145 "camnoc_axi_clk",
146 "icp_apb_clk",
147 "icp_atb_clk",
148 "icp_clk",
149 "icp_clk_src",
150 "icp_cti_clk",
151 "icp_ts_clk";
152 clocks = <&clock_gcc GCC_CAMERA_AHB_CLK>,
153 <&clock_gcc GCC_CAMERA_AXI_CLK>,
154 <&clock_camcc CAM_CC_SOC_AHB_CLK>,
155 <&clock_camcc CAM_CC_CPAS_AHB_CLK>,
156 <&clock_camcc CAM_CC_CAMNOC_AXI_CLK>,
157 <&clock_camcc CAM_CC_ICP_APB_CLK>,
158 <&clock_camcc CAM_CC_ICP_ATB_CLK>,
159 <&clock_camcc CAM_CC_ICP_CLK>,
160 <&clock_camcc CAM_CC_ICP_CLK_SRC>,
161 <&clock_camcc CAM_CC_ICP_CTI_CLK>,
162 <&clock_camcc CAM_CC_ICP_TS_CLK>;
163
164 clock-rates = <0 0 0 80000000 0 0 0 0 600000000 0 0>;
Pavan Kumar Chilamkurthi7e7607b2017-06-22 20:02:50 -0700165 clock-cntl-level = "turbo";
Lakshmi Narayana Kalavala85c40352017-05-15 16:19:13 -0700166 fw_name = "CAMERA_ICP.elf";
167};
168
169qcom,ipe0 {
170 cell-index = <0>;
Suresh Vankadara22697d32017-07-03 12:14:09 -0700171 compatible = "qcom,cam-ipe";
Lakshmi Narayana Kalavala85c40352017-05-15 16:19:13 -0700172 regulator-names = "ipe0-vdd";
173 ipe0-vdd-supply = <&ipe_0_gdsc>;
174 clock-names = "ipe_0_ahb_clk",
175 "ipe_0_areg_clk",
176 "ipe_0_axi_clk",
177 "ipe_0_clk",
178 "ipe_0_clk_src";
179 clocks = <&clock_camcc CAM_CC_IPE_0_AHB_CLK>,
180 <&clock_camcc CAM_CC_IPE_0_AREG_CLK>,
181 <&clock_camcc CAM_CC_IPE_0_AXI_CLK>,
182 <&clock_camcc CAM_CC_IPE_0_CLK>,
183 <&clock_camcc CAM_CC_IPE_0_CLK_SRC>;
184
185 clock-rates = <80000000 400000000 0 0 600000000>;
Pavan Kumar Chilamkurthi7e7607b2017-06-22 20:02:50 -0700186 clock-cntl-level = "turbo";
Lakshmi Narayana Kalavala85c40352017-05-15 16:19:13 -0700187};
188
189qcom,ipe1 {
190 cell-index = <1>;
Suresh Vankadara22697d32017-07-03 12:14:09 -0700191 compatible = "qcom,cam-ipe";
Lakshmi Narayana Kalavala85c40352017-05-15 16:19:13 -0700192 regulator-names = "ipe1-vdd";
193 ipe1-vdd-supply = <&ipe_1_gdsc>;
194 clock-names = "ipe_1_ahb_clk",
195 "ipe_1_areg_clk",
196 "ipe_1_axi_clk",
197 "ipe_1_clk",
198 "ipe_1_clk_src";
199 clocks = <&clock_camcc CAM_CC_IPE_1_AHB_CLK>,
200 <&clock_camcc CAM_CC_IPE_1_AREG_CLK>,
201 <&clock_camcc CAM_CC_IPE_1_AXI_CLK>,
202 <&clock_camcc CAM_CC_IPE_1_CLK>,
203 <&clock_camcc CAM_CC_IPE_1_CLK_SRC>;
204
Pavan Kumar Chilamkurthi7e7607b2017-06-22 20:02:50 -0700205 clock-rates = <80000000 400000000 0 0 600000000>;
206 clock-cntl-level = "turbo";
Lakshmi Narayana Kalavala85c40352017-05-15 16:19:13 -0700207};
208
209bps: qcom,bps {
210 cell-index = <0>;
Suresh Vankadara22697d32017-07-03 12:14:09 -0700211 compatible = "qcom,cam-bps";
Lakshmi Narayana Kalavala85c40352017-05-15 16:19:13 -0700212 regulator-names = "bps-vdd";
213 bps-vdd-supply = <&bps_gdsc>;
214 clock-names = "bps_ahb_clk",
215 "bps_areg_clk",
216 "bps_axi_clk",
217 "bps_clk",
218 "bps_clk_src";
219 clocks = <&clock_camcc CAM_CC_BPS_AHB_CLK>,
220 <&clock_camcc CAM_CC_BPS_AREG_CLK>,
221 <&clock_camcc CAM_CC_BPS_AXI_CLK>,
222 <&clock_camcc CAM_CC_BPS_CLK>,
223 <&clock_camcc CAM_CC_BPS_CLK_SRC>;
224
225 clock-rates = <80000000 400000000 0 0 600000000>;
Pavan Kumar Chilamkurthi7e7607b2017-06-22 20:02:50 -0700226 clock-cntl-level = "turbo";
Lakshmi Narayana Kalavala85c40352017-05-15 16:19:13 -0700227};
228