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 dynamic 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_CAMCC_7180 294 tristate "SC7180 Camera Clock Controller" 295 select SC_GCC_7180 296 help 297 Support for the camera clock controller on Qualcomm Technologies, Inc 298 SC7180 devices. 299 Say Y if you want to support camera devices and functionality such as 300 capturing pictures. 301 302config SC_DISPCC_7180 303 tristate "SC7180 Display Clock Controller" 304 select SC_GCC_7180 305 help 306 Support for the display clock controller on Qualcomm Technologies, Inc 307 SC7180 devices. 308 Say Y if you want to support display devices and functionality such as 309 splash screen. 310 311config SC_GCC_7180 312 tristate "SC7180 Global Clock Controller" 313 select QCOM_GDSC 314 depends on COMMON_CLK_QCOM 315 help 316 Support for the global clock controller on SC7180 devices. 317 Say Y if you want to use peripheral devices such as UART, SPI, 318 I2C, USB, UFS, SDCC, etc. 319 320config SC_LPASS_CORECC_7180 321 tristate "SC7180 LPASS Core Clock Controller" 322 select SC_GCC_7180 323 help 324 Support for the LPASS(Low Power Audio Subsystem) core clock controller 325 on SC7180 devices. 326 Say Y if you want to use LPASS clocks and power domains of the LPASS 327 core clock controller. 328 329config SC_GPUCC_7180 330 tristate "SC7180 Graphics Clock Controller" 331 select SC_GCC_7180 332 help 333 Support for the graphics clock controller on SC7180 devices. 334 Say Y if you want to support graphics controller devices and 335 functionality such as 3D graphics. 336 337config SC_MSS_7180 338 tristate "SC7180 Modem Clock Controller" 339 select SC_GCC_7180 340 help 341 Support for the Modem Subsystem clock controller on Qualcomm 342 Technologies, Inc on SC7180 devices. 343 Say Y if you want to use the Modem branch clocks of the Modem 344 subsystem clock controller to reset the MSS subsystem. 345 346config SC_VIDEOCC_7180 347 tristate "SC7180 Video Clock Controller" 348 select SC_GCC_7180 349 help 350 Support for the video clock controller on SC7180 devices. 351 Say Y if you want to support video devices and functionality such as 352 video encode and decode. 353 354config SDM_CAMCC_845 355 tristate "SDM845 Camera Clock Controller" 356 select SDM_GCC_845 357 help 358 Support for the camera clock controller on SDM845 devices. 359 Say Y if you want to support camera devices and camera functionality. 360 361config SDM_GCC_660 362 tristate "SDM660 Global Clock Controller" 363 select QCOM_GDSC 364 help 365 Support for the global clock controller on SDM660 devices. 366 Say Y if you want to use peripheral devices such as UART, SPI, 367 i2C, USB, UFS, SDDC, PCIe, etc. 368 369config QCS_TURING_404 370 tristate "QCS404 Turing Clock Controller" 371 help 372 Support for the Turing Clock Controller on QCS404, provides clocks 373 and resets for the Turing subsystem. 374 375config QCS_Q6SSTOP_404 376 tristate "QCS404 Q6SSTOP Clock Controller" 377 select QCS_GCC_404 378 help 379 Support for the Q6SSTOP clock controller on QCS404 devices. 380 Say Y if you want to use the Q6SSTOP branch clocks of the WCSS clock 381 controller to reset the Q6SSTOP subsystem. 382 383config SDM_GCC_845 384 tristate "SDM845 Global Clock Controller" 385 select QCOM_GDSC 386 help 387 Support for the global clock controller on SDM845 devices. 388 Say Y if you want to use peripheral devices such as UART, SPI, 389 i2C, USB, UFS, SDDC, PCIe, etc. 390 391config SDM_GPUCC_845 392 tristate "SDM845 Graphics Clock Controller" 393 select SDM_GCC_845 394 help 395 Support for the graphics clock controller on SDM845 devices. 396 Say Y if you want to support graphics controller devices and 397 functionality such as 3D graphics. 398 399config SDM_VIDEOCC_845 400 tristate "SDM845 Video Clock Controller" 401 select SDM_GCC_845 402 select QCOM_GDSC 403 help 404 Support for the video clock controller on SDM845 devices. 405 Say Y if you want to support video devices and functionality such as 406 video encode and decode. 407 408config SDM_DISPCC_845 409 tristate "SDM845 Display Clock Controller" 410 select SDM_GCC_845 411 help 412 Support for the display clock controller on Qualcomm Technologies, Inc 413 SDM845 devices. 414 Say Y if you want to support display devices and functionality such as 415 splash screen. 416 417config SDM_LPASSCC_845 418 tristate "SDM845 Low Power Audio Subsystem (LPAAS) Clock Controller" 419 select SDM_GCC_845 420 help 421 Support for the LPASS clock controller on SDM845 devices. 422 Say Y if you want to use the LPASS branch clocks of the LPASS clock 423 controller to reset the LPASS subsystem. 424 425config SDX_GCC_55 426 tristate "SDX55 Global Clock Controller" 427 select QCOM_GDSC 428 help 429 Support for the global clock controller on SDX55 devices. 430 Say Y if you want to use peripheral devices such as UART, 431 SPI, I2C, USB, SD/UFS, PCIe etc. 432 433config SM_DISPCC_8250 434 tristate "SM8150 and SM8250 Display Clock Controller" 435 depends on SM_GCC_8150 || SM_GCC_8250 436 help 437 Support for the display clock controller on Qualcomm Technologies, Inc 438 SM8150 and SM8250 devices. 439 Say Y if you want to support display devices and functionality such as 440 splash screen. 441 442config SM_GCC_8150 443 tristate "SM8150 Global Clock Controller" 444 help 445 Support for the global clock controller on SM8150 devices. 446 Say Y if you want to use peripheral devices such as UART, 447 SPI, I2C, USB, SD/UFS, PCIe etc. 448 449config SM_GCC_8250 450 tristate "SM8250 Global Clock Controller" 451 select QCOM_GDSC 452 help 453 Support for the global clock controller on SM8250 devices. 454 Say Y if you want to use peripheral devices such as UART, 455 SPI, I2C, USB, SD/UFS, PCIe etc. 456 457config SM_GPUCC_8150 458 tristate "SM8150 Graphics Clock Controller" 459 select SM_GCC_8150 460 help 461 Support for the graphics clock controller on SM8150 devices. 462 Say Y if you want to support graphics controller devices and 463 functionality such as 3D graphics. 464 465config SM_GPUCC_8250 466 tristate "SM8250 Graphics Clock Controller" 467 select SM_GCC_8250 468 help 469 Support for the graphics clock controller on SM8250 devices. 470 Say Y if you want to support graphics controller devices and 471 functionality such as 3D graphics. 472 473config SM_VIDEOCC_8150 474 tristate "SM8150 Video Clock Controller" 475 select SDM_GCC_8150 476 select QCOM_GDSC 477 help 478 Support for the video clock controller on SM8150 devices. 479 Say Y if you want to support video devices and functionality such as 480 video encode and decode. 481 482config SM_VIDEOCC_8250 483 tristate "SM8250 Video Clock Controller" 484 select SDM_GCC_8250 485 select QCOM_GDSC 486 help 487 Support for the video clock controller on SM8250 devices. 488 Say Y if you want to support video devices and functionality such as 489 video encode and decode. 490 491config SPMI_PMIC_CLKDIV 492 tristate "SPMI PMIC clkdiv Support" 493 depends on SPMI || COMPILE_TEST 494 help 495 This driver supports the clkdiv functionality on the Qualcomm 496 Technologies, Inc. SPMI PMIC. It configures the frequency of 497 clkdiv outputs of the PMIC. These clocks are typically wired 498 through alternate functions on GPIO pins. 499 500config QCOM_HFPLL 501 tristate "High-Frequency PLL (HFPLL) Clock Controller" 502 help 503 Support for the high-frequency PLLs present on Qualcomm devices. 504 Say Y if you want to support CPU frequency scaling on devices 505 such as MSM8974, APQ8084, etc. 506 507config KPSS_XCC 508 tristate "KPSS Clock Controller" 509 help 510 Support for the Krait ACC and GCC clock controllers. Say Y 511 if you want to support CPU frequency scaling on devices such 512 as MSM8960, APQ8064, etc. 513 514config KRAITCC 515 tristate "Krait Clock Controller" 516 depends on ARM 517 select KRAIT_CLOCKS 518 help 519 Support for the Krait CPU clocks on Qualcomm devices. 520 Say Y if you want to support CPU frequency scaling. 521 522config CLK_GFM_LPASS_SM8250 523 tristate "SM8250 GFM LPASS Clocks" 524 help 525 Support for the Glitch Free Mux (GFM) Low power audio 526 subsystem (LPASS) clocks found on SM8250 SoCs. 527 528endif 529