Lakshmi Narayana Kalavala | 85c4035 | 2017-05-15 16:19:13 -0700 | [diff] [blame] | 1 | * Qualcomm Technologies, Inc. MSM Camera ICP |
| 2 | |
| 3 | The MSM camera ICP devices are implemented multiple device nodes. |
| 4 | The root icp device node has properties defined to hint the driver |
| 5 | about the number of A5,IPE and BPS nodes available during the |
| 6 | probe sequence. Each node has multiple properties defined |
| 7 | for interrupts, clocks and regulators. |
| 8 | |
| 9 | ======================= |
| 10 | Required Node Structure |
| 11 | ======================= |
| 12 | ICP root interface node takes care of the handling account for number |
| 13 | of 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 Kalavala | 85c4035 | 2017-05-15 16:19:13 -0700 | [diff] [blame] | 21 | Usage: required |
| 22 | Value type: <string> |
Suresh Vankadara | 22697d3 | 2017-07-03 12:14:09 -0700 | [diff] [blame] | 23 | Definition: Should be "qcom,a5" or "qcom,ipe0" or "qcom,ipe1" or "qcom,bps". |
Lakshmi Narayana Kalavala | 85c4035 | 2017-05-15 16:19:13 -0700 | [diff] [blame] | 24 | |
| 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 | |
| 40 | Example: |
| 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 | ======================= |
| 51 | Required Node Structure |
| 52 | ======================= |
| 53 | A5/IPE/BPS Node's provides interface for Image Control Processor driver |
| 54 | about the A5 register map, interrupt map, clocks, regulators |
| 55 | and 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 Vankadara | 22697d3 | 2017-07-03 12:14:09 -0700 | [diff] [blame] | 65 | Definition: Should be "qcom,cam-a5" or "qcom,cam-ipe" or "qcom,cam-bps". |
Lakshmi Narayana Kalavala | 85c4035 | 2017-05-15 16:19:13 -0700 | [diff] [blame] | 66 | |
| 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 | |
Suresh Vankadara | 34494fc | 2017-08-12 18:18:09 +0530 | [diff] [blame] | 108 | - src-clock-name |
| 109 | Usage: required |
| 110 | Value type: <string> |
| 111 | Definition: Source clock name. |
| 112 | |
Lakshmi Narayana Kalavala | 85c4035 | 2017-05-15 16:19:13 -0700 | [diff] [blame] | 113 | - clocks |
| 114 | Usage: required |
| 115 | Value type: <phandle> |
| 116 | Definition: List of clocks used for CDM HW. |
| 117 | |
Pavan Kumar Chilamkurthi | 7e7607b | 2017-06-22 20:02:50 -0700 | [diff] [blame] | 118 | - clock-cntl-level |
| 119 | Usage: required |
| 120 | Value type: <string> |
| 121 | Definition: List of strings corresponds clock-rates levels. |
Suresh Vankadara | 34494fc | 2017-08-12 18:18:09 +0530 | [diff] [blame] | 122 | Supported strings: lowsvs, svs, svs_l1, nominal, turbo. |
Pavan Kumar Chilamkurthi | 7e7607b | 2017-06-22 20:02:50 -0700 | [diff] [blame] | 123 | |
Lakshmi Narayana Kalavala | 85c4035 | 2017-05-15 16:19:13 -0700 | [diff] [blame] | 124 | - clock-rates |
| 125 | Usage: required |
| 126 | Value type: <u32> |
| 127 | Definition: List of clocks rates. |
| 128 | |
| 129 | - fw_name |
| 130 | Usage: optional |
| 131 | Value type: <string> |
| 132 | Definition: Name of firmware image. |
| 133 | |
| 134 | Examples: |
Suresh Vankadara | 22697d3 | 2017-07-03 12:14:09 -0700 | [diff] [blame] | 135 | a5: qcom,a5@ac00000 { |
Lakshmi Narayana Kalavala | 85c4035 | 2017-05-15 16:19:13 -0700 | [diff] [blame] | 136 | cell-index = <0>; |
Suresh Vankadara | 22697d3 | 2017-07-03 12:14:09 -0700 | [diff] [blame] | 137 | compatible = "qcom,cam-a5"; |
Lakshmi Narayana Kalavala | 85c4035 | 2017-05-15 16:19:13 -0700 | [diff] [blame] | 138 | reg = <0xac00000 0x6000>, |
| 139 | <0xac10000 0x8000>, |
| 140 | <0xac18000 0x3000>; |
| 141 | reg-names = "a5_qgic", "a5_sierra", "a5_csr"; |
| 142 | interrupts = <0 463 0>; |
| 143 | interrupt-names = "a5"; |
| 144 | regulator-names = "camss-vdd"; |
| 145 | camss-vdd-supply = <&titan_top_gdsc>; |
| 146 | clock-names = "gcc_cam_ahb_clk", |
| 147 | "gcc_cam_axi_clk", |
| 148 | "soc_ahb_clk", |
| 149 | "cpas_ahb_clk", |
| 150 | "camnoc_axi_clk", |
| 151 | "icp_apb_clk", |
| 152 | "icp_atb_clk", |
| 153 | "icp_clk", |
| 154 | "icp_clk_src", |
| 155 | "icp_cti_clk", |
| 156 | "icp_ts_clk"; |
| 157 | clocks = <&clock_gcc GCC_CAMERA_AHB_CLK>, |
| 158 | <&clock_gcc GCC_CAMERA_AXI_CLK>, |
| 159 | <&clock_camcc CAM_CC_SOC_AHB_CLK>, |
| 160 | <&clock_camcc CAM_CC_CPAS_AHB_CLK>, |
| 161 | <&clock_camcc CAM_CC_CAMNOC_AXI_CLK>, |
| 162 | <&clock_camcc CAM_CC_ICP_APB_CLK>, |
| 163 | <&clock_camcc CAM_CC_ICP_ATB_CLK>, |
| 164 | <&clock_camcc CAM_CC_ICP_CLK>, |
| 165 | <&clock_camcc CAM_CC_ICP_CLK_SRC>, |
| 166 | <&clock_camcc CAM_CC_ICP_CTI_CLK>, |
| 167 | <&clock_camcc CAM_CC_ICP_TS_CLK>; |
| 168 | |
| 169 | clock-rates = <0 0 0 80000000 0 0 0 0 600000000 0 0>; |
Pavan Kumar Chilamkurthi | 7e7607b | 2017-06-22 20:02:50 -0700 | [diff] [blame] | 170 | clock-cntl-level = "turbo"; |
Lakshmi Narayana Kalavala | 85c4035 | 2017-05-15 16:19:13 -0700 | [diff] [blame] | 171 | fw_name = "CAMERA_ICP.elf"; |
| 172 | }; |
| 173 | |
| 174 | qcom,ipe0 { |
| 175 | cell-index = <0>; |
Suresh Vankadara | 22697d3 | 2017-07-03 12:14:09 -0700 | [diff] [blame] | 176 | compatible = "qcom,cam-ipe"; |
Lakshmi Narayana Kalavala | 85c4035 | 2017-05-15 16:19:13 -0700 | [diff] [blame] | 177 | regulator-names = "ipe0-vdd"; |
| 178 | ipe0-vdd-supply = <&ipe_0_gdsc>; |
| 179 | clock-names = "ipe_0_ahb_clk", |
| 180 | "ipe_0_areg_clk", |
| 181 | "ipe_0_axi_clk", |
| 182 | "ipe_0_clk", |
| 183 | "ipe_0_clk_src"; |
Suresh Vankadara | 34494fc | 2017-08-12 18:18:09 +0530 | [diff] [blame] | 184 | src-clock-name = "ipe_0_clk_src"; |
Lakshmi Narayana Kalavala | 85c4035 | 2017-05-15 16:19:13 -0700 | [diff] [blame] | 185 | clocks = <&clock_camcc CAM_CC_IPE_0_AHB_CLK>, |
| 186 | <&clock_camcc CAM_CC_IPE_0_AREG_CLK>, |
| 187 | <&clock_camcc CAM_CC_IPE_0_AXI_CLK>, |
| 188 | <&clock_camcc CAM_CC_IPE_0_CLK>, |
| 189 | <&clock_camcc CAM_CC_IPE_0_CLK_SRC>; |
| 190 | |
Suresh Vankadara | 34494fc | 2017-08-12 18:18:09 +0530 | [diff] [blame] | 191 | clock-rates = <0 0 0 0 240000000>, |
| 192 | <0 0 0 0 404000000>, |
| 193 | <0 0 0 0 480000000>, |
| 194 | <0 0 0 0 538000000>, |
| 195 | <0 0 0 0 600000000>; |
| 196 | clock-cntl-level = "lowsvs", "svs", |
| 197 | "svs_l1", "nominal", "turbo"; |
Lakshmi Narayana Kalavala | 85c4035 | 2017-05-15 16:19:13 -0700 | [diff] [blame] | 198 | }; |
| 199 | |
| 200 | qcom,ipe1 { |
| 201 | cell-index = <1>; |
Suresh Vankadara | 22697d3 | 2017-07-03 12:14:09 -0700 | [diff] [blame] | 202 | compatible = "qcom,cam-ipe"; |
Lakshmi Narayana Kalavala | 85c4035 | 2017-05-15 16:19:13 -0700 | [diff] [blame] | 203 | regulator-names = "ipe1-vdd"; |
| 204 | ipe1-vdd-supply = <&ipe_1_gdsc>; |
| 205 | clock-names = "ipe_1_ahb_clk", |
| 206 | "ipe_1_areg_clk", |
| 207 | "ipe_1_axi_clk", |
| 208 | "ipe_1_clk", |
| 209 | "ipe_1_clk_src"; |
Suresh Vankadara | 34494fc | 2017-08-12 18:18:09 +0530 | [diff] [blame] | 210 | src-clock-name = "ipe_1_clk_src"; |
Lakshmi Narayana Kalavala | 85c4035 | 2017-05-15 16:19:13 -0700 | [diff] [blame] | 211 | clocks = <&clock_camcc CAM_CC_IPE_1_AHB_CLK>, |
| 212 | <&clock_camcc CAM_CC_IPE_1_AREG_CLK>, |
| 213 | <&clock_camcc CAM_CC_IPE_1_AXI_CLK>, |
| 214 | <&clock_camcc CAM_CC_IPE_1_CLK>, |
| 215 | <&clock_camcc CAM_CC_IPE_1_CLK_SRC>; |
| 216 | |
Suresh Vankadara | 34494fc | 2017-08-12 18:18:09 +0530 | [diff] [blame] | 217 | clock-rates = <0 0 0 0 240000000>, |
| 218 | <0 0 0 0 404000000>, |
| 219 | <0 0 0 0 480000000>, |
| 220 | <0 0 0 0 538000000>, |
| 221 | <0 0 0 0 600000000>; |
| 222 | clock-cntl-level = "lowsvs", "svs", |
| 223 | "svs_l1", "nominal", "turbo"; |
Lakshmi Narayana Kalavala | 85c4035 | 2017-05-15 16:19:13 -0700 | [diff] [blame] | 224 | }; |
| 225 | |
| 226 | bps: qcom,bps { |
| 227 | cell-index = <0>; |
Suresh Vankadara | 22697d3 | 2017-07-03 12:14:09 -0700 | [diff] [blame] | 228 | compatible = "qcom,cam-bps"; |
Lakshmi Narayana Kalavala | 85c4035 | 2017-05-15 16:19:13 -0700 | [diff] [blame] | 229 | regulator-names = "bps-vdd"; |
| 230 | bps-vdd-supply = <&bps_gdsc>; |
| 231 | clock-names = "bps_ahb_clk", |
| 232 | "bps_areg_clk", |
| 233 | "bps_axi_clk", |
| 234 | "bps_clk", |
| 235 | "bps_clk_src"; |
Suresh Vankadara | 34494fc | 2017-08-12 18:18:09 +0530 | [diff] [blame] | 236 | src-clock-name = "bps_clk_src"; |
Lakshmi Narayana Kalavala | 85c4035 | 2017-05-15 16:19:13 -0700 | [diff] [blame] | 237 | clocks = <&clock_camcc CAM_CC_BPS_AHB_CLK>, |
| 238 | <&clock_camcc CAM_CC_BPS_AREG_CLK>, |
| 239 | <&clock_camcc CAM_CC_BPS_AXI_CLK>, |
| 240 | <&clock_camcc CAM_CC_BPS_CLK>, |
| 241 | <&clock_camcc CAM_CC_BPS_CLK_SRC>; |
| 242 | |
Suresh Vankadara | 34494fc | 2017-08-12 18:18:09 +0530 | [diff] [blame] | 243 | clock-rates = <0 0 0 0 200000000>, |
| 244 | <0 0 0 0 404000000>, |
| 245 | <0 0 0 0 480000000>, |
| 246 | <0 0 0 0 600000000>, |
| 247 | <0 0 0 0 600000000>; |
| 248 | clock-cntl-level = "lowsvs", "svs", |
| 249 | "svs_l1", "nominal", "turbo"; |
Lakshmi Narayana Kalavala | 85c4035 | 2017-05-15 16:19:13 -0700 | [diff] [blame] | 250 | }; |
| 251 | |