1# SPDX-License-Identifier: GPL-2.0-only 2config KRAIT_CLOCKS 3 bool 4 select KRAIT_L2_ACCESSORS 5 6config QCOM_GDSC 7 bool 8 select PM_GENERIC_DOMAINS if PM 9 10config QCOM_RPMCC 11 bool 12 13menuconfig COMMON_CLK_QCOM 14 tristate "Support for Qualcomm's clock controllers" 15 depends on OF 16 depends on ARCH_QCOM || COMPILE_TEST 17 select RATIONAL 18 select REGMAP_MMIO 19 select RESET_CONTROLLER 20 21if COMMON_CLK_QCOM 22 23config QCOM_A53PLL 24 tristate "MSM8916 A53 PLL" 25 help 26 Support for the A53 PLL on MSM8916 devices. It provides 27 the CPU with frequencies above 1GHz. 28 Say Y if you want to support higher CPU frequencies on MSM8916 29 devices. 30 31config QCOM_CLK_APCS_MSM8916 32 tristate "MSM8916 APCS Clock Controller" 33 depends on QCOM_APCS_IPC || COMPILE_TEST 34 help 35 Support for the APCS Clock Controller on msm8916 devices. The 36 APCS is managing the mux and divider which feeds the CPUs. 37 Say Y if you want to support CPU frequency scaling on devices 38 such as msm8916. 39 40config QCOM_CLK_RPM 41 tristate "RPM based Clock Controller" 42 depends on MFD_QCOM_RPM 43 select QCOM_RPMCC 44 help 45 The RPM (Resource Power Manager) is a dedicated hardware engine for 46 managing the shared SoC resources in order to keep the lowest power 47 profile. It communicates with other hardware subsystems via shared 48 memory and accepts clock requests, aggregates the requests and turns 49 the clocks on/off or scales them on demand. 50 Say Y if you want to support the clocks exposed by the RPM on 51 platforms such as apq8064, msm8660, msm8960 etc. 52 53config QCOM_CLK_SMD_RPM 54 tristate "RPM over SMD based Clock Controller" 55 depends on QCOM_SMD_RPM 56 select QCOM_RPMCC 57 help 58 The RPM (Resource Power Manager) is a dedicated hardware engine for 59 managing the shared SoC resources in order to keep the lowest power 60 profile. It communicates with other hardware subsystems via shared 61 memory and accepts clock requests, aggregates the requests and turns 62 the clocks on/off or scales them on demand. 63 Say Y if you want to support the clocks exposed by the RPM on 64 platforms such as apq8016, apq8084, msm8974 etc. 65 66config QCOM_CLK_RPMH 67 tristate "RPMh Clock Driver" 68 depends on QCOM_RPMH 69 help 70 RPMh manages shared resources on some Qualcomm Technologies, Inc. 71 SoCs. It accepts requests from other hardware subsystems via RSC. 72 Say Y if you want to support the clocks exposed by RPMh on 73 platforms such as SDM845. 74 75config APQ_GCC_8084 76 tristate "APQ8084 Global Clock Controller" 77 select QCOM_GDSC 78 help 79 Support for the global clock controller on apq8084 devices. 80 Say Y if you want to use peripheral devices such as UART, SPI, 81 i2c, USB, SD/eMMC, SATA, PCIe, etc. 82 83config APQ_MMCC_8084 84 tristate "APQ8084 Multimedia Clock Controller" 85 select APQ_GCC_8084 86 select QCOM_GDSC 87 help 88 Support for the multimedia clock controller on apq8084 devices. 89 Say Y if you want to support multimedia devices such as display, 90 graphics, video encode/decode, camera, etc. 91 92config IPQ_GCC_4019 93 tristate "IPQ4019 Global Clock Controller" 94 help 95 Support for the global clock controller on ipq4019 devices. 96 Say Y if you want to use peripheral devices such as UART, SPI, 97 i2c, USB, SD/eMMC, etc. 98 99config IPQ_GCC_6018 100 tristate "IPQ6018 Global Clock Controller" 101 help 102 Support for global clock controller on ipq6018 devices. 103 Say Y if you want to use peripheral devices such as UART, SPI, 104 i2c, USB, SD/eMMC, etc. Select this for the root clock 105 of ipq6018. 106 107config IPQ_GCC_806X 108 tristate "IPQ806x Global Clock Controller" 109 help 110 Support for the global clock controller on ipq806x devices. 111 Say Y if you want to use peripheral devices such as UART, SPI, 112 i2c, USB, SD/eMMC, etc. 113 114config IPQ_LCC_806X 115 tristate "IPQ806x LPASS Clock Controller" 116 select IPQ_GCC_806X 117 help 118 Support for the LPASS clock controller on ipq806x devices. 119 Say Y if you want to use audio devices such as i2s, pcm, 120 S/PDIF, etc. 121 122config IPQ_GCC_8074 123 tristate "IPQ8074 Global Clock Controller" 124 help 125 Support for global clock controller on ipq8074 devices. 126 Say Y if you want to use peripheral devices such as UART, SPI, 127 i2c, USB, SD/eMMC, etc. Select this for the root clock 128 of ipq8074. 129 130config MSM_GCC_8660 131 tristate "MSM8660 Global Clock Controller" 132 help 133 Support for the global clock controller on msm8660 devices. 134 Say Y if you want to use peripheral devices such as UART, SPI, 135 i2c, USB, SD/eMMC, etc. 136 137config MSM_GCC_8916 138 tristate "MSM8916 Global Clock Controller" 139 select QCOM_GDSC 140 help 141 Support for the global clock controller on msm8916 devices. 142 Say Y if you want to use devices such as UART, SPI i2c, USB, 143 SD/eMMC, display, graphics, camera etc. 144 145config MSM_GCC_8960 146 tristate "APQ8064/MSM8960 Global Clock Controller" 147 help 148 Support for the global clock controller on apq8064/msm8960 devices. 149 Say Y if you want to use peripheral devices such as UART, SPI, 150 i2c, USB, SD/eMMC, SATA, PCIe, etc. 151 152config MSM_LCC_8960 153 tristate "APQ8064/MSM8960 LPASS Clock Controller" 154 select MSM_GCC_8960 155 help 156 Support for the LPASS clock controller on apq8064/msm8960 devices. 157 Say Y if you want to use audio devices such as i2s, pcm, 158 SLIMBus, etc. 159 160config MDM_GCC_9615 161 tristate "MDM9615 Global Clock Controller" 162 help 163 Support for the global clock controller on mdm9615 devices. 164 Say Y if you want to use peripheral devices such as UART, SPI, 165 i2c, USB, SD/eMMC, etc. 166 167config MDM_LCC_9615 168 tristate "MDM9615 LPASS Clock Controller" 169 select MDM_GCC_9615 170 help 171 Support for the LPASS clock controller on mdm9615 devices. 172 Say Y if you want to use audio devices such as i2s, pcm, 173 SLIMBus, etc. 174 175config MSM_MMCC_8960 176 tristate "MSM8960 Multimedia Clock Controller" 177 select MSM_GCC_8960 178 help 179 Support for the multimedia clock controller on msm8960 devices. 180 Say Y if you want to support multimedia devices such as display, 181 graphics, video encode/decode, camera, etc. 182 183config MSM_GCC_8974 184 tristate "MSM8974 Global Clock Controller" 185 select QCOM_GDSC 186 help 187 Support for the global clock controller on msm8974 devices. 188 Say Y if you want to use peripheral devices such as UART, SPI, 189 i2c, USB, SD/eMMC, SATA, PCIe, etc. 190 191config MSM_MMCC_8974 192 tristate "MSM8974 Multimedia Clock Controller" 193 select MSM_GCC_8974 194 select QCOM_GDSC 195 help 196 Support for the multimedia clock controller on msm8974 devices. 197 Say Y if you want to support multimedia devices such as display, 198 graphics, video encode/decode, camera, etc. 199 200config MSM_GCC_8994 201 tristate "MSM8994 Global Clock Controller" 202 help 203 Support for the global clock controller on msm8994 devices. 204 Say Y if you want to use peripheral devices such as UART, SPI, 205 i2c, USB, UFS, SD/eMMC, PCIe, etc. 206 207config MSM_GCC_8996 208 tristate "MSM8996 Global Clock Controller" 209 select QCOM_GDSC 210 help 211 Support for the global clock controller on msm8996 devices. 212 Say Y if you want to use peripheral devices such as UART, SPI, 213 i2c, USB, UFS, SD/eMMC, PCIe, etc. 214 215config MSM_MMCC_8996 216 tristate "MSM8996 Multimedia Clock Controller" 217 select MSM_GCC_8996 218 select QCOM_GDSC 219 help 220 Support for the multimedia clock controller on msm8996 devices. 221 Say Y if you want to support multimedia devices such as display, 222 graphics, video encode/decode, camera, etc. 223 224config MSM_GCC_8998 225 tristate "MSM8998 Global Clock Controller" 226 select QCOM_GDSC 227 help 228 Support for the global clock controller on msm8998 devices. 229 Say Y if you want to use peripheral devices such as UART, SPI, 230 i2c, USB, UFS, SD/eMMC, PCIe, etc. 231 232config MSM_GPUCC_8998 233 tristate "MSM8998 Graphics Clock Controller" 234 select MSM_GCC_8998 235 select QCOM_GDSC 236 help 237 Support for the graphics clock controller on MSM8998 devices. 238 Say Y if you want to support graphics controller devices and 239 functionality such as 3D graphics. 240 241config MSM_MMCC_8998 242 tristate "MSM8998 Multimedia Clock Controller" 243 select MSM_GCC_8998 244 select QCOM_GDSC 245 help 246 Support for the multimedia clock controller on msm8998 devices. 247 Say Y if you want to support multimedia devices such as display, 248 graphics, video encode/decode, camera, etc. 249 250config QCS_GCC_404 251 tristate "QCS404 Global Clock Controller" 252 help 253 Support for the global clock controller on QCS404 devices. 254 Say Y if you want to use multimedia devices or peripheral 255 devices such as UART, SPI, I2C, USB, SD/eMMC, PCIe etc. 256 257config SC_DISPCC_7180 258 tristate "SC7180 Display Clock Controller" 259 select SC_GCC_7180 260 help 261 Support for the display clock controller on Qualcomm Technologies, Inc 262 SC7180 devices. 263 Say Y if you want to support display devices and functionality such as 264 splash screen. 265 266config SC_GCC_7180 267 tristate "SC7180 Global Clock Controller" 268 select QCOM_GDSC 269 depends on COMMON_CLK_QCOM 270 help 271 Support for the global clock controller on SC7180 devices. 272 Say Y if you want to use peripheral devices such as UART, SPI, 273 I2C, USB, UFS, SDCC, etc. 274 275config SC_GPUCC_7180 276 tristate "SC7180 Graphics Clock Controller" 277 select SC_GCC_7180 278 help 279 Support for the graphics clock controller on SC7180 devices. 280 Say Y if you want to support graphics controller devices and 281 functionality such as 3D graphics. 282 283config SC_MSS_7180 284 tristate "SC7180 Modem Clock Controller" 285 select SC_GCC_7180 286 help 287 Support for the Modem Subsystem clock controller on Qualcomm 288 Technologies, Inc on SC7180 devices. 289 Say Y if you want to use the Modem branch clocks of the Modem 290 subsystem clock controller to reset the MSS subsystem. 291 292config SC_VIDEOCC_7180 293 tristate "SC7180 Video Clock Controller" 294 select SC_GCC_7180 295 help 296 Support for the video clock controller on SC7180 devices. 297 Say Y if you want to support video devices and functionality such as 298 video encode and decode. 299 300config SDM_CAMCC_845 301 tristate "SDM845 Camera Clock Controller" 302 select SDM_GCC_845 303 help 304 Support for the camera clock controller on SDM845 devices. 305 Say Y if you want to support camera devices and camera functionality. 306 307config SDM_GCC_660 308 tristate "SDM660 Global Clock Controller" 309 select QCOM_GDSC 310 help 311 Support for the global clock controller on SDM660 devices. 312 Say Y if you want to use peripheral devices such as UART, SPI, 313 i2C, USB, UFS, SDDC, PCIe, etc. 314 315config QCS_TURING_404 316 tristate "QCS404 Turing Clock Controller" 317 help 318 Support for the Turing Clock Controller on QCS404, provides clocks 319 and resets for the Turing subsystem. 320 321config QCS_Q6SSTOP_404 322 tristate "QCS404 Q6SSTOP Clock Controller" 323 select QCS_GCC_404 324 help 325 Support for the Q6SSTOP clock controller on QCS404 devices. 326 Say Y if you want to use the Q6SSTOP branch clocks of the WCSS clock 327 controller to reset the Q6SSTOP subsystem. 328 329config SDM_GCC_845 330 tristate "SDM845 Global Clock Controller" 331 select QCOM_GDSC 332 help 333 Support for the global clock controller on SDM845 devices. 334 Say Y if you want to use peripheral devices such as UART, SPI, 335 i2C, USB, UFS, SDDC, PCIe, etc. 336 337config SDM_GPUCC_845 338 tristate "SDM845 Graphics Clock Controller" 339 select SDM_GCC_845 340 help 341 Support for the graphics clock controller on SDM845 devices. 342 Say Y if you want to support graphics controller devices and 343 functionality such as 3D graphics. 344 345config SDM_VIDEOCC_845 346 tristate "SDM845 Video Clock Controller" 347 select SDM_GCC_845 348 select QCOM_GDSC 349 help 350 Support for the video clock controller on SDM845 devices. 351 Say Y if you want to support video devices and functionality such as 352 video encode and decode. 353 354config SDM_DISPCC_845 355 tristate "SDM845 Display Clock Controller" 356 select SDM_GCC_845 357 help 358 Support for the display clock controller on Qualcomm Technologies, Inc 359 SDM845 devices. 360 Say Y if you want to support display devices and functionality such as 361 splash screen. 362 363config SDM_LPASSCC_845 364 tristate "SDM845 Low Power Audio Subsystem (LPAAS) Clock Controller" 365 select SDM_GCC_845 366 help 367 Support for the LPASS clock controller on SDM845 devices. 368 Say Y if you want to use the LPASS branch clocks of the LPASS clock 369 controller to reset the LPASS subsystem. 370 371config SM_GCC_8150 372 tristate "SM8150 Global Clock Controller" 373 help 374 Support for the global clock controller on SM8150 devices. 375 Say Y if you want to use peripheral devices such as UART, 376 SPI, I2C, USB, SD/UFS, PCIe etc. 377 378config SM_GCC_8250 379 tristate "SM8250 Global Clock Controller" 380 select QCOM_GDSC 381 help 382 Support for the global clock controller on SM8250 devices. 383 Say Y if you want to use peripheral devices such as UART, 384 SPI, I2C, USB, SD/UFS, PCIe etc. 385 386config SPMI_PMIC_CLKDIV 387 tristate "SPMI PMIC clkdiv Support" 388 depends on SPMI || COMPILE_TEST 389 help 390 This driver supports the clkdiv functionality on the Qualcomm 391 Technologies, Inc. SPMI PMIC. It configures the frequency of 392 clkdiv outputs of the PMIC. These clocks are typically wired 393 through alternate functions on GPIO pins. 394 395config QCOM_HFPLL 396 tristate "High-Frequency PLL (HFPLL) Clock Controller" 397 help 398 Support for the high-frequency PLLs present on Qualcomm devices. 399 Say Y if you want to support CPU frequency scaling on devices 400 such as MSM8974, APQ8084, etc. 401 402config KPSS_XCC 403 tristate "KPSS Clock Controller" 404 help 405 Support for the Krait ACC and GCC clock controllers. Say Y 406 if you want to support CPU frequency scaling on devices such 407 as MSM8960, APQ8064, etc. 408 409config KRAITCC 410 tristate "Krait Clock Controller" 411 depends on ARM 412 select KRAIT_CLOCKS 413 help 414 Support for the Krait CPU clocks on Qualcomm devices. 415 Say Y if you want to support CPU frequency scaling. 416 417endif 418