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 "A7 PLL driver for SDX55 and SDX65"
33	help
34	  Support for the A7 PLL on SDX55 and SDX65 devices. It provides the CPU with
35	  frequencies above 1GHz.
36	  Say Y if you want to support higher CPU frequencies on SDX55 and SDX65
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	select INTERCONNECT_CLK if INTERCONNECT
52	depends on ARM64
53	help
54	  Support for the CPU clock controller on msm8996 devices.
55	  Say Y if you want to support CPU clock scaling using CPUfreq
56	  drivers for dynamic power management.
57
58config QCOM_CLK_APCS_SDX55
59	tristate "SDX55 and SDX65 APCS Clock Controller"
60	depends on QCOM_APCS_IPC || COMPILE_TEST
61	depends on ARM || COMPILE_TEST
62	help
63	  Support for the APCS Clock Controller on SDX55, SDX65 platforms. The
64	  APCS is managing the mux and divider which feeds the CPUs.
65	  Say Y if you want to support CPU frequency scaling on devices
66	  such as SDX55, SDX65.
67
68config QCOM_CLK_RPM
69	tristate "RPM based Clock Controller"
70	depends on MFD_QCOM_RPM
71	select QCOM_RPMCC
72	help
73	  The RPM (Resource Power Manager) is a dedicated hardware engine for
74	  managing the shared SoC resources in order to keep the lowest power
75	  profile. It communicates with other hardware subsystems via shared
76	  memory and accepts clock requests, aggregates the requests and turns
77	  the clocks on/off or scales them on demand.
78	  Say Y if you want to support the clocks exposed by the RPM on
79	  platforms such as apq8064, msm8660, msm8960 etc.
80
81config QCOM_CLK_SMD_RPM
82	tristate "RPM over SMD based Clock Controller"
83	depends on QCOM_SMD_RPM
84	select QCOM_RPMCC
85	help
86	  The RPM (Resource Power Manager) is a dedicated hardware engine for
87	  managing the shared SoC resources in order to keep the lowest power
88	  profile. It communicates with other hardware subsystems via shared
89	  memory and accepts clock requests, aggregates the requests and turns
90	  the clocks on/off or scales them on demand.
91	  Say Y if you want to support the clocks exposed by the RPM on
92	  platforms such as apq8016, apq8084, msm8974 etc.
93
94config QCOM_CLK_RPMH
95	tristate "RPMh Clock Driver"
96	depends on QCOM_RPMH
97	help
98	 RPMh manages shared resources on some Qualcomm Technologies, Inc.
99	 SoCs. It accepts requests from other hardware subsystems via RSC.
100	 Say Y if you want to support the clocks exposed by RPMh on
101	 platforms such as SDM845.
102
103config APQ_GCC_8084
104	tristate "APQ8084 Global Clock Controller"
105	depends on ARM || COMPILE_TEST
106	select QCOM_GDSC
107	help
108	  Support for the global clock controller on apq8084 devices.
109	  Say Y if you want to use peripheral devices such as UART, SPI,
110	  i2c, USB, SD/eMMC, SATA, PCIe, etc.
111
112config APQ_MMCC_8084
113	tristate "APQ8084 Multimedia Clock Controller"
114	depends on ARM || COMPILE_TEST
115	select APQ_GCC_8084
116	select QCOM_GDSC
117	help
118	  Support for the multimedia clock controller on apq8084 devices.
119	  Say Y if you want to support multimedia devices such as display,
120	  graphics, video encode/decode, camera, etc.
121
122config IPQ_APSS_PLL
123	tristate "IPQ APSS PLL"
124	help
125	  Support for APSS PLL on ipq devices. The APSS PLL is the main
126	  clock that feeds the CPUs on ipq based devices.
127	  Say Y if you want to support CPU frequency scaling on ipq based
128	  devices.
129
130config IPQ_APSS_6018
131	tristate "IPQ APSS Clock Controller"
132	select IPQ_APSS_PLL
133	depends on QCOM_APCS_IPC || COMPILE_TEST
134	depends on QCOM_SMEM
135	help
136	  Support for APSS clock controller on IPQ platforms. The
137	  APSS clock controller manages the Mux and enable block that feeds the
138	  CPUs.
139	  Say Y if you want to support CPU frequency scaling on
140	  ipq based devices.
141
142config IPQ_GCC_4019
143	tristate "IPQ4019 Global Clock Controller"
144	help
145	  Support for the global clock controller on ipq4019 devices.
146	  Say Y if you want to use peripheral devices such as UART, SPI,
147	  i2c, USB, SD/eMMC, etc.
148
149config IPQ_GCC_5018
150	tristate "IPQ5018 Global Clock Controller"
151	depends on ARM64 || COMPILE_TEST
152	help
153	  Support for global clock controller on ipq5018 devices.
154	  Say Y if you want to use peripheral devices such as UART, SPI,
155	  i2c, USB, SD/eMMC, etc.
156
157config IPQ_GCC_5332
158	tristate "IPQ5332 Global Clock Controller"
159	depends on ARM64 || COMPILE_TEST
160	help
161	  Support for the global clock controller on ipq5332 devices.
162	  Say Y if you want to use peripheral devices such as UART, SPI,
163	  i2c, USB, SD/eMMC, etc.
164
165config IPQ_GCC_6018
166	tristate "IPQ6018 Global Clock Controller"
167	help
168	  Support for global clock controller on ipq6018 devices.
169	  Say Y if you want to use peripheral devices such as UART, SPI,
170	  i2c, USB, SD/eMMC, etc. Select this for the root clock
171	  of ipq6018.
172
173config IPQ_GCC_806X
174	tristate "IPQ806x Global Clock Controller"
175	depends on ARM || COMPILE_TEST
176	help
177	  Support for the global clock controller on ipq806x devices.
178	  Say Y if you want to use peripheral devices such as UART, SPI,
179	  i2c, USB, SD/eMMC, etc.
180
181config IPQ_LCC_806X
182	tristate "IPQ806x LPASS Clock Controller"
183	depends on ARM || COMPILE_TEST
184	select IPQ_GCC_806X
185	help
186	  Support for the LPASS clock controller on ipq806x devices.
187	  Say Y if you want to use audio devices such as i2s, pcm,
188	  S/PDIF, etc.
189
190config IPQ_GCC_8074
191	tristate "IPQ8074 Global Clock Controller"
192	select QCOM_GDSC
193	help
194	  Support for global clock controller on ipq8074 devices.
195	  Say Y if you want to use peripheral devices such as UART, SPI,
196	  i2c, USB, SD/eMMC, etc. Select this for the root clock
197	  of ipq8074.
198
199config IPQ_GCC_9574
200	tristate "IPQ9574 Global Clock Controller"
201	help
202	  Support for global clock controller on ipq9574 devices.
203	  Say Y if you want to use peripheral devices such as UART, SPI,
204	  i2c, USB, SD/eMMC, etc. Select this for the root clock
205	  of ipq9574.
206
207config MSM_GCC_8660
208	tristate "MSM8660 Global Clock Controller"
209	depends on ARM || COMPILE_TEST
210	help
211	  Support for the global clock controller on msm8660 devices.
212	  Say Y if you want to use peripheral devices such as UART, SPI,
213	  i2c, USB, SD/eMMC, etc.
214
215config MSM_GCC_8909
216	tristate "MSM8909 Global Clock Controller"
217	depends on ARM || COMPILE_TEST
218	select QCOM_GDSC
219	help
220	  Support for the global clock controller on msm8909 devices.
221	  Say Y if you want to use devices such as UART, SPI, I2C, USB,
222	  SD/eMMC, display, graphics, camera etc.
223
224config MSM_GCC_8916
225	tristate "MSM8916 Global Clock Controller"
226	select QCOM_GDSC
227	help
228	  Support for the global clock controller on msm8916 devices.
229	  Say Y if you want to use devices such as UART, SPI i2c, USB,
230	  SD/eMMC, display, graphics, camera etc.
231
232config MSM_GCC_8917
233	tristate "MSM8917/QM215 Global Clock Controller"
234	depends on ARM64 || COMPILE_TEST
235	select QCOM_GDSC
236	help
237	  Support for the global clock controller on msm8917 and qm215
238	  devices.
239	  Say Y if you want to use devices such as UART, SPI i2c, USB,
240	  SD/eMMC, display, graphics, camera etc.
241
242config MSM_GCC_8939
243	tristate "MSM8939 Global Clock Controller"
244	select QCOM_GDSC
245	help
246	  Support for the global clock controller on msm8939 devices.
247	  Say Y if you want to use devices such as UART, SPI i2c, USB,
248	  SD/eMMC, display, graphics, camera etc.
249
250config MSM_GCC_8960
251	tristate "APQ8064/MSM8960 Global Clock Controller"
252	depends on ARM || COMPILE_TEST
253	help
254	  Support for the global clock controller on apq8064/msm8960 devices.
255	  Say Y if you want to use peripheral devices such as UART, SPI,
256	  i2c, USB, SD/eMMC, SATA, PCIe, etc.
257
258config MSM_LCC_8960
259	tristate "APQ8064/MSM8960/MDM9650 LPASS Clock Controller"
260	depends on ARM || COMPILE_TEST
261	help
262	  Support for the LPASS clock controller on apq8064/msm8960/mdm9650
263	  devices.
264	  Say Y if you want to use audio devices such as i2s, pcm,
265	  SLIMBus, etc.
266
267config MDM_GCC_9607
268	tristate "MDM9607 Global Clock Controller"
269	depends on ARM || COMPILE_TEST
270	help
271	  Support for the global clock controller on mdm9607 devices.
272	  Say Y if you want to use peripheral devices such as UART, SPI,
273	  I2C, USB, SD/eMMC, etc.
274
275config MDM_GCC_9615
276	tristate "MDM9615 Global Clock Controller"
277	depends on ARM || COMPILE_TEST
278	help
279	  Support for the global clock controller on mdm9615 devices.
280	  Say Y if you want to use peripheral devices such as UART, SPI,
281	  i2c, USB, SD/eMMC, etc.
282
283config MSM_MMCC_8960
284	tristate "MSM8960 Multimedia Clock Controller"
285	depends on ARM || COMPILE_TEST
286	select MSM_GCC_8960
287	help
288	  Support for the multimedia clock controller on msm8960 devices.
289	  Say Y if you want to support multimedia devices such as display,
290	  graphics, video encode/decode, camera, etc.
291
292config MSM_GCC_8953
293	tristate "MSM8953 Global Clock Controller"
294	select QCOM_GDSC
295	help
296	  Support for the global clock controller on msm8953 devices.
297	  Say Y if you want to use devices such as UART, SPI i2c, USB,
298	  SD/eMMC, display, graphics, camera etc.
299
300config MSM_GCC_8974
301	tristate "MSM8974 Global Clock Controller"
302	depends on ARM || COMPILE_TEST
303	select QCOM_GDSC
304	help
305	  Support for the global clock controller on msm8974 devices.
306	  Say Y if you want to use peripheral devices such as UART, SPI,
307	  i2c, USB, SD/eMMC, SATA, PCIe, etc.
308
309config MSM_MMCC_8974
310	tristate "MSM8974 Multimedia Clock Controller"
311	depends on ARM || COMPILE_TEST
312	select MSM_GCC_8974
313	select QCOM_GDSC
314	help
315	  Support for the multimedia clock controller on msm8974 devices.
316	  Say Y if you want to support multimedia devices such as display,
317	  graphics, video encode/decode, camera, etc.
318
319config MSM_GCC_8976
320	tristate "MSM8956/76 Global Clock Controller"
321	select QCOM_GDSC
322	help
323	  Support for the global clock controller on msm8956/76 devices.
324	  Say Y if you want to use peripheral devices such as UART, SPI,
325	  i2c, USB, SD/eMMC, SATA, PCIe, etc.
326
327config MSM_MMCC_8994
328	tristate "MSM8994 Multimedia Clock Controller"
329	select MSM_GCC_8994
330	select QCOM_GDSC
331	help
332	  Support for the multimedia clock controller on msm8994 devices.
333	  Say Y if you want to support multimedia devices such as display,
334	  graphics, video encode/decode, camera, etc.
335
336config MSM_GCC_8994
337	tristate "MSM8994 Global Clock Controller"
338	help
339	  Support for the global clock controller on msm8994 devices.
340	  Say Y if you want to use peripheral devices such as UART, SPI,
341	  i2c, USB, UFS, SD/eMMC, PCIe, etc.
342
343config MSM_GCC_8996
344	tristate "MSM8996 Global Clock Controller"
345	select QCOM_GDSC
346	help
347	  Support for the global clock controller on msm8996 devices.
348	  Say Y if you want to use peripheral devices such as UART, SPI,
349	  i2c, USB, UFS, SD/eMMC, PCIe, etc.
350
351config MSM_MMCC_8996
352	tristate "MSM8996 Multimedia Clock Controller"
353	select MSM_GCC_8996
354	select QCOM_GDSC
355	help
356	  Support for the multimedia clock controller on msm8996 devices.
357	  Say Y if you want to support multimedia devices such as display,
358	  graphics, video encode/decode, camera, etc.
359
360config MSM_GCC_8998
361	tristate "MSM8998 Global Clock Controller"
362	select QCOM_GDSC
363	help
364	  Support for the global clock controller on msm8998 devices.
365	  Say Y if you want to use peripheral devices such as UART, SPI,
366	  i2c, USB, UFS, SD/eMMC, PCIe, etc.
367
368config MSM_GPUCC_8998
369	tristate "MSM8998 Graphics Clock Controller"
370	select MSM_GCC_8998
371	select QCOM_GDSC
372	help
373	  Support for the graphics clock controller on MSM8998 devices.
374	  Say Y if you want to support graphics controller devices and
375	  functionality such as 3D graphics.
376
377config MSM_MMCC_8998
378	tristate "MSM8998 Multimedia Clock Controller"
379	select MSM_GCC_8998
380	select QCOM_GDSC
381	help
382	  Support for the multimedia clock controller on msm8998 devices.
383	  Say Y if you want to support multimedia devices such as display,
384	  graphics, video encode/decode, camera, etc.
385
386config QCM_GCC_2290
387	tristate "QCM2290 Global Clock Controller"
388	select QCOM_GDSC
389	help
390	  Support for the global clock controller on QCM2290 devices.
391	  Say Y if you want to use multimedia devices or peripheral
392	  devices such as UART, SPI, I2C, USB, SD/eMMC etc.
393
394config QCM_DISPCC_2290
395	tristate "QCM2290 Display Clock Controller"
396	select QCM_GCC_2290
397	help
398	  Support for the display clock controller on Qualcomm Technologies, Inc
399	  QCM2290 devices.
400	  Say Y if you want to support display devices and functionality such as
401	  splash screen.
402
403config QCS_GCC_404
404	tristate "QCS404 Global Clock Controller"
405	help
406	  Support for the global clock controller on QCS404 devices.
407	  Say Y if you want to use multimedia devices or peripheral
408	  devices such as UART, SPI, I2C, USB, SD/eMMC, PCIe etc.
409
410config SC_CAMCC_7180
411	tristate "SC7180 Camera Clock Controller"
412	depends on ARM64 || COMPILE_TEST
413	select SC_GCC_7180
414	help
415	  Support for the camera clock controller on Qualcomm Technologies, Inc
416	  SC7180 devices.
417	  Say Y if you want to support camera devices and functionality such as
418	  capturing pictures.
419
420config SC_CAMCC_7280
421	tristate "SC7280 Camera Clock Controller"
422	depends on ARM64 || COMPILE_TEST
423	select SC_GCC_7280
424	help
425	  Support for the camera clock controller on Qualcomm Technologies, Inc
426	  SC7280 devices.
427	  Say Y if you want to support camera devices and functionality such as
428	  capturing pictures.
429
430config SC_DISPCC_7180
431	tristate "SC7180 Display Clock Controller"
432	depends on ARM64 || COMPILE_TEST
433	select SC_GCC_7180
434	help
435	  Support for the display clock controller on Qualcomm Technologies, Inc
436	  SC7180 devices.
437	  Say Y if you want to support display devices and functionality such as
438	  splash screen.
439
440config SC_DISPCC_7280
441	tristate "SC7280 Display Clock Controller"
442	depends on ARM64 || COMPILE_TEST
443	select SC_GCC_7280
444	help
445	  Support for the display clock controller on Qualcomm Technologies, Inc.
446	  SC7280 devices.
447	  Say Y if you want to support display devices and functionality such as
448	  splash screen.
449
450config SC_DISPCC_8280XP
451	tristate "SC8280XP Display Clock Controller"
452	depends on ARM64 || COMPILE_TEST
453	select SC_GCC_8280XP
454	help
455	  Support for the two display clock controllers on Qualcomm
456	  Technologies, Inc. SC8280XP devices.
457	  Say Y if you want to support display devices and functionality such as
458	  splash screen.
459
460config SA_GCC_8775P
461	tristate "SA8775 Global Clock Controller"
462	select QCOM_GDSC
463	depends on COMMON_CLK_QCOM
464	help
465	  Support for the global clock controller on SA8775 devices.
466	  Say Y if you want to use peripheral devices such as UART, SPI,
467	  I2C, USB, UFS, SDCC, etc.
468
469config SA_GPUCC_8775P
470	tristate "SA8775P Graphics clock controller"
471	select QCOM_GDSC
472	select SA_GCC_8775P
473	help
474	  Support for the graphics clock controller on SA8775P devices.
475	  Say Y if you want to support graphics controller devices and
476	  functionality such as 3D graphics.
477
478config SC_GCC_7180
479	tristate "SC7180 Global Clock Controller"
480	select QCOM_GDSC
481	depends on COMMON_CLK_QCOM
482	depends on ARM64 || COMPILE_TEST
483	help
484	  Support for the global clock controller on SC7180 devices.
485	  Say Y if you want to use peripheral devices such as UART, SPI,
486	  I2C, USB, UFS, SDCC, etc.
487
488config SC_GCC_7280
489	tristate "SC7280 Global Clock Controller"
490	select QCOM_GDSC
491	depends on COMMON_CLK_QCOM
492	depends on ARM64 || COMPILE_TEST
493	help
494	  Support for the global clock controller on SC7280 devices.
495	  Say Y if you want to use peripheral devices such as UART, SPI,
496	  I2C, USB, UFS, SDCC, PCIe etc.
497
498config SC_GCC_8180X
499	tristate "SC8180X Global Clock Controller"
500	select QCOM_GDSC
501	depends on COMMON_CLK_QCOM
502	depends on ARM64 || COMPILE_TEST
503	help
504	  Support for the global clock controller on SC8180X devices.
505	  Say Y if you want to use peripheral devices such as UART, SPI,
506	  I2C, USB, UFS, SDCC, etc.
507
508config SC_GCC_8280XP
509	tristate "SC8280XP Global Clock Controller"
510	select QCOM_GDSC
511	depends on COMMON_CLK_QCOM
512	depends on ARM64 || COMPILE_TEST
513	help
514	  Support for the global clock controller on SC8280XP devices.
515	  Say Y if you want to use peripheral devices such as UART, SPI,
516	  I2C, USB, UFS, SDCC, etc.
517
518config SC_GPUCC_7180
519	tristate "SC7180 Graphics Clock Controller"
520	depends on ARM64 || COMPILE_TEST
521	select SC_GCC_7180
522	help
523	  Support for the graphics clock controller on SC7180 devices.
524	  Say Y if you want to support graphics controller devices and
525	  functionality such as 3D graphics.
526
527config SC_GPUCC_7280
528	tristate "SC7280 Graphics Clock Controller"
529	depends on ARM64 || COMPILE_TEST
530	select SC_GCC_7280
531	help
532	  Support for the graphics clock controller on SC7280 devices.
533	  Say Y if you want to support graphics controller devices and
534	  functionality such as 3D graphics.
535
536config SC_GPUCC_8280XP
537	tristate "SC8280XP Graphics Clock Controller"
538	depends on ARM64 || COMPILE_TEST
539	select SC_GCC_8280XP
540	help
541	  Support for the graphics clock controller on SC8280XP devices.
542	  Say Y if you want to support graphics controller devices and
543	  functionality such as 3D graphics.
544
545config SC_LPASSCC_7280
546	tristate "SC7280 Low Power Audio Subsystem (LPASS) Clock Controller"
547	depends on ARM64 || COMPILE_TEST
548	select SC_GCC_7280
549	help
550	  Support for the LPASS clock controller on SC7280 devices.
551	  Say Y if you want to use the LPASS branch clocks of the LPASS clock
552	  controller to reset the LPASS subsystem.
553
554config SC_LPASSCC_8280XP
555	tristate "SC8280 Low Power Audio Subsystem (LPASS) Clock Controller"
556	depends on ARM64 || COMPILE_TEST
557	select SC_GCC_8280XP
558	help
559	  Support for the LPASS clock controller on SC8280XP devices.
560	  Say Y if you want to use the LPASS branch clocks of the LPASS clock
561	  controller to reset the LPASS subsystem.
562
563config SC_LPASS_CORECC_7180
564	tristate "SC7180 LPASS Core Clock Controller"
565	depends on ARM64 || COMPILE_TEST
566	select SC_GCC_7180
567	help
568	  Support for the LPASS(Low Power Audio Subsystem) core clock controller
569	  on SC7180 devices.
570	  Say Y if you want to use LPASS clocks and power domains of the LPASS
571	  core clock controller.
572
573config SC_LPASS_CORECC_7280
574	tristate "SC7280 LPASS Core & Audio Clock Controller"
575	depends on ARM64 || COMPILE_TEST
576	select SC_GCC_7280
577	select QCOM_GDSC
578	help
579	  Support for the LPASS(Low Power Audio Subsystem) core and audio clock
580	  controller on SC7280 devices.
581	  Say Y if you want to use LPASS clocks and power domains of the LPASS
582	  core clock controller.
583
584config SC_MSS_7180
585	tristate "SC7180 Modem Clock Controller"
586	depends on ARM64 || COMPILE_TEST
587	select SC_GCC_7180
588	help
589	  Support for the Modem Subsystem clock controller on Qualcomm
590	  Technologies, Inc on SC7180 devices.
591	  Say Y if you want to use the Modem branch clocks of the Modem
592	  subsystem clock controller to reset the MSS subsystem.
593
594config SC_VIDEOCC_7180
595	tristate "SC7180 Video Clock Controller"
596	depends on ARM64 || COMPILE_TEST
597	select SC_GCC_7180
598	help
599	  Support for the video clock controller on SC7180 devices.
600	  Say Y if you want to support video devices and functionality such as
601	  video encode and decode.
602
603config SC_VIDEOCC_7280
604	tristate "SC7280 Video Clock Controller"
605	depends on ARM64 || COMPILE_TEST
606	select SC_GCC_7280
607	help
608	  Support for the video clock controller on SC7280 devices.
609	  Say Y if you want to support video devices and functionality such as
610	  video encode and decode.
611
612config SDM_CAMCC_845
613	tristate "SDM845 Camera Clock Controller"
614	depends on ARM64 || COMPILE_TEST
615	select SDM_GCC_845
616	help
617	  Support for the camera clock controller on SDM845 devices.
618	  Say Y if you want to support camera devices and camera functionality.
619
620config SDM_GCC_660
621	tristate "SDM660 Global Clock Controller"
622	depends on ARM64 || COMPILE_TEST
623	select QCOM_GDSC
624	help
625	  Support for the global clock controller on SDM660 devices.
626	  Say Y if you want to use peripheral devices such as UART, SPI,
627	  i2C, USB, UFS, SDDC, PCIe, etc.
628
629config SDM_MMCC_660
630	tristate "SDM660 Multimedia Clock Controller"
631	depends on ARM64 || COMPILE_TEST
632	select SDM_GCC_660
633	select QCOM_GDSC
634	help
635	  Support for the multimedia clock controller on SDM660 devices.
636	  Say Y if you want to support multimedia devices such as display,
637	  graphics, video encode/decode, camera, etc.
638
639config SDM_GPUCC_660
640	tristate "SDM660 Graphics Clock Controller"
641	depends on ARM64 || COMPILE_TEST
642	select SDM_GCC_660
643	select QCOM_GDSC
644	help
645	  Support for the graphics clock controller on SDM630/636/660 devices.
646	  Say Y if you want to support graphics controller devices and
647	  functionality such as 3D graphics
648
649config QCS_TURING_404
650	tristate "QCS404 Turing Clock Controller"
651	help
652	  Support for the Turing Clock Controller on QCS404, provides clocks
653	  and resets for the Turing subsystem.
654
655config QCS_Q6SSTOP_404
656	tristate "QCS404 Q6SSTOP Clock Controller"
657	select QCS_GCC_404
658	help
659	  Support for the Q6SSTOP clock controller on QCS404 devices.
660	  Say Y if you want to use the Q6SSTOP branch clocks of the WCSS clock
661	  controller to reset the Q6SSTOP subsystem.
662
663config QDU_GCC_1000
664	tristate "QDU1000/QRU1000 Global Clock Controller"
665	select QCOM_GDSC
666	help
667	  Support for the global clock controller on QDU1000 and
668	  QRU1000 devices. Say Y if you want to use peripheral
669	  devices such as UART, SPI, I2C, USB, SD, PCIe, etc.
670
671config SDM_GCC_845
672	tristate "SDM845/SDM670 Global Clock Controller"
673	depends on ARM64 || COMPILE_TEST
674	select QCOM_GDSC
675	help
676	  Support for the global clock controller on SDM845 and SDM670 devices.
677	  Say Y if you want to use peripheral devices such as UART, SPI,
678	  i2C, USB, UFS, SDDC, PCIe, etc.
679
680config SDM_GPUCC_845
681	tristate "SDM845 Graphics Clock Controller"
682	depends on ARM64 || COMPILE_TEST
683	select SDM_GCC_845
684	help
685	  Support for the graphics clock controller on SDM845 devices.
686	  Say Y if you want to support graphics controller devices and
687	  functionality such as 3D graphics.
688
689config SDM_VIDEOCC_845
690	tristate "SDM845 Video Clock Controller"
691	depends on ARM64 || COMPILE_TEST
692	select SDM_GCC_845
693	select QCOM_GDSC
694	help
695	  Support for the video clock controller on SDM845 devices.
696	  Say Y if you want to support video devices and functionality such as
697	  video encode and decode.
698
699config SDM_DISPCC_845
700	tristate "SDM845 Display Clock Controller"
701	depends on ARM64 || COMPILE_TEST
702	select SDM_GCC_845
703	help
704	  Support for the display clock controller on Qualcomm Technologies, Inc
705	  SDM845 devices.
706	  Say Y if you want to support display devices and functionality such as
707	  splash screen.
708
709config SDM_LPASSCC_845
710	tristate "SDM845 Low Power Audio Subsystem (LPAAS) Clock Controller"
711	depends on ARM64 || COMPILE_TEST
712	select SDM_GCC_845
713	help
714	  Support for the LPASS clock controller on SDM845 devices.
715	  Say Y if you want to use the LPASS branch clocks of the LPASS clock
716	  controller to reset the LPASS subsystem.
717
718config SDX_GCC_55
719	tristate "SDX55 Global Clock Controller"
720	depends on ARM || COMPILE_TEST
721	select QCOM_GDSC
722	help
723	  Support for the global clock controller on SDX55 devices.
724	  Say Y if you want to use peripheral devices such as UART,
725	  SPI, I2C, USB, SD/UFS, PCIe etc.
726
727config SDX_GCC_65
728	tristate "SDX65 Global Clock Controller"
729	depends on ARM || COMPILE_TEST
730	select QCOM_GDSC
731	help
732	  Support for the global clock controller on SDX65 devices.
733	  Say Y if you want to use peripheral devices such as UART,
734	  SPI, I2C, USB, SD/UFS, PCIe etc.
735
736config SDX_GCC_75
737	tristate "SDX75 Global Clock Controller"
738	select QCOM_GDSC
739	help
740	  Support for the global clock controller on SDX75 devices.
741	  Say Y if you want to use peripheral devices such as UART,
742	  SPI, I2C, USB, SD/eMMC, PCIe etc.
743
744config SM_CAMCC_6350
745	tristate "SM6350 Camera Clock Controller"
746	depends on ARM64 || COMPILE_TEST
747	select SM_GCC_6350
748	help
749	  Support for the camera clock controller on SM6350 devices.
750	  Say Y if you want to support camera devices and camera functionality.
751
752config SM_CAMCC_8250
753	tristate "SM8250 Camera Clock Controller"
754	depends on ARM64 || COMPILE_TEST
755	select SM_GCC_8250
756	help
757	  Support for the camera clock controller on SM8250 devices.
758	  Say Y if you want to support camera devices and camera functionality.
759
760config SM_CAMCC_8450
761	tristate "SM8450 Camera Clock Controller"
762	depends on ARM64 || COMPILE_TEST
763	select SM_GCC_8450
764	help
765	  Support for the camera clock controller on SM8450 devices.
766	  Say Y if you want to support camera devices and camera functionality.
767
768config SM_DISPCC_6115
769	tristate "SM6115 Display Clock Controller"
770	depends on ARM64 || COMPILE_TEST
771	depends on SM_GCC_6115
772	help
773	  Support for the display clock controller on Qualcomm Technologies, Inc
774	  SM6115/SM4250 devices.
775	  Say Y if you want to support display devices and functionality such as
776	  splash screen
777
778config SM_DISPCC_6125
779	tristate "SM6125 Display Clock Controller"
780	depends on ARM64 || COMPILE_TEST
781	depends on SM_GCC_6125
782	help
783	  Support for the display clock controller on Qualcomm Technologies, Inc
784	  SM6125 devices.
785	  Say Y if you want to support display devices and functionality such as
786	  splash screen
787
788config SM_DISPCC_8250
789	tristate "SM8150/SM8250/SM8350 Display Clock Controller"
790	depends on ARM64 || COMPILE_TEST
791	depends on SM_GCC_8150 || SM_GCC_8250 || SM_GCC_8350
792	help
793	  Support for the display clock controller on Qualcomm Technologies, Inc
794	  SM8150/SM8250/SM8350 devices.
795	  Say Y if you want to support display devices and functionality such as
796	  splash screen.
797
798config SM_DISPCC_6350
799	tristate "SM6350 Display Clock Controller"
800	depends on ARM64 || COMPILE_TEST
801	depends on SM_GCC_6350
802	help
803	  Support for the display clock controller on Qualcomm Technologies, Inc
804	  SM6350 devices.
805	  Say Y if you want to support display devices and functionality such as
806	  splash screen.
807
808config SM_DISPCC_6375
809	tristate "SM6375 Display Clock Controller"
810	depends on ARM64 || COMPILE_TEST
811	depends on SM_GCC_6375
812	help
813	  Support for the display clock controller on Qualcomm Technologies, Inc
814	  SM6375 devices.
815	  Say Y if you want to support display devices and functionality such as
816	  splash screen.
817
818config SM_DISPCC_8450
819	tristate "SM8450 Display Clock Controller"
820	depends on ARM64 || COMPILE_TEST
821	depends on SM_GCC_8450
822	help
823	  Support for the display clock controller on Qualcomm Technologies, Inc
824	  SM8450 devices.
825	  Say Y if you want to support display devices and functionality such as
826	  splash screen.
827
828config SM_DISPCC_8550
829	tristate "SM8550 Display Clock Controller"
830	depends on ARM64 || COMPILE_TEST
831	depends on SM_GCC_8550
832	help
833	  Support for the display clock controller on Qualcomm Technologies, Inc
834	  SM8550 devices.
835	  Say Y if you want to support display devices and functionality such as
836	  splash screen.
837
838config SM_GCC_6115
839	tristate "SM6115 and SM4250 Global Clock Controller"
840	depends on ARM64 || COMPILE_TEST
841	select QCOM_GDSC
842	help
843	  Support for the global clock controller on SM6115 and SM4250 devices.
844	  Say Y if you want to use peripheral devices such as UART, SPI,
845	  i2C, USB, UFS, SDDC, PCIe, etc.
846
847config SM_GCC_6125
848	tristate "SM6125 Global Clock Controller"
849	depends on ARM64 || COMPILE_TEST
850	help
851	  Support for the global clock controller on SM6125 devices.
852	  Say Y if you want to use peripheral devices such as UART,
853	  SPI, I2C, USB, SD/UFS, PCIe etc.
854
855config SM_GCC_6350
856	tristate "SM6350 Global Clock Controller"
857	depends on ARM64 || COMPILE_TEST
858	select QCOM_GDSC
859	help
860	  Support for the global clock controller on SM6350 devices.
861	  Say Y if you want to use peripheral devices such as UART,
862	  SPI, I2C, USB, SD/UFS, PCIe etc.
863
864config SM_GCC_6375
865	tristate "SM6375 Global Clock Controller"
866	depends on ARM64 || COMPILE_TEST
867	select QCOM_GDSC
868	help
869	  Support for the global clock controller on SM6375 devices.
870	  Say Y if you want to use peripheral devices such as UART,
871	  SPI, I2C, USB, SD/UFS etc.
872
873config SM_GCC_7150
874	tristate "SM7150 Global Clock Controller"
875	select QCOM_GDSC
876	help
877	  Support for the global clock controller on SM7150 devices.
878	  Say Y if you want to use peripheral devices such as UART,
879	  SPI, I2C, USB, SD/UFS, PCIe etc.
880
881config SM_GCC_8150
882	tristate "SM8150 Global Clock Controller"
883	depends on ARM64 || COMPILE_TEST
884	help
885	  Support for the global clock controller on SM8150 devices.
886	  Say Y if you want to use peripheral devices such as UART,
887	  SPI, I2C, USB, SD/UFS, PCIe etc.
888
889config SM_GCC_8250
890	tristate "SM8250 Global Clock Controller"
891	depends on ARM64 || COMPILE_TEST
892	select QCOM_GDSC
893	help
894	  Support for the global clock controller on SM8250 devices.
895	  Say Y if you want to use peripheral devices such as UART,
896	  SPI, I2C, USB, SD/UFS, PCIe etc.
897
898config SM_GCC_8350
899	tristate "SM8350 Global Clock Controller"
900	depends on ARM64 || COMPILE_TEST
901	select QCOM_GDSC
902	help
903	  Support for the global clock controller on SM8350 devices.
904	  Say Y if you want to use peripheral devices such as UART,
905	  SPI, I2C, USB, SD/UFS, PCIe etc.
906
907config SM_GCC_8450
908	tristate "SM8450 Global Clock Controller"
909	depends on ARM64 || COMPILE_TEST
910	select QCOM_GDSC
911	help
912	  Support for the global clock controller on SM8450 devices.
913	  Say Y if you want to use peripheral devices such as UART,
914	  SPI, I2C, USB, SD/UFS, PCIe etc.
915
916config SM_GCC_8550
917	tristate "SM8550 Global Clock Controller"
918	depends on ARM64 || COMPILE_TEST
919	select QCOM_GDSC
920	help
921	  Support for the global clock controller on SM8550 devices.
922	  Say Y if you want to use peripheral devices such as UART,
923	  SPI, I2C, USB, SD/UFS, PCIe etc.
924
925config SM_GPUCC_6115
926	tristate "SM6115 Graphics Clock Controller"
927	select SM_GCC_6115
928	depends on ARM64 || COMPILE_TEST
929	help
930	  Support for the graphics clock controller on SM6115 devices.
931	  Say Y if you want to support graphics controller devices and
932	  functionality such as 3D graphics.
933
934config SM_GPUCC_6125
935	tristate "SM6125 Graphics Clock Controller"
936	select SM_GCC_6125
937	depends on ARM64 || COMPILE_TEST
938	help
939	  Support for the graphics clock controller on SM6125 devices.
940	  Say Y if you want to support graphics controller devices and
941	  functionality such as 3D graphics.
942
943config SM_GPUCC_6375
944	tristate "SM6375 Graphics Clock Controller"
945	select SM_GCC_6375
946	depends on ARM64 || COMPILE_TEST
947	help
948	  Support for the graphics clock controller on SM6375 devices.
949	  Say Y if you want to support graphics controller devices and
950	  functionality such as 3D graphics.
951
952config SM_GPUCC_6350
953	tristate "SM6350 Graphics Clock Controller"
954	depends on ARM64 || COMPILE_TEST
955	select SM_GCC_6350
956	help
957	  Support for the graphics clock controller on SM6350 devices.
958	  Say Y if you want to support graphics controller devices and
959	  functionality such as 3D graphics.
960
961config SM_GPUCC_8150
962	tristate "SM8150 Graphics Clock Controller"
963	depends on ARM64 || COMPILE_TEST
964	select SM_GCC_8150
965	help
966	  Support for the graphics clock controller on SM8150 devices.
967	  Say Y if you want to support graphics controller devices and
968	  functionality such as 3D graphics.
969
970config SM_GPUCC_8250
971	tristate "SM8250 Graphics Clock Controller"
972	depends on ARM64 || COMPILE_TEST
973	select SM_GCC_8250
974	help
975	  Support for the graphics clock controller on SM8250 devices.
976	  Say Y if you want to support graphics controller devices and
977	  functionality such as 3D graphics.
978
979config SM_GPUCC_8350
980	tristate "SM8350 Graphics Clock Controller"
981	depends on ARM64 || COMPILE_TEST
982	select SM_GCC_8350
983	help
984	  Support for the graphics clock controller on SM8350 devices.
985	  Say Y if you want to support graphics controller devices and
986	  functionality such as 3D graphics.
987
988config SM_GPUCC_8450
989	tristate "SM8450 Graphics Clock Controller"
990	depends on ARM64 || COMPILE_TEST
991	select SM_GCC_8450
992	help
993	  Support for the graphics clock controller on SM8450 devices.
994	  Say Y if you want to support graphics controller devices and
995	  functionality such as 3D graphics.
996
997config SM_GPUCC_8550
998	tristate "SM8550 Graphics Clock Controller"
999	depends on ARM64 || COMPILE_TEST
1000	select SM_GCC_8550
1001	help
1002	  Support for the graphics clock controller on SM8550 devices.
1003	  Say Y if you want to support graphics controller devices and
1004	  functionality such as 3D graphics.
1005
1006config SM_TCSRCC_8550
1007	tristate "SM8550 TCSR Clock Controller"
1008	depends on ARM64 || COMPILE_TEST
1009	select QCOM_GDSC
1010	help
1011	  Support for the TCSR clock controller on SM8550 devices.
1012	  Say Y if you want to use peripheral devices such as SD/UFS.
1013
1014config SM_VIDEOCC_8150
1015	tristate "SM8150 Video Clock Controller"
1016	depends on ARM64 || COMPILE_TEST
1017	select SM_GCC_8150
1018	select QCOM_GDSC
1019	help
1020	  Support for the video clock controller on SM8150 devices.
1021	  Say Y if you want to support video devices and functionality such as
1022	  video encode and decode.
1023
1024config SM_VIDEOCC_8250
1025	tristate "SM8250 Video Clock Controller"
1026	depends on ARM64 || COMPILE_TEST
1027	select SM_GCC_8250
1028	select QCOM_GDSC
1029	help
1030	  Support for the video clock controller on SM8250 devices.
1031	  Say Y if you want to support video devices and functionality such as
1032	  video encode and decode.
1033
1034config SM_VIDEOCC_8350
1035	tristate "SM8350 Video Clock Controller"
1036	depends on ARM64 || COMPILE_TEST
1037	select SM_GCC_8350
1038	select QCOM_GDSC
1039	help
1040	  Support for the video clock controller on SM8350 devices.
1041	  Say Y if you want to support video devices and functionality such as
1042	  video encode and decode.
1043
1044config SM_VIDEOCC_8550
1045	tristate "SM8550 Video Clock Controller"
1046	depends on ARM64 || COMPILE_TEST
1047	select SM_GCC_8550
1048	select QCOM_GDSC
1049	help
1050	  Support for the video clock controller on Qualcomm Technologies, Inc.
1051	  SM8550 devices.
1052	  Say Y if you want to support video devices and functionality such as
1053	  video encode/decode.
1054
1055config SPMI_PMIC_CLKDIV
1056	tristate "SPMI PMIC clkdiv Support"
1057	depends on SPMI || COMPILE_TEST
1058	help
1059	  This driver supports the clkdiv functionality on the Qualcomm
1060	  Technologies, Inc. SPMI PMIC. It configures the frequency of
1061	  clkdiv outputs of the PMIC. These clocks are typically wired
1062	  through alternate functions on GPIO pins.
1063
1064config QCOM_HFPLL
1065	tristate "High-Frequency PLL (HFPLL) Clock Controller"
1066	help
1067	  Support for the high-frequency PLLs present on Qualcomm devices.
1068	  Say Y if you want to support CPU frequency scaling on devices
1069	  such as MSM8974, APQ8084, etc.
1070
1071config KPSS_XCC
1072	tristate "KPSS Clock Controller"
1073	help
1074	  Support for the Krait ACC and GCC clock controllers. Say Y
1075	  if you want to support CPU frequency scaling on devices such
1076	  as MSM8960, APQ8064, etc.
1077
1078config KRAITCC
1079	tristate "Krait Clock Controller"
1080	depends on ARM
1081	select KRAIT_CLOCKS
1082	help
1083	  Support for the Krait CPU clocks on Qualcomm devices.
1084	  Say Y if you want to support CPU frequency scaling.
1085
1086config CLK_GFM_LPASS_SM8250
1087	tristate "SM8250 GFM LPASS Clocks"
1088	depends on ARM64 || COMPILE_TEST
1089	help
1090	  Support for the Glitch Free Mux (GFM) Low power audio
1091          subsystem (LPASS) clocks found on SM8250 SoCs.
1092
1093config SM_VIDEOCC_8450
1094	tristate "SM8450 Video Clock Controller"
1095	depends on ARM64 || COMPILE_TEST
1096	select SM_GCC_8450
1097	select QCOM_GDSC
1098	help
1099	  Support for the video clock controller on Qualcomm Technologies, Inc.
1100	  SM8450 devices.
1101	  Say Y if you want to support video devices and functionality such as
1102	  video encode/decode.
1103endif
1104