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