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