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