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