Merge tag 'mailbox-v5.15' of git://git.linaro.org/landing-teams/working/fujitsu/integ...
[linux-2.6-microblaze.git] / drivers / clk / qcom / Kconfig
1 # SPDX-License-Identifier: GPL-2.0-only
2 config KRAIT_CLOCKS
3         bool
4         select KRAIT_L2_ACCESSORS
5
6 config QCOM_GDSC
7         bool
8         select PM_GENERIC_DOMAINS if PM
9
10 config QCOM_RPMCC
11         bool
12
13 menuconfig 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
21 if COMMON_CLK_QCOM
22
23 config 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
31 config 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
39 config 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
48 config 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
57 config 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
66 config 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
79 config 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
92 config 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
101 config 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
109 config 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
118 config 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
126 config 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
137 config 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
144 config 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
152 config 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
159 config 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
167 config 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
175 config 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
182 config 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
190 config 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
198 config 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
205 config 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
213 config 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
220 config 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
227 config 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
235 config 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
243 config 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
251 config 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
260 config 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
267 config 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
275 config 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
284 config 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
292 config 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
301 config 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
310 config 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
317 config 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
326 config 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
335 config 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
344 config 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
353 config 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
362 config 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
371 config 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
379 config 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
388 config 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
396 config 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
403 config 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
411 config 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
420 config 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
429 config 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
435 config 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
443 config 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
451 config 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
459 config 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
468 config 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
477 config 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
485 config 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
493 config 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
500 config 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
509 config 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
516 config 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
523 config 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
531 config 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
539 config 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
547 config 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
555 config 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
564 config 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
573 config 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
582 config 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
589 config 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
596 config 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
604 config 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
610 endif