xref: /openbmc/linux/drivers/clk/qcom/Kconfig (revision dd2939ef)
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_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
39config 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
48config 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
57config 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
66config 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
79config 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
92config 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
101config 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
109config 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
118config 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
126config 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
137config 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
144config 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
152config 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
159config 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
167config 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
175config 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
182config 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
190config 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
198config 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
205config 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
213config 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
220config 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
227config 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
235config 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
243config 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
251config 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
260config 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
267config 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
275config 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
284config 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
292config 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
301config 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
310config 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
317config 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
326config 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
335config 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
344config 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
353config 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
362config 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
371config 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
379config 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
388config 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
396config 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
403config 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
411config 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
420config 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
429config 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
435config 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
443config 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
451config 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
459config 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
468config 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
477config 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
485config 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
493config 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
500config 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
509config 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
516config 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
523config 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
531config 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
539config 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
547config 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
555config 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
564config 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
573config 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
582config 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
589config 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
596config 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
604config 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
610endif
611