xref: /openbmc/linux/drivers/clk/qcom/Kconfig (revision 4f3c8320)
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_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
40config 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 dynamic power management.
48
49config 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
62config 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
75config 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
84config 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
92config 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
101config 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
109config IPQ_APSS_6018
110	tristate "IPQ APSS Clock Controller"
111	select IPQ_APSS_PLL
112	depends on QCOM_APCS_IPC || COMPILE_TEST
113	help
114	  Support for APSS clock controller on IPQ platforms. The
115	  APSS clock controller manages the Mux and enable block that feeds the
116	  CPUs.
117	  Say Y if you want to support CPU frequency scaling on
118	  ipq based devices.
119
120config IPQ_GCC_4019
121	tristate "IPQ4019 Global Clock Controller"
122	help
123	  Support for the global clock controller on ipq4019 devices.
124	  Say Y if you want to use peripheral devices such as UART, SPI,
125	  i2c, USB, SD/eMMC, etc.
126
127config IPQ_GCC_6018
128	tristate "IPQ6018 Global Clock Controller"
129	help
130	  Support for global clock controller on ipq6018 devices.
131	  Say Y if you want to use peripheral devices such as UART, SPI,
132	  i2c, USB, SD/eMMC, etc. Select this for the root clock
133	  of ipq6018.
134
135config IPQ_GCC_806X
136	tristate "IPQ806x Global Clock Controller"
137	help
138	  Support for the global clock controller on ipq806x devices.
139	  Say Y if you want to use peripheral devices such as UART, SPI,
140	  i2c, USB, SD/eMMC, etc.
141
142config IPQ_LCC_806X
143	tristate "IPQ806x LPASS Clock Controller"
144	select IPQ_GCC_806X
145	help
146	  Support for the LPASS clock controller on ipq806x devices.
147	  Say Y if you want to use audio devices such as i2s, pcm,
148	  S/PDIF, etc.
149
150config IPQ_GCC_8074
151	tristate "IPQ8074 Global Clock Controller"
152	help
153	  Support for global clock controller on ipq8074 devices.
154	  Say Y if you want to use peripheral devices such as UART, SPI,
155	  i2c, USB, SD/eMMC, etc. Select this for the root clock
156	  of ipq8074.
157
158config MSM_GCC_8660
159	tristate "MSM8660 Global Clock Controller"
160	help
161	  Support for the global clock controller on msm8660 devices.
162	  Say Y if you want to use peripheral devices such as UART, SPI,
163	  i2c, USB, SD/eMMC, etc.
164
165config MSM_GCC_8916
166	tristate "MSM8916 Global Clock Controller"
167	select QCOM_GDSC
168	help
169	  Support for the global clock controller on msm8916 devices.
170	  Say Y if you want to use devices such as UART, SPI i2c, USB,
171	  SD/eMMC, display, graphics, camera etc.
172
173config MSM_GCC_8939
174	tristate "MSM8939 Global Clock Controller"
175	select QCOM_GDSC
176	help
177	  Support for the global clock controller on msm8939 devices.
178	  Say Y if you want to use devices such as UART, SPI i2c, USB,
179	  SD/eMMC, display, graphics, camera etc.
180
181config MSM_GCC_8960
182	tristate "APQ8064/MSM8960 Global Clock Controller"
183	help
184	  Support for the global clock controller on apq8064/msm8960 devices.
185	  Say Y if you want to use peripheral devices such as UART, SPI,
186	  i2c, USB, SD/eMMC, SATA, PCIe, etc.
187
188config MSM_LCC_8960
189	tristate "APQ8064/MSM8960 LPASS Clock Controller"
190	select MSM_GCC_8960
191	help
192	  Support for the LPASS clock controller on apq8064/msm8960 devices.
193	  Say Y if you want to use audio devices such as i2s, pcm,
194	  SLIMBus, etc.
195
196config MDM_GCC_9615
197	tristate "MDM9615 Global Clock Controller"
198	help
199	  Support for the global clock controller on mdm9615 devices.
200	  Say Y if you want to use peripheral devices such as UART, SPI,
201	  i2c, USB, SD/eMMC, etc.
202
203config MDM_LCC_9615
204	tristate "MDM9615 LPASS Clock Controller"
205	select MDM_GCC_9615
206	help
207	  Support for the LPASS clock controller on mdm9615 devices.
208	  Say Y if you want to use audio devices such as i2s, pcm,
209	  SLIMBus, etc.
210
211config MSM_MMCC_8960
212	tristate "MSM8960 Multimedia Clock Controller"
213	select MSM_GCC_8960
214	help
215	  Support for the multimedia clock controller on msm8960 devices.
216	  Say Y if you want to support multimedia devices such as display,
217	  graphics, video encode/decode, camera, etc.
218
219config MSM_GCC_8974
220	tristate "MSM8974 Global Clock Controller"
221	select QCOM_GDSC
222	help
223	  Support for the global clock controller on msm8974 devices.
224	  Say Y if you want to use peripheral devices such as UART, SPI,
225	  i2c, USB, SD/eMMC, SATA, PCIe, etc.
226
227config MSM_MMCC_8974
228	tristate "MSM8974 Multimedia Clock Controller"
229	select MSM_GCC_8974
230	select QCOM_GDSC
231	help
232	  Support for the multimedia clock controller on msm8974 devices.
233	  Say Y if you want to support multimedia devices such as display,
234	  graphics, video encode/decode, camera, etc.
235
236config MSM_GCC_8994
237	tristate "MSM8994 Global Clock Controller"
238	help
239	  Support for the global clock controller on msm8994 devices.
240	  Say Y if you want to use peripheral devices such as UART, SPI,
241	  i2c, USB, UFS, SD/eMMC, PCIe, etc.
242
243config MSM_GCC_8996
244	tristate "MSM8996 Global Clock Controller"
245	select QCOM_GDSC
246	help
247	  Support for the global clock controller on msm8996 devices.
248	  Say Y if you want to use peripheral devices such as UART, SPI,
249	  i2c, USB, UFS, SD/eMMC, PCIe, etc.
250
251config MSM_MMCC_8996
252	tristate "MSM8996 Multimedia Clock Controller"
253	select MSM_GCC_8996
254	select QCOM_GDSC
255	help
256	  Support for the multimedia clock controller on msm8996 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_8998
261	tristate "MSM8998 Global Clock Controller"
262	select QCOM_GDSC
263	help
264	  Support for the global clock controller on msm8998 devices.
265	  Say Y if you want to use peripheral devices such as UART, SPI,
266	  i2c, USB, UFS, SD/eMMC, PCIe, etc.
267
268config MSM_GPUCC_8998
269	tristate "MSM8998 Graphics Clock Controller"
270	select MSM_GCC_8998
271	select QCOM_GDSC
272	help
273	  Support for the graphics clock controller on MSM8998 devices.
274	  Say Y if you want to support graphics controller devices and
275	  functionality such as 3D graphics.
276
277config MSM_MMCC_8998
278	tristate "MSM8998 Multimedia Clock Controller"
279	select MSM_GCC_8998
280	select QCOM_GDSC
281	help
282	  Support for the multimedia clock controller on msm8998 devices.
283	  Say Y if you want to support multimedia devices such as display,
284	  graphics, video encode/decode, camera, etc.
285
286config QCS_GCC_404
287	tristate "QCS404 Global Clock Controller"
288	help
289	  Support for the global clock controller on QCS404 devices.
290	  Say Y if you want to use multimedia devices or peripheral
291	  devices such as UART, SPI, I2C, USB, SD/eMMC, PCIe etc.
292
293config SC_CAMCC_7180
294	tristate "SC7180 Camera Clock Controller"
295	select SC_GCC_7180
296	help
297	  Support for the camera clock controller on Qualcomm Technologies, Inc
298	  SC7180 devices.
299	  Say Y if you want to support camera devices and functionality such as
300	  capturing pictures.
301
302config SC_DISPCC_7180
303	tristate "SC7180 Display Clock Controller"
304	select SC_GCC_7180
305	help
306	  Support for the display clock controller on Qualcomm Technologies, Inc
307	  SC7180 devices.
308	  Say Y if you want to support display devices and functionality such as
309	  splash screen.
310
311config SC_GCC_7180
312	tristate "SC7180 Global Clock Controller"
313	select QCOM_GDSC
314	depends on COMMON_CLK_QCOM
315	help
316	  Support for the global clock controller on SC7180 devices.
317	  Say Y if you want to use peripheral devices such as UART, SPI,
318	  I2C, USB, UFS, SDCC, etc.
319
320config SC_LPASS_CORECC_7180
321	tristate "SC7180 LPASS Core Clock Controller"
322	select SC_GCC_7180
323	help
324	  Support for the LPASS(Low Power Audio Subsystem) core clock controller
325	  on SC7180 devices.
326	  Say Y if you want to use LPASS clocks and power domains of the LPASS
327	  core clock controller.
328
329config SC_GPUCC_7180
330	tristate "SC7180 Graphics Clock Controller"
331	select SC_GCC_7180
332	help
333	  Support for the graphics clock controller on SC7180 devices.
334	  Say Y if you want to support graphics controller devices and
335	  functionality such as 3D graphics.
336
337config SC_MSS_7180
338	tristate "SC7180 Modem Clock Controller"
339	select SC_GCC_7180
340	help
341	  Support for the Modem Subsystem clock controller on Qualcomm
342	  Technologies, Inc on SC7180 devices.
343	  Say Y if you want to use the Modem branch clocks of the Modem
344	  subsystem clock controller to reset the MSS subsystem.
345
346config SC_VIDEOCC_7180
347	tristate "SC7180 Video Clock Controller"
348	select SC_GCC_7180
349	help
350	  Support for the video clock controller on SC7180 devices.
351	  Say Y if you want to support video devices and functionality such as
352	  video encode and decode.
353
354config SDM_CAMCC_845
355	tristate "SDM845 Camera Clock Controller"
356	select SDM_GCC_845
357	help
358	  Support for the camera clock controller on SDM845 devices.
359	  Say Y if you want to support camera devices and camera functionality.
360
361config SDM_GCC_660
362	tristate "SDM660 Global Clock Controller"
363	select QCOM_GDSC
364	help
365	  Support for the global clock controller on SDM660 devices.
366	  Say Y if you want to use peripheral devices such as UART, SPI,
367	  i2C, USB, UFS, SDDC, PCIe, etc.
368
369config QCS_TURING_404
370	tristate "QCS404 Turing Clock Controller"
371	help
372	  Support for the Turing Clock Controller on QCS404, provides clocks
373	  and resets for the Turing subsystem.
374
375config QCS_Q6SSTOP_404
376	tristate "QCS404 Q6SSTOP Clock Controller"
377	select QCS_GCC_404
378	help
379	  Support for the Q6SSTOP clock controller on QCS404 devices.
380	  Say Y if you want to use the Q6SSTOP branch clocks of the WCSS clock
381	  controller to reset the Q6SSTOP subsystem.
382
383config SDM_GCC_845
384	tristate "SDM845 Global Clock Controller"
385	select QCOM_GDSC
386	help
387	  Support for the global clock controller on SDM845 devices.
388	  Say Y if you want to use peripheral devices such as UART, SPI,
389	  i2C, USB, UFS, SDDC, PCIe, etc.
390
391config SDM_GPUCC_845
392	tristate "SDM845 Graphics Clock Controller"
393	select SDM_GCC_845
394	help
395	  Support for the graphics clock controller on SDM845 devices.
396	  Say Y if you want to support graphics controller devices and
397	  functionality such as 3D graphics.
398
399config SDM_VIDEOCC_845
400	tristate "SDM845 Video Clock Controller"
401	select SDM_GCC_845
402	select QCOM_GDSC
403	help
404	  Support for the video clock controller on SDM845 devices.
405	  Say Y if you want to support video devices and functionality such as
406	  video encode and decode.
407
408config SDM_DISPCC_845
409	tristate "SDM845 Display Clock Controller"
410	select SDM_GCC_845
411	help
412	  Support for the display clock controller on Qualcomm Technologies, Inc
413	  SDM845 devices.
414	  Say Y if you want to support display devices and functionality such as
415	  splash screen.
416
417config SDM_LPASSCC_845
418	tristate "SDM845 Low Power Audio Subsystem (LPAAS) Clock Controller"
419	select SDM_GCC_845
420	help
421	  Support for the LPASS clock controller on SDM845 devices.
422	  Say Y if you want to use the LPASS branch clocks of the LPASS clock
423	  controller to reset the LPASS subsystem.
424
425config SDX_GCC_55
426	tristate "SDX55 Global Clock Controller"
427	select QCOM_GDSC
428	help
429	  Support for the global clock controller on SDX55 devices.
430	  Say Y if you want to use peripheral devices such as UART,
431	  SPI, I2C, USB, SD/UFS, PCIe etc.
432
433config SM_DISPCC_8250
434	tristate "SM8150 and SM8250 Display Clock Controller"
435	depends on SM_GCC_8150 || SM_GCC_8250
436	help
437	  Support for the display clock controller on Qualcomm Technologies, Inc
438	  SM8150 and SM8250 devices.
439	  Say Y if you want to support display devices and functionality such as
440	  splash screen.
441
442config SM_GCC_8150
443	tristate "SM8150 Global Clock Controller"
444	help
445	  Support for the global clock controller on SM8150 devices.
446	  Say Y if you want to use peripheral devices such as UART,
447	  SPI, I2C, USB, SD/UFS, PCIe etc.
448
449config SM_GCC_8250
450	tristate "SM8250 Global Clock Controller"
451	select QCOM_GDSC
452	help
453	  Support for the global clock controller on SM8250 devices.
454	  Say Y if you want to use peripheral devices such as UART,
455	  SPI, I2C, USB, SD/UFS, PCIe etc.
456
457config SM_GPUCC_8150
458	tristate "SM8150 Graphics Clock Controller"
459	select SM_GCC_8150
460	help
461	  Support for the graphics clock controller on SM8150 devices.
462	  Say Y if you want to support graphics controller devices and
463	  functionality such as 3D graphics.
464
465config SM_GPUCC_8250
466	tristate "SM8250 Graphics Clock Controller"
467	select SM_GCC_8250
468	help
469	  Support for the graphics clock controller on SM8250 devices.
470	  Say Y if you want to support graphics controller devices and
471	  functionality such as 3D graphics.
472
473config SM_VIDEOCC_8150
474	tristate "SM8150 Video Clock Controller"
475	select SDM_GCC_8150
476	select QCOM_GDSC
477	help
478	  Support for the video clock controller on SM8150 devices.
479	  Say Y if you want to support video devices and functionality such as
480	  video encode and decode.
481
482config SM_VIDEOCC_8250
483	tristate "SM8250 Video Clock Controller"
484	select SDM_GCC_8250
485	select QCOM_GDSC
486	help
487	  Support for the video clock controller on SM8250 devices.
488	  Say Y if you want to support video devices and functionality such as
489	  video encode and decode.
490
491config SPMI_PMIC_CLKDIV
492	tristate "SPMI PMIC clkdiv Support"
493	depends on SPMI || COMPILE_TEST
494	help
495	  This driver supports the clkdiv functionality on the Qualcomm
496	  Technologies, Inc. SPMI PMIC. It configures the frequency of
497	  clkdiv outputs of the PMIC. These clocks are typically wired
498	  through alternate functions on GPIO pins.
499
500config QCOM_HFPLL
501	tristate "High-Frequency PLL (HFPLL) Clock Controller"
502	help
503	  Support for the high-frequency PLLs present on Qualcomm devices.
504	  Say Y if you want to support CPU frequency scaling on devices
505	  such as MSM8974, APQ8084, etc.
506
507config KPSS_XCC
508	tristate "KPSS Clock Controller"
509	help
510	  Support for the Krait ACC and GCC clock controllers. Say Y
511	  if you want to support CPU frequency scaling on devices such
512	  as MSM8960, APQ8064, etc.
513
514config KRAITCC
515	tristate "Krait Clock Controller"
516	depends on ARM
517	select KRAIT_CLOCKS
518	help
519	  Support for the Krait CPU clocks on Qualcomm devices.
520	  Say Y if you want to support CPU frequency scaling.
521
522config CLK_GFM_LPASS_SM8250
523	tristate "SM8250 GFM LPASS Clocks"
524	help
525	  Support for the Glitch Free Mux (GFM) Low power audio
526          subsystem (LPASS) clocks found on SM8250 SoCs.
527
528endif
529