1 # SPDX-License-Identifier: GPL-2.0-only
4 select KRAIT_L2_ACCESSORS
8 select PM_GENERIC_DOMAINS if PM
13 menuconfig COMMON_CLK_QCOM
14 tristate "Support for Qualcomm's clock controllers"
16 depends on ARCH_QCOM || COMPILE_TEST
19 select RESET_CONTROLLER
24 tristate "MSM8916 A53 PLL"
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
32 tristate "SDX55 A7 PLL"
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
39 config QCOM_CLK_APCS_MSM8916
40 tristate "MSM8916 APCS Clock Controller"
41 depends on QCOM_APCS_IPC || COMPILE_TEST
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
48 config QCOM_CLK_APCC_MSM8996
49 tristate "MSM8996 CPU Clock Controller"
50 select QCOM_KRYO_L2_ACCESSORS
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.
57 config QCOM_CLK_APCS_SDX55
58 tristate "SDX55 APCS Clock Controller"
59 depends on QCOM_APCS_IPC || COMPILE_TEST
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
67 tristate "RPM based Clock Controller"
68 depends on MFD_QCOM_RPM
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.
79 config QCOM_CLK_SMD_RPM
80 tristate "RPM over SMD based Clock Controller"
81 depends on QCOM_SMD_RPM
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.
93 tristate "RPMh Clock Driver"
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.
102 tristate "APQ8084 Global Clock Controller"
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.
110 tristate "APQ8084 Multimedia Clock Controller"
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.
119 tristate "IPQ APSS PLL"
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
127 tristate "IPQ APSS Clock Controller"
129 depends on QCOM_APCS_IPC || COMPILE_TEST
131 Support for APSS clock controller on IPQ platforms. The
132 APSS clock controller manages the Mux and enable block that feeds the
134 Say Y if you want to support CPU frequency scaling on
138 tristate "IPQ4019 Global Clock Controller"
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.
145 tristate "IPQ6018 Global Clock Controller"
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
153 tristate "IPQ806x Global Clock Controller"
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.
160 tristate "IPQ806x LPASS Clock Controller"
163 Support for the LPASS clock controller on ipq806x devices.
164 Say Y if you want to use audio devices such as i2s, pcm,
168 tristate "IPQ8074 Global Clock Controller"
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
176 tristate "MSM8660 Global Clock Controller"
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.
183 tristate "MSM8916 Global Clock Controller"
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.
191 tristate "MSM8939 Global Clock Controller"
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.
199 tristate "APQ8064/MSM8960 Global Clock Controller"
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.
206 tristate "APQ8064/MSM8960 LPASS Clock Controller"
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,
214 tristate "MDM9607 Global Clock Controller"
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.
221 tristate "MDM9615 Global Clock Controller"
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.
228 tristate "MDM9615 LPASS Clock Controller"
231 Support for the LPASS clock controller on mdm9615 devices.
232 Say Y if you want to use audio devices such as i2s, pcm,
236 tristate "MSM8960 Multimedia Clock Controller"
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.
244 tristate "MSM8953 Global Clock Controller"
247 Support for the global clock controller on msm8953 devices.
248 Say Y if you want to use devices such as UART, SPI i2c, USB,
249 SD/eMMC, display, graphics, camera etc.
252 tristate "MSM8974 Global Clock Controller"
255 Support for the global clock controller on msm8974 devices.
256 Say Y if you want to use peripheral devices such as UART, SPI,
257 i2c, USB, SD/eMMC, SATA, PCIe, etc.
260 tristate "MSM8974 Multimedia Clock Controller"
264 Support for the multimedia clock controller on msm8974 devices.
265 Say Y if you want to support multimedia devices such as display,
266 graphics, video encode/decode, camera, etc.
269 tristate "MSM8994 Multimedia Clock Controller"
273 Support for the multimedia clock controller on msm8994 devices.
274 Say Y if you want to support multimedia devices such as display,
275 graphics, video encode/decode, camera, etc.
278 tristate "MSM8994 Global Clock Controller"
280 Support for the global clock controller on msm8994 devices.
281 Say Y if you want to use peripheral devices such as UART, SPI,
282 i2c, USB, UFS, SD/eMMC, PCIe, etc.
285 tristate "MSM8996 Global Clock Controller"
288 Support for the global clock controller on msm8996 devices.
289 Say Y if you want to use peripheral devices such as UART, SPI,
290 i2c, USB, UFS, SD/eMMC, PCIe, etc.
293 tristate "MSM8996 Multimedia Clock Controller"
297 Support for the multimedia clock controller on msm8996 devices.
298 Say Y if you want to support multimedia devices such as display,
299 graphics, video encode/decode, camera, etc.
302 tristate "MSM8998 Global Clock Controller"
305 Support for the global clock controller on msm8998 devices.
306 Say Y if you want to use peripheral devices such as UART, SPI,
307 i2c, USB, UFS, SD/eMMC, PCIe, etc.
309 config MSM_GPUCC_8998
310 tristate "MSM8998 Graphics Clock Controller"
314 Support for the graphics clock controller on MSM8998 devices.
315 Say Y if you want to support graphics controller devices and
316 functionality such as 3D graphics.
319 tristate "MSM8998 Multimedia Clock Controller"
323 Support for the multimedia clock controller on msm8998 devices.
324 Say Y if you want to support multimedia devices such as display,
325 graphics, video encode/decode, camera, etc.
328 tristate "QCM2290 Global Clock Controller"
331 Support for the global clock controller on QCM2290 devices.
332 Say Y if you want to use multimedia devices or peripheral
333 devices such as UART, SPI, I2C, USB, SD/eMMC etc.
336 tristate "QCS404 Global Clock Controller"
338 Support for the global clock controller on QCS404 devices.
339 Say Y if you want to use multimedia devices or peripheral
340 devices such as UART, SPI, I2C, USB, SD/eMMC, PCIe etc.
343 tristate "SC7180 Camera Clock Controller"
346 Support for the camera clock controller on Qualcomm Technologies, Inc
348 Say Y if you want to support camera devices and functionality such as
352 tristate "SC7280 Camera Clock Controller"
355 Support for the camera clock controller on Qualcomm Technologies, Inc
357 Say Y if you want to support camera devices and functionality such as
360 config SC_DISPCC_7180
361 tristate "SC7180 Display Clock Controller"
364 Support for the display clock controller on Qualcomm Technologies, Inc
366 Say Y if you want to support display devices and functionality such as
369 config SC_DISPCC_7280
370 tristate "SC7280 Display Clock Controller"
373 Support for the display clock controller on Qualcomm Technologies, Inc.
375 Say Y if you want to support display devices and functionality such as
379 tristate "SC7180 Global Clock Controller"
381 depends on COMMON_CLK_QCOM
383 Support for the global clock controller on SC7180 devices.
384 Say Y if you want to use peripheral devices such as UART, SPI,
385 I2C, USB, UFS, SDCC, etc.
388 tristate "SC7280 Global Clock Controller"
390 depends on COMMON_CLK_QCOM
392 Support for the global clock controller on SC7280 devices.
393 Say Y if you want to use peripheral devices such as UART, SPI,
394 I2C, USB, UFS, SDCC, PCIe etc.
397 tristate "SC8180X Global Clock Controller"
399 depends on COMMON_CLK_QCOM
401 Support for the global clock controller on SC8180X devices.
402 Say Y if you want to use peripheral devices such as UART, SPI,
403 I2C, USB, UFS, SDCC, etc.
406 tristate "SC7180 Graphics Clock Controller"
409 Support for the graphics clock controller on SC7180 devices.
410 Say Y if you want to support graphics controller devices and
411 functionality such as 3D graphics.
414 tristate "SC7280 Graphics Clock Controller"
417 Support for the graphics clock controller on SC7280 devices.
418 Say Y if you want to support graphics controller devices and
419 functionality such as 3D graphics.
421 config SC_LPASSCC_7280
422 tristate "SC7280 Low Power Audio Subsystem (LPASS) Clock Controller"
425 Support for the LPASS clock controller on SC7280 devices.
426 Say Y if you want to use the LPASS branch clocks of the LPASS clock
427 controller to reset the LPASS subsystem.
429 config SC_LPASS_CORECC_7180
430 tristate "SC7180 LPASS Core Clock Controller"
433 Support for the LPASS(Low Power Audio Subsystem) core clock controller
435 Say Y if you want to use LPASS clocks and power domains of the LPASS
436 core clock controller.
439 tristate "SC7180 Modem Clock Controller"
442 Support for the Modem Subsystem clock controller on Qualcomm
443 Technologies, Inc on SC7180 devices.
444 Say Y if you want to use the Modem branch clocks of the Modem
445 subsystem clock controller to reset the MSS subsystem.
447 config SC_VIDEOCC_7180
448 tristate "SC7180 Video Clock Controller"
451 Support for the video clock controller on SC7180 devices.
452 Say Y if you want to support video devices and functionality such as
453 video encode and decode.
455 config SC_VIDEOCC_7280
456 tristate "SC7280 Video Clock Controller"
459 Support for the video clock controller on SC7280 devices.
460 Say Y if you want to support video devices and functionality such as
461 video encode and decode.
464 tristate "SDM845 Camera Clock Controller"
467 Support for the camera clock controller on SDM845 devices.
468 Say Y if you want to support camera devices and camera functionality.
471 tristate "SDM660 Global Clock Controller"
474 Support for the global clock controller on SDM660 devices.
475 Say Y if you want to use peripheral devices such as UART, SPI,
476 i2C, USB, UFS, SDDC, PCIe, etc.
479 tristate "SDM660 Multimedia Clock Controller"
483 Support for the multimedia clock controller on SDM660 devices.
484 Say Y if you want to support multimedia devices such as display,
485 graphics, video encode/decode, camera, etc.
488 tristate "SDM660 Graphics Clock Controller"
492 Support for the graphics clock controller on SDM630/636/660 devices.
493 Say Y if you want to support graphics controller devices and
494 functionality such as 3D graphics
496 config QCS_TURING_404
497 tristate "QCS404 Turing Clock Controller"
499 Support for the Turing Clock Controller on QCS404, provides clocks
500 and resets for the Turing subsystem.
502 config QCS_Q6SSTOP_404
503 tristate "QCS404 Q6SSTOP Clock Controller"
506 Support for the Q6SSTOP clock controller on QCS404 devices.
507 Say Y if you want to use the Q6SSTOP branch clocks of the WCSS clock
508 controller to reset the Q6SSTOP subsystem.
511 tristate "SDM845 Global Clock Controller"
514 Support for the global clock controller on SDM845 devices.
515 Say Y if you want to use peripheral devices such as UART, SPI,
516 i2C, USB, UFS, SDDC, PCIe, etc.
519 tristate "SDM845 Graphics Clock Controller"
522 Support for the graphics clock controller on SDM845 devices.
523 Say Y if you want to support graphics controller devices and
524 functionality such as 3D graphics.
526 config SDM_VIDEOCC_845
527 tristate "SDM845 Video Clock Controller"
531 Support for the video clock controller on SDM845 devices.
532 Say Y if you want to support video devices and functionality such as
533 video encode and decode.
535 config SDM_DISPCC_845
536 tristate "SDM845 Display Clock Controller"
539 Support for the display clock controller on Qualcomm Technologies, Inc
541 Say Y if you want to support display devices and functionality such as
544 config SDM_LPASSCC_845
545 tristate "SDM845 Low Power Audio Subsystem (LPAAS) Clock Controller"
548 Support for the LPASS clock controller on SDM845 devices.
549 Say Y if you want to use the LPASS branch clocks of the LPASS clock
550 controller to reset the LPASS subsystem.
553 tristate "SDX55 Global Clock Controller"
556 Support for the global clock controller on SDX55 devices.
557 Say Y if you want to use peripheral devices such as UART,
558 SPI, I2C, USB, SD/UFS, PCIe etc.
561 tristate "SM8250 Camera Clock Controller"
564 Support for the camera clock controller on SM8250 devices.
565 Say Y if you want to support camera devices and camera functionality.
567 config SM_DISPCC_8250
568 tristate "SM8150 and SM8250 Display Clock Controller"
569 depends on SM_GCC_8150 || SM_GCC_8250
571 Support for the display clock controller on Qualcomm Technologies, Inc
572 SM8150 and SM8250 devices.
573 Say Y if you want to support display devices and functionality such as
577 tristate "SM6115 and SM4250 Global Clock Controller"
579 Support for the global clock controller on SM6115 and SM4250 devices.
580 Say Y if you want to use peripheral devices such as UART, SPI,
581 i2C, USB, UFS, SDDC, PCIe, etc.
584 tristate "SM6125 Global Clock Controller"
586 Support for the global clock controller on SM6125 devices.
587 Say Y if you want to use peripheral devices such as UART,
588 SPI, I2C, USB, SD/UFS, PCIe etc.
591 tristate "SM6350 Global Clock Controller"
594 Support for the global clock controller on SM6350 devices.
595 Say Y if you want to use peripheral devices such as UART,
596 SPI, I2C, USB, SD/UFS, PCIe etc.
599 tristate "SM8150 Global Clock Controller"
601 Support for the global clock controller on SM8150 devices.
602 Say Y if you want to use peripheral devices such as UART,
603 SPI, I2C, USB, SD/UFS, PCIe etc.
606 tristate "SM8250 Global Clock Controller"
609 Support for the global clock controller on SM8250 devices.
610 Say Y if you want to use peripheral devices such as UART,
611 SPI, I2C, USB, SD/UFS, PCIe etc.
614 tristate "SM8350 Global Clock Controller"
617 Support for the global clock controller on SM8350 devices.
618 Say Y if you want to use peripheral devices such as UART,
619 SPI, I2C, USB, SD/UFS, PCIe etc.
622 tristate "SM8150 Graphics Clock Controller"
625 Support for the graphics clock controller on SM8150 devices.
626 Say Y if you want to support graphics controller devices and
627 functionality such as 3D graphics.
630 tristate "SM8250 Graphics Clock Controller"
633 Support for the graphics clock controller on SM8250 devices.
634 Say Y if you want to support graphics controller devices and
635 functionality such as 3D graphics.
637 config SM_VIDEOCC_8150
638 tristate "SM8150 Video Clock Controller"
642 Support for the video clock controller on SM8150 devices.
643 Say Y if you want to support video devices and functionality such as
644 video encode and decode.
646 config SM_VIDEOCC_8250
647 tristate "SM8250 Video Clock Controller"
651 Support for the video clock controller on SM8250 devices.
652 Say Y if you want to support video devices and functionality such as
653 video encode and decode.
655 config SPMI_PMIC_CLKDIV
656 tristate "SPMI PMIC clkdiv Support"
657 depends on SPMI || COMPILE_TEST
659 This driver supports the clkdiv functionality on the Qualcomm
660 Technologies, Inc. SPMI PMIC. It configures the frequency of
661 clkdiv outputs of the PMIC. These clocks are typically wired
662 through alternate functions on GPIO pins.
665 tristate "High-Frequency PLL (HFPLL) Clock Controller"
667 Support for the high-frequency PLLs present on Qualcomm devices.
668 Say Y if you want to support CPU frequency scaling on devices
669 such as MSM8974, APQ8084, etc.
672 tristate "KPSS Clock Controller"
674 Support for the Krait ACC and GCC clock controllers. Say Y
675 if you want to support CPU frequency scaling on devices such
676 as MSM8960, APQ8064, etc.
679 tristate "Krait Clock Controller"
683 Support for the Krait CPU clocks on Qualcomm devices.
684 Say Y if you want to support CPU frequency scaling.
686 config CLK_GFM_LPASS_SM8250
687 tristate "SM8250 GFM LPASS Clocks"
689 Support for the Glitch Free Mux (GFM) Low power audio
690 subsystem (LPASS) clocks found on SM8250 SoCs.