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_9607 214 tristate "MDM9607 Global Clock Controller" 215 help 216 Support for the global clock controller on mdm9607 devices. 217 Say Y if you want to use peripheral devices such as UART, SPI, 218 I2C, USB, SD/eMMC, etc. 219 220config MDM_GCC_9615 221 tristate "MDM9615 Global Clock Controller" 222 help 223 Support for the global clock controller on mdm9615 devices. 224 Say Y if you want to use peripheral devices such as UART, SPI, 225 i2c, USB, SD/eMMC, etc. 226 227config MDM_LCC_9615 228 tristate "MDM9615 LPASS Clock Controller" 229 select MDM_GCC_9615 230 help 231 Support for the LPASS clock controller on mdm9615 devices. 232 Say Y if you want to use audio devices such as i2s, pcm, 233 SLIMBus, etc. 234 235config MSM_MMCC_8960 236 tristate "MSM8960 Multimedia Clock Controller" 237 select MSM_GCC_8960 238 help 239 Support for the multimedia clock controller on msm8960 devices. 240 Say Y if you want to support multimedia devices such as display, 241 graphics, video encode/decode, camera, etc. 242 243config MSM_GCC_8974 244 tristate "MSM8974 Global Clock Controller" 245 select QCOM_GDSC 246 help 247 Support for the global clock controller on msm8974 devices. 248 Say Y if you want to use peripheral devices such as UART, SPI, 249 i2c, USB, SD/eMMC, SATA, PCIe, etc. 250 251config MSM_MMCC_8974 252 tristate "MSM8974 Multimedia Clock Controller" 253 select MSM_GCC_8974 254 select QCOM_GDSC 255 help 256 Support for the multimedia clock controller on msm8974 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_8994 261 tristate "MSM8994 Global Clock Controller" 262 help 263 Support for the global clock controller on msm8994 devices. 264 Say Y if you want to use peripheral devices such as UART, SPI, 265 i2c, USB, UFS, SD/eMMC, PCIe, etc. 266 267config MSM_GCC_8996 268 tristate "MSM8996 Global Clock Controller" 269 select QCOM_GDSC 270 help 271 Support for the global clock controller on msm8996 devices. 272 Say Y if you want to use peripheral devices such as UART, SPI, 273 i2c, USB, UFS, SD/eMMC, PCIe, etc. 274 275config MSM_MMCC_8996 276 tristate "MSM8996 Multimedia Clock Controller" 277 select MSM_GCC_8996 278 select QCOM_GDSC 279 help 280 Support for the multimedia clock controller on msm8996 devices. 281 Say Y if you want to support multimedia devices such as display, 282 graphics, video encode/decode, camera, etc. 283 284config MSM_GCC_8998 285 tristate "MSM8998 Global Clock Controller" 286 select QCOM_GDSC 287 help 288 Support for the global clock controller on msm8998 devices. 289 Say Y if you want to use peripheral devices such as UART, SPI, 290 i2c, USB, UFS, SD/eMMC, PCIe, etc. 291 292config MSM_GPUCC_8998 293 tristate "MSM8998 Graphics Clock Controller" 294 select MSM_GCC_8998 295 select QCOM_GDSC 296 help 297 Support for the graphics clock controller on MSM8998 devices. 298 Say Y if you want to support graphics controller devices and 299 functionality such as 3D graphics. 300 301config MSM_MMCC_8998 302 tristate "MSM8998 Multimedia Clock Controller" 303 select MSM_GCC_8998 304 select QCOM_GDSC 305 help 306 Support for the multimedia clock controller on msm8998 devices. 307 Say Y if you want to support multimedia devices such as display, 308 graphics, video encode/decode, camera, etc. 309 310config QCS_GCC_404 311 tristate "QCS404 Global Clock Controller" 312 help 313 Support for the global clock controller on QCS404 devices. 314 Say Y if you want to use multimedia devices or peripheral 315 devices such as UART, SPI, I2C, USB, SD/eMMC, PCIe etc. 316 317config SC_CAMCC_7180 318 tristate "SC7180 Camera Clock Controller" 319 select SC_GCC_7180 320 help 321 Support for the camera clock controller on Qualcomm Technologies, Inc 322 SC7180 devices. 323 Say Y if you want to support camera devices and functionality such as 324 capturing pictures. 325 326config SC_DISPCC_7180 327 tristate "SC7180 Display Clock Controller" 328 select SC_GCC_7180 329 help 330 Support for the display clock controller on Qualcomm Technologies, Inc 331 SC7180 devices. 332 Say Y if you want to support display devices and functionality such as 333 splash screen. 334 335config SC_GCC_7180 336 tristate "SC7180 Global Clock Controller" 337 select QCOM_GDSC 338 depends on COMMON_CLK_QCOM 339 help 340 Support for the global clock controller on SC7180 devices. 341 Say Y if you want to use peripheral devices such as UART, SPI, 342 I2C, USB, UFS, SDCC, etc. 343 344config SC_GCC_7280 345 tristate "SC7280 Global Clock Controller" 346 select QCOM_GDSC 347 depends on COMMON_CLK_QCOM 348 help 349 Support for the global clock controller on SC7280 devices. 350 Say Y if you want to use peripheral devices such as UART, SPI, 351 I2C, USB, UFS, SDCC, PCIe etc. 352 353config SC_GCC_8180X 354 tristate "SC8180X Global Clock Controller" 355 select QCOM_GDSC 356 depends on COMMON_CLK_QCOM 357 help 358 Support for the global clock controller on SC8180X devices. 359 Say Y if you want to use peripheral devices such as UART, SPI, 360 I2C, USB, UFS, SDCC, etc. 361 362config SC_LPASS_CORECC_7180 363 tristate "SC7180 LPASS Core Clock Controller" 364 select SC_GCC_7180 365 help 366 Support for the LPASS(Low Power Audio Subsystem) core clock controller 367 on SC7180 devices. 368 Say Y if you want to use LPASS clocks and power domains of the LPASS 369 core clock controller. 370 371config SC_GPUCC_7180 372 tristate "SC7180 Graphics Clock Controller" 373 select SC_GCC_7180 374 help 375 Support for the graphics clock controller on SC7180 devices. 376 Say Y if you want to support graphics controller devices and 377 functionality such as 3D graphics. 378 379config SC_MSS_7180 380 tristate "SC7180 Modem Clock Controller" 381 select SC_GCC_7180 382 help 383 Support for the Modem Subsystem clock controller on Qualcomm 384 Technologies, Inc on SC7180 devices. 385 Say Y if you want to use the Modem branch clocks of the Modem 386 subsystem clock controller to reset the MSS subsystem. 387 388config SC_VIDEOCC_7180 389 tristate "SC7180 Video Clock Controller" 390 select SC_GCC_7180 391 help 392 Support for the video clock controller on SC7180 devices. 393 Say Y if you want to support video devices and functionality such as 394 video encode and decode. 395 396config SDM_CAMCC_845 397 tristate "SDM845 Camera Clock Controller" 398 select SDM_GCC_845 399 help 400 Support for the camera clock controller on SDM845 devices. 401 Say Y if you want to support camera devices and camera functionality. 402 403config SDM_GCC_660 404 tristate "SDM660 Global Clock Controller" 405 select QCOM_GDSC 406 help 407 Support for the global clock controller on SDM660 devices. 408 Say Y if you want to use peripheral devices such as UART, SPI, 409 i2C, USB, UFS, SDDC, PCIe, etc. 410 411config SDM_MMCC_660 412 tristate "SDM660 Multimedia Clock Controller" 413 select SDM_GCC_660 414 select QCOM_GDSC 415 help 416 Support for the multimedia clock controller on SDM660 devices. 417 Say Y if you want to support multimedia devices such as display, 418 graphics, video encode/decode, camera, etc. 419 420config SDM_GPUCC_660 421 tristate "SDM660 Graphics Clock Controller" 422 select SDM_GCC_660 423 select QCOM_GDSC 424 help 425 Support for the graphics clock controller on SDM630/636/660 devices. 426 Say Y if you want to support graphics controller devices and 427 functionality such as 3D graphics 428 429config QCS_TURING_404 430 tristate "QCS404 Turing Clock Controller" 431 help 432 Support for the Turing Clock Controller on QCS404, provides clocks 433 and resets for the Turing subsystem. 434 435config QCS_Q6SSTOP_404 436 tristate "QCS404 Q6SSTOP Clock Controller" 437 select QCS_GCC_404 438 help 439 Support for the Q6SSTOP clock controller on QCS404 devices. 440 Say Y if you want to use the Q6SSTOP branch clocks of the WCSS clock 441 controller to reset the Q6SSTOP subsystem. 442 443config SDM_GCC_845 444 tristate "SDM845 Global Clock Controller" 445 select QCOM_GDSC 446 help 447 Support for the global clock controller on SDM845 devices. 448 Say Y if you want to use peripheral devices such as UART, SPI, 449 i2C, USB, UFS, SDDC, PCIe, etc. 450 451config SDM_GPUCC_845 452 tristate "SDM845 Graphics Clock Controller" 453 select SDM_GCC_845 454 help 455 Support for the graphics clock controller on SDM845 devices. 456 Say Y if you want to support graphics controller devices and 457 functionality such as 3D graphics. 458 459config SDM_VIDEOCC_845 460 tristate "SDM845 Video Clock Controller" 461 select SDM_GCC_845 462 select QCOM_GDSC 463 help 464 Support for the video clock controller on SDM845 devices. 465 Say Y if you want to support video devices and functionality such as 466 video encode and decode. 467 468config SDM_DISPCC_845 469 tristate "SDM845 Display Clock Controller" 470 select SDM_GCC_845 471 help 472 Support for the display clock controller on Qualcomm Technologies, Inc 473 SDM845 devices. 474 Say Y if you want to support display devices and functionality such as 475 splash screen. 476 477config SDM_LPASSCC_845 478 tristate "SDM845 Low Power Audio Subsystem (LPAAS) Clock Controller" 479 select SDM_GCC_845 480 help 481 Support for the LPASS clock controller on SDM845 devices. 482 Say Y if you want to use the LPASS branch clocks of the LPASS clock 483 controller to reset the LPASS subsystem. 484 485config SDX_GCC_55 486 tristate "SDX55 Global Clock Controller" 487 select QCOM_GDSC 488 help 489 Support for the global clock controller on SDX55 devices. 490 Say Y if you want to use peripheral devices such as UART, 491 SPI, I2C, USB, SD/UFS, PCIe etc. 492 493config SM_CAMCC_8250 494 tristate "SM8250 Camera Clock Controller" 495 select SM_GCC_8250 496 help 497 Support for the camera clock controller on SM8250 devices. 498 Say Y if you want to support camera devices and camera functionality. 499 500config SM_DISPCC_8250 501 tristate "SM8150 and SM8250 Display Clock Controller" 502 depends on SM_GCC_8150 || SM_GCC_8250 503 help 504 Support for the display clock controller on Qualcomm Technologies, Inc 505 SM8150 and SM8250 devices. 506 Say Y if you want to support display devices and functionality such as 507 splash screen. 508 509config SM_GCC_6125 510 tristate "SM6125 Global Clock Controller" 511 help 512 Support for the global clock controller on SM6125 devices. 513 Say Y if you want to use peripheral devices such as UART, 514 SPI, I2C, USB, SD/UFS, PCIe etc. 515 516config SM_GCC_8150 517 tristate "SM8150 Global Clock Controller" 518 help 519 Support for the global clock controller on SM8150 devices. 520 Say Y if you want to use peripheral devices such as UART, 521 SPI, I2C, USB, SD/UFS, PCIe etc. 522 523config SM_GCC_8250 524 tristate "SM8250 Global Clock Controller" 525 select QCOM_GDSC 526 help 527 Support for the global clock controller on SM8250 devices. 528 Say Y if you want to use peripheral devices such as UART, 529 SPI, I2C, USB, SD/UFS, PCIe etc. 530 531config SM_GCC_8350 532 tristate "SM8350 Global Clock Controller" 533 select QCOM_GDSC 534 help 535 Support for the global clock controller on SM8350 devices. 536 Say Y if you want to use peripheral devices such as UART, 537 SPI, I2C, USB, SD/UFS, PCIe etc. 538 539config SM_GPUCC_8150 540 tristate "SM8150 Graphics Clock Controller" 541 select SM_GCC_8150 542 help 543 Support for the graphics clock controller on SM8150 devices. 544 Say Y if you want to support graphics controller devices and 545 functionality such as 3D graphics. 546 547config SM_GPUCC_8250 548 tristate "SM8250 Graphics Clock Controller" 549 select SM_GCC_8250 550 help 551 Support for the graphics clock controller on SM8250 devices. 552 Say Y if you want to support graphics controller devices and 553 functionality such as 3D graphics. 554 555config SM_VIDEOCC_8150 556 tristate "SM8150 Video Clock Controller" 557 select SDM_GCC_8150 558 select QCOM_GDSC 559 help 560 Support for the video clock controller on SM8150 devices. 561 Say Y if you want to support video devices and functionality such as 562 video encode and decode. 563 564config SM_VIDEOCC_8250 565 tristate "SM8250 Video Clock Controller" 566 select SDM_GCC_8250 567 select QCOM_GDSC 568 help 569 Support for the video clock controller on SM8250 devices. 570 Say Y if you want to support video devices and functionality such as 571 video encode and decode. 572 573config SPMI_PMIC_CLKDIV 574 tristate "SPMI PMIC clkdiv Support" 575 depends on SPMI || COMPILE_TEST 576 help 577 This driver supports the clkdiv functionality on the Qualcomm 578 Technologies, Inc. SPMI PMIC. It configures the frequency of 579 clkdiv outputs of the PMIC. These clocks are typically wired 580 through alternate functions on GPIO pins. 581 582config QCOM_HFPLL 583 tristate "High-Frequency PLL (HFPLL) Clock Controller" 584 help 585 Support for the high-frequency PLLs present on Qualcomm devices. 586 Say Y if you want to support CPU frequency scaling on devices 587 such as MSM8974, APQ8084, etc. 588 589config KPSS_XCC 590 tristate "KPSS Clock Controller" 591 help 592 Support for the Krait ACC and GCC clock controllers. Say Y 593 if you want to support CPU frequency scaling on devices such 594 as MSM8960, APQ8064, etc. 595 596config KRAITCC 597 tristate "Krait Clock Controller" 598 depends on ARM 599 select KRAIT_CLOCKS 600 help 601 Support for the Krait CPU clocks on Qualcomm devices. 602 Say Y if you want to support CPU frequency scaling. 603 604config CLK_GFM_LPASS_SM8250 605 tristate "SM8250 GFM LPASS Clocks" 606 help 607 Support for the Glitch Free Mux (GFM) Low power audio 608 subsystem (LPASS) clocks found on SM8250 SoCs. 609 610endif 611