xref: /linux/drivers/clk/qcom/Kconfig (revision 2ce505b437e98adc3c009d22762f491cd2cb15ee)
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
10menuconfig COMMON_CLK_QCOM
11	tristate "Support for Qualcomm's clock controllers"
12	depends on OF
13	depends on ARCH_QCOM || COMPILE_TEST
14	select RATIONAL
15	select REGMAP_MMIO
16	select RESET_CONTROLLER
17	select INTERCONNECT
18	select INTERCONNECT_CLK
19
20if COMMON_CLK_QCOM
21
22config CLK_ELIZA_DISPCC
23	tristate "Eliza Display Clock Controller"
24	depends on ARM64 || COMPILE_TEST
25	select CLK_ELIZA_GCC
26	help
27	  Support for the display clock controllers on Eliza SoCs.
28	  Say Y if you want to support display devices and functionality such as
29	  splash screen.
30
31config CLK_ELIZA_GCC
32	tristate "Eliza Global Clock Controller"
33	depends on ARM64 || COMPILE_TEST
34	select QCOM_GDSC
35	help
36	  Support for the global clock controller on Eliza devices.
37	  Say Y if you want to use peripheral devices such as UART, SPI,
38	  I2C, USB, UFS, SDCC, etc.
39
40config CLK_ELIZA_TCSRCC
41	tristate "Eliza TCSR Clock Controller"
42	depends on ARM64 || COMPILE_TEST
43	select QCOM_GDSC
44	help
45	  Support for the TCSR clock controller on Eliza devices.
46	  Say Y if you want to use peripheral devices such as USB/PCIe/UFS.
47
48config CLK_GLYMUR_CAMCC
49	tristate "Glymur Camera Clock Controller"
50	depends on ARM64 || COMPILE_TEST
51	select CLK_GLYMUR_GCC
52	default m if ARCH_QCOM
53	help
54	  Support for the camera clock controller on Qualcomm Technologies, Inc
55	  Glymur devices.
56	  Say Y if you want to support camera devices and functionality such as
57	  capturing pictures.
58
59config CLK_GLYMUR_DISPCC
60	tristate "Glymur Display Clock Controller"
61	depends on ARM64 || COMPILE_TEST
62	select CLK_GLYMUR_GCC
63	help
64	  Support for the display clock controllers on Qualcomm
65	  Technologies, Inc. Glymur devices.
66	  Say Y if you want to support display devices and functionality such as
67	  splash screen.
68
69config CLK_GLYMUR_EVACC
70	tristate "Glymur EVA Clock Controller"
71	depends on ARM64 || COMPILE_TEST
72	default m if ARCH_QCOM
73	select CLK_GLYMUR_GCC
74	help
75	  Support for the Enhanced Video Analytics (EVA) clock controller on
76	  Qualcomm Technologies, Inc. Glymur devices.
77	  Say Y if you want to support EVA devices and functionality such as
78	  vision processing.
79
80config CLK_GLYMUR_GCC
81	tristate "Glymur Global Clock Controller"
82	depends on ARM64 || COMPILE_TEST
83	select QCOM_GDSC
84	help
85	  Support for the global clock controller on Glymur devices.
86	  Say Y if you want to use peripheral devices such as UART, SPI,
87	  I2C, USB, UFS, SDCC, etc.
88
89config CLK_GLYMUR_GPUCC
90	tristate "Glymur Graphics Clock Controller"
91	depends on ARM64 || COMPILE_TEST
92	select CLK_GLYMUR_GCC
93	help
94	  Support for the graphics clock controller on Glymur devices.
95	  Say Y if you want to support graphics controller devices and
96	  functionality such as 3D graphics.
97
98config CLK_GLYMUR_TCSRCC
99	tristate "Glymur TCSR Clock Controller"
100	depends on ARM64 || COMPILE_TEST
101	select QCOM_GDSC
102	help
103	  Support for the TCSR clock controller on Glymur devices.
104	  Say Y if you want to use peripheral devices such as USB/PCIe/EDP.
105
106config CLK_GLYMUR_VIDEOCC
107	tristate "Glymur Video Clock Controller"
108	depends on ARM64 || COMPILE_TEST
109	select CLK_GLYMUR_GCC
110	help
111	  Support for the video clock controller on Glymur devices.
112	  Say Y if you want to support video devices and functionality such as
113	  video encode and decode.
114
115config CLK_KAANAPALI_CAMCC
116	tristate "Kaanapali Camera Clock Controller"
117	depends on ARM64 || COMPILE_TEST
118	select CLK_KAANAPALI_GCC
119	help
120	  Support for the camera clock controller on Qualcomm Technologies, Inc
121	  Kaanapali devices.
122	  Say Y if you want to support camera devices and functionality such as
123	  capturing pictures.
124
125config CLK_KAANAPALI_DISPCC
126	tristate "Kaanapali Display Clock Controller"
127	depends on ARM64 || COMPILE_TEST
128	select CLK_KAANAPALI_GCC
129	help
130	  Support for the display clock controller on Qualcomm Technologies, Inc
131	  Kaanapali devices.
132	  Say Y if you want to support display devices and functionality such as
133	  splash screen.
134
135config CLK_KAANAPALI_GCC
136	tristate "Kaanapali Global Clock Controller"
137	depends on ARM64 || COMPILE_TEST
138	select QCOM_GDSC
139	help
140	  Support for the global clock controller on Kaanapali devices.
141	  Say Y if you want to use peripheral devices such as UART,
142	  SPI, I2C, USB, SD/UFS, PCIe etc.
143
144config CLK_KAANAPALI_GPUCC
145	tristate "Kaanapali Graphics Clock Controller"
146	depends on ARM64 || COMPILE_TEST
147	select CLK_KAANAPALI_GCC
148	help
149	  Support for the graphics clock controller on Kaanapali devices.
150	  Say Y if you want to support graphics controller devices and
151	  functionality such as 3D graphics.
152
153config CLK_KAANAPALI_TCSRCC
154	tristate "Kaanapali TCSR Clock Controller"
155	depends on ARM64 || COMPILE_TEST
156	select QCOM_GDSC
157	help
158	  Support for the TCSR clock controller on Kaanapali devices.
159	  Say Y if you want to use peripheral devices such as PCIe, USB, UFS.
160
161config CLK_KAANAPALI_VIDEOCC
162	tristate "Kaanapali Video Clock Controller"
163	depends on ARM64 || COMPILE_TEST
164	select CLK_KAANAPALI_GCC
165	help
166	  Support for the video clock controller on Kaanapali devices.
167	  Say Y if you want to support video devices and functionality such as
168	  video encode/decode.
169
170config CLK_NORD_GCC
171	tristate "Nord Global Clock Controller"
172	depends on ARM64 || COMPILE_TEST
173	select QCOM_GDSC
174	help
175	  Support for the global clock controller on Nord devices.
176	  Say Y if you want to use peripheral devices such as UART,
177	  SPI, I2C, USB, SD/UFS, PCIe etc. The clock controller is a combination
178	  of GCC, SE_GCC, NE_GCC and NW_GCC.
179
180config CLK_SHIKRA_GCC
181	tristate "Shikra Global Clock Controller"
182	depends on ARM64 || COMPILE_TEST
183	select QCOM_GDSC
184	default ARCH_QCOM
185	help
186	  Support for the global clock controller on Shikra devices.
187	  Say Y if you want to use multimedia devices or peripheral
188	  devices such as Camera, Video, UART, SPI, I2C, USB, SD/eMMC etc.
189
190config CLK_X1E80100_CAMCC
191	tristate "X1E80100 Camera Clock Controller"
192	depends on ARM64 || COMPILE_TEST
193	select CLK_X1E80100_GCC
194	help
195	  Support for the camera clock controller on X1E80100 devices.
196	  Say Y if you want to support camera devices and camera functionality.
197
198config CLK_X1E80100_DISPCC
199	tristate "X1E80100 Display Clock Controller"
200	depends on ARM64 || COMPILE_TEST
201	select CLK_X1E80100_GCC
202	help
203	  Support for the two display clock controllers on Qualcomm
204	  Technologies, Inc. X1E80100 devices.
205	  Say Y if you want to support display devices and functionality such as
206	  splash screen.
207
208config CLK_X1E80100_GCC
209	tristate "X1E80100 Global Clock Controller"
210	depends on ARM64 || COMPILE_TEST
211	select QCOM_GDSC
212	help
213	  Support for the global clock controller on Qualcomm Technologies, Inc
214	  X1E80100 devices.
215	  Say Y if you want to use peripheral devices such as UART, SPI, I2C,
216	  USB, UFS, SD/eMMC, PCIe, etc.
217
218config CLK_X1E80100_GPUCC
219	tristate "X1E80100 Graphics Clock Controller"
220	depends on ARM64 || COMPILE_TEST
221	select CLK_X1E80100_GCC
222	help
223	  Support for the graphics clock controller on X1E80100 devices.
224	  Say Y if you want to support graphics controller devices and
225	  functionality such as 3D graphics.
226
227config CLK_X1E80100_TCSRCC
228	tristate "X1E80100 TCSR Clock Controller"
229	depends on ARM64 || COMPILE_TEST
230	select QCOM_GDSC
231	help
232	  Support for the TCSR clock controller on X1E80100 devices.
233	  Say Y if you want to use peripheral devices such as SD/UFS.
234
235config CLK_X1P42100_CAMCC
236	tristate "X1P42100 Camera Clock Controller"
237	depends on ARM64 || COMPILE_TEST
238	select CLK_X1E80100_GCC
239	default m if ARCH_QCOM
240	help
241	  Support for the camera clock controller on Qualcomm Technologies, Inc.
242	  X1P42100 devices.
243	  Say Y if you want to support camera devices and camera functionality
244	  such as capturing pictures.
245
246config CLK_X1P42100_GPUCC
247	tristate "X1P42100 Graphics Clock Controller"
248	depends on ARM64 || COMPILE_TEST
249	select CLK_X1E80100_GCC
250	help
251	  Support for the graphics clock controller on X1P42100 devices.
252	  Say Y if you want to support graphics controller devices and
253	  functionality such as 3D graphics.
254
255config CLK_X1P42100_VIDEOCC
256	tristate "X1P42100 Video Clock Controller"
257	depends on ARM64 || COMPILE_TEST
258	select CLK_X1E80100_GCC
259	default m if ARCH_QCOM
260	help
261	  Support for the video clock controller on Qualcomm Technologies, Inc.
262	  X1P42100 devices.
263	  Say Y if you want to support video devices and functionality such as
264	  video encode/decode.
265
266config CLK_QCM2290_GPUCC
267	tristate "QCM2290 Graphics Clock Controller"
268	depends on ARM64 || COMPILE_TEST
269	select QCM_GCC_2290
270	help
271	  Support for the graphics clock controller on QCM2290 devices.
272	  Say Y if you want to support graphics controller devices and
273	  functionality such as 3D graphics.
274
275config QCOM_A53PLL
276	tristate "MSM8916 A53 PLL"
277	help
278	  Support for the A53 PLL on MSM8916 devices. It provides
279	  the CPU with frequencies above 1GHz.
280	  Say Y if you want to support higher CPU frequencies on MSM8916
281	  devices.
282
283config QCOM_A7PLL
284	tristate "A7 PLL driver for SDX55 and SDX65"
285	help
286	  Support for the A7 PLL on SDX55 and SDX65 devices. It provides the CPU with
287	  frequencies above 1GHz.
288	  Say Y if you want to support higher CPU frequencies on SDX55 and SDX65
289	  devices.
290
291config QCOM_CLK_APCS_MSM8916
292	tristate "MSM8916 APCS Clock Controller"
293	depends on QCOM_APCS_IPC || COMPILE_TEST
294	help
295	  Support for the APCS Clock Controller on msm8916 devices. The
296	  APCS is managing the mux and divider which feeds the CPUs.
297	  Say Y if you want to support CPU frequency scaling on devices
298	  such as msm8916.
299
300config QCOM_CLK_APCC_MSM8996
301	tristate "MSM8996 CPU Clock Controller"
302	select QCOM_KRYO_L2_ACCESSORS
303	select INTERCONNECT_CLK if INTERCONNECT
304	depends on ARM64
305	help
306	  Support for the CPU clock controller on msm8996 devices.
307	  Say Y if you want to support CPU clock scaling using CPUfreq
308	  drivers for dynamic power management.
309
310config QCOM_CLK_APCS_SDX55
311	tristate "SDX55 and SDX65 APCS Clock Controller"
312	depends on QCOM_APCS_IPC || COMPILE_TEST
313	depends on ARM || COMPILE_TEST
314	help
315	  Support for the APCS Clock Controller on SDX55, SDX65 platforms. The
316	  APCS is managing the mux and divider which feeds the CPUs.
317	  Say Y if you want to support CPU frequency scaling on devices
318	  such as SDX55, SDX65.
319
320config QCOM_CLK_RPM
321	tristate "RPM based Clock Controller"
322	depends on MFD_QCOM_RPM
323	help
324	  The RPM (Resource Power Manager) is a dedicated hardware engine for
325	  managing the shared SoC resources in order to keep the lowest power
326	  profile. It communicates with other hardware subsystems via shared
327	  memory and accepts clock requests, aggregates the requests and turns
328	  the clocks on/off or scales them on demand.
329	  Say Y if you want to support the clocks exposed by the RPM on
330	  platforms such as apq8064, msm8660, msm8960 etc.
331
332config QCOM_CLK_SMD_RPM
333	tristate "RPM over SMD based Clock Controller"
334	depends on QCOM_SMD_RPM
335	help
336	  The RPM (Resource Power Manager) is a dedicated hardware engine for
337	  managing the shared SoC resources in order to keep the lowest power
338	  profile. It communicates with other hardware subsystems via shared
339	  memory and accepts clock requests, aggregates the requests and turns
340	  the clocks on/off or scales them on demand.
341	  Say Y if you want to support the clocks exposed by the RPM on
342	  platforms such as apq8016, apq8084, msm8974 etc.
343
344config QCOM_CLK_RPMH
345	tristate "RPMh Clock Driver"
346	depends on QCOM_RPMH
347	help
348	 RPMh manages shared resources on some Qualcomm Technologies, Inc.
349	 SoCs. It accepts requests from other hardware subsystems via RSC.
350	 Say Y if you want to support the clocks exposed by RPMh on
351	 platforms such as SDM845.
352
353config CLK_HAWI_GCC
354	tristate "Hawi Global Clock Controller"
355	depends on ARM64 || COMPILE_TEST
356	select QCOM_GDSC
357	help
358	  Support for the global clock controller on Hawi devices.
359	  Say Y if you want to use peripheral devices such as UART, SPI,
360	  I2C, USB, UFS, SD/eMMC, PCIe, etc.
361
362config CLK_HAWI_TCSRCC
363	tristate "Hawi TCSR Clock Controller"
364	depends on ARM64 || COMPILE_TEST
365	help
366	  Support for the TCSR clock controller on Hawi devices.
367	  Say Y if you want to use peripheral devices such as PCIe, USB, UFS.
368
369config CLK_HAWI_VIDEOCC
370	tristate "Hawi Video Clock Controller"
371	depends on ARM64 || COMPILE_TEST
372	select CLK_HAWI_GCC
373	default m if ARCH_QCOM
374	help
375	  Support for the video clock controller on Hawi devices.
376	  Say Y if you want to support video devices and functionality such as
377	  video encode/decode.
378
379config APQ_GCC_8084
380	tristate "APQ8084 Global Clock Controller"
381	depends on ARM || COMPILE_TEST
382	select QCOM_GDSC
383	help
384	  Support for the global clock controller on apq8084 devices.
385	  Say Y if you want to use peripheral devices such as UART, SPI,
386	  i2c, USB, SD/eMMC, SATA, PCIe, etc.
387
388config APQ_MMCC_8084
389	tristate "APQ8084 Multimedia Clock Controller"
390	depends on ARM || COMPILE_TEST
391	select APQ_GCC_8084
392	select QCOM_GDSC
393	help
394	  Support for the multimedia clock controller on apq8084 devices.
395	  Say Y if you want to support multimedia devices such as display,
396	  graphics, video encode/decode, camera, etc.
397
398config IPQ_APSS_PLL
399	tristate "IPQ APSS PLL"
400	help
401	  Support for APSS PLL on ipq devices. The APSS PLL is the main
402	  clock that feeds the CPUs on ipq based devices.
403	  Say Y if you want to support CPU frequency scaling on ipq based
404	  devices.
405
406config IPQ_APSS_5424
407	tristate "IPQ5424 APSS Clock Controller"
408	depends on ARM64 || COMPILE_TEST
409	select IPQ_APSS_PLL
410	default y if IPQ_GCC_5424
411	help
412	  Support for APSS Clock controller on Qualcomm IPQ5424 platform.
413	  Say Y if you want to support CPU frequency scaling on ipq based
414	  devices.
415
416config IPQ_APSS_6018
417	tristate "IPQ6018 APSS Clock Controller"
418	select IPQ_APSS_PLL
419	depends on ARM64 || COMPILE_TEST
420	depends on QCOM_APCS_IPC || COMPILE_TEST
421	depends on QCOM_SMEM
422	help
423	  Support for APSS clock controller on IPQ platforms. The
424	  APSS clock controller manages the Mux and enable block that feeds the
425	  CPUs.
426	  Say Y if you want to support CPU frequency scaling on
427	  ipq based devices.
428
429config IPQ_CMN_PLL
430	tristate "IPQ CMN PLL Clock Controller"
431	depends on ARM64 || COMPILE_TEST
432	help
433	  Support for CMN PLL clock controller on IPQ platform. The
434	  CMN PLL consumes the AHB/SYS clocks from GCC and supplies
435	  the output clocks to the networking hardware and GCC blocks.
436	  Say Y or M if you want to support CMN PLL clock on the IPQ
437	  based devices.
438
439config IPQ_GCC_4019
440	tristate "IPQ4019 Global Clock Controller"
441	help
442	  Support for the global clock controller on ipq4019 devices.
443	  Say Y if you want to use peripheral devices such as UART, SPI,
444	  i2c, USB, SD/eMMC, etc.
445
446config IPQ_GCC_5018
447	tristate "IPQ5018 Global Clock Controller"
448	depends on ARM || ARM64 || COMPILE_TEST
449	help
450	  Support for global clock controller on ipq5018 devices.
451	  Say Y if you want to use peripheral devices such as UART, SPI,
452	  i2c, USB, SD/eMMC, etc.
453
454config IPQ_GCC_5210
455	tristate "IPQ5210 Global Clock Controller"
456	depends on ARM64 || COMPILE_TEST
457	help
458	  Support for the global clock controller on ipq5210 devices.
459	  Say Y if you want to use peripheral devices such as UART, SPI,
460	  i2c, USB, SD/eMMC, etc.
461
462config IPQ_GCC_5332
463	tristate "IPQ5332 Global Clock Controller"
464	depends on ARM64 || COMPILE_TEST
465	help
466	  Support for the global clock controller on ipq5332 devices.
467	  Say Y if you want to use peripheral devices such as UART, SPI,
468	  i2c, USB, SD/eMMC, etc.
469
470config IPQ_GCC_5424
471	tristate "IPQ5424 Global Clock Controller"
472	depends on ARM64 || COMPILE_TEST
473	help
474	  Support for the global clock controller on ipq5424 devices.
475	  Say Y if you want to use peripheral devices such as UART, SPI,
476	  i2c, USB, SD/eMMC, etc.
477
478config IPQ_GCC_6018
479	tristate "IPQ6018 Global Clock Controller"
480	depends on ARM64 || COMPILE_TEST
481	help
482	  Support for global clock controller on ipq6018 devices.
483	  Say Y if you want to use peripheral devices such as UART, SPI,
484	  i2c, USB, SD/eMMC, etc. Select this for the root clock
485	  of ipq6018.
486
487config IPQ_GCC_806X
488	tristate "IPQ806x Global Clock Controller"
489	depends on ARM || COMPILE_TEST
490	help
491	  Support for the global clock controller on ipq806x devices.
492	  Say Y if you want to use peripheral devices such as UART, SPI,
493	  i2c, USB, SD/eMMC, etc.
494
495config IPQ_LCC_806X
496	tristate "IPQ806x LPASS Clock Controller"
497	depends on ARM || COMPILE_TEST
498	select IPQ_GCC_806X
499	help
500	  Support for the LPASS clock controller on ipq806x devices.
501	  Say Y if you want to use audio devices such as i2s, pcm,
502	  S/PDIF, etc.
503
504config IPQ_GCC_8074
505	tristate "IPQ8074 Global Clock Controller"
506	depends on ARM64 || COMPILE_TEST
507	select QCOM_GDSC
508	help
509	  Support for global clock controller on ipq8074 devices.
510	  Say Y if you want to use peripheral devices such as UART, SPI,
511	  i2c, USB, SD/eMMC, etc. Select this for the root clock
512	  of ipq8074.
513
514config IPQ_GCC_9574
515	tristate "IPQ9574 Global Clock Controller"
516	depends on ARM64 || COMPILE_TEST
517	help
518	  Support for global clock controller on ipq9574 devices.
519	  Say Y if you want to use peripheral devices such as UART, SPI,
520	  i2c, USB, SD/eMMC, etc. Select this for the root clock
521	  of ipq9574.
522
523config IPQ_GCC_9650
524	tristate "IPQ9650 Global Clock Controller"
525	depends on ARM64 || COMPILE_TEST
526	default ARCH_QCOM
527	help
528	  Support for global clock controller on ipq9650 devices.
529	  Say Y if you want to use peripheral devices such as UART, SPI,
530	  i2c, USB, SD/eMMC, etc. Select this for the root clock
531	  of ipq9650.
532
533config IPQ_NSSCC_5424
534	tristate "IPQ5424 NSS Clock Controller"
535	depends on ARM64 || COMPILE_TEST
536	depends on IPQ_GCC_5424
537	help
538	  Support for NSS clock controller on ipq5424 devices.
539	  NSSCC receives the clock sources from GCC, CMN PLL and UNIPHY (PCS).
540	  It in turn supplies the clocks and resets to the networking hardware.
541	  Say Y or M if you want to enable networking function on the
542	  IPQ5424 devices.
543
544config IPQ_NSSCC_9574
545        tristate "IPQ9574 NSS Clock Controller"
546        depends on ARM64 || COMPILE_TEST
547        depends on IPQ_GCC_9574
548        help
549          Support for NSS clock controller on ipq9574 devices.
550
551config IPQ_NSSCC_QCA8K
552	tristate "QCA8K(QCA8386 or QCA8084) NSS Clock Controller"
553	depends on PHYLIB
554	help
555	  Support for NSS(Network SubSystem) clock controller on
556	  qca8386/qca8084 chip.
557	  Say Y or M if you want to use network features of switch or
558	  PHY device. Select this for the root clock of qca8k.
559
560config MSM_GCC_8660
561	tristate "MSM8660 Global Clock Controller"
562	depends on ARM || COMPILE_TEST
563	help
564	  Support for the global clock controller on msm8660 devices.
565	  Say Y if you want to use peripheral devices such as UART, SPI,
566	  i2c, USB, SD/eMMC, etc.
567
568config MSM_GCC_8909
569	tristate "MSM8909 Global Clock Controller"
570	depends on ARM || COMPILE_TEST
571	select QCOM_GDSC
572	help
573	  Support for the global clock controller on msm8909 devices.
574	  Say Y if you want to use devices such as UART, SPI, I2C, USB,
575	  SD/eMMC, display, graphics, camera etc.
576
577config MSM_GCC_8916
578	tristate "MSM8916 Global Clock Controller"
579	select QCOM_GDSC
580	help
581	  Support for the global clock controller on msm8916 devices.
582	  Say Y if you want to use devices such as UART, SPI i2c, USB,
583	  SD/eMMC, display, graphics, camera etc.
584
585config MSM_GCC_8917
586	tristate "MSM89(17/37/40)/QM215/SDM439 Global Clock Controller"
587	depends on ARM64 || COMPILE_TEST
588	select QCOM_GDSC
589	help
590	  Support for the global clock controller on msm8917, msm8937,
591	  msm8940, qm215 and sdm439 devices.
592	  Say Y if you want to use devices such as UART, SPI i2c, USB,
593	  SD/eMMC, display, graphics, camera etc.
594
595config MSM_GCC_8939
596	tristate "MSM8939 Global Clock Controller"
597	select QCOM_GDSC
598	help
599	  Support for the global clock controller on msm8939 devices.
600	  Say Y if you want to use devices such as UART, SPI i2c, USB,
601	  SD/eMMC, display, graphics, camera etc.
602
603config MSM_GCC_8960
604	tristate "APQ8064/MSM8960 Global Clock Controller"
605	depends on ARM || COMPILE_TEST
606	help
607	  Support for the global clock controller on apq8064/msm8960 devices.
608	  Say Y if you want to use peripheral devices such as UART, SPI,
609	  i2c, USB, SD/eMMC, SATA, PCIe, etc.
610
611config MSM_LCC_8960
612	tristate "APQ8064/MSM8960/MDM9650 LPASS Clock Controller"
613	depends on ARM || COMPILE_TEST
614	help
615	  Support for the LPASS clock controller on apq8064/msm8960/mdm9650
616	  devices.
617	  Say Y if you want to use audio devices such as i2s, pcm,
618	  SLIMBus, etc.
619
620config MDM_GCC_9607
621	tristate "MDM9607 Global Clock Controller"
622	depends on ARM || COMPILE_TEST
623	help
624	  Support for the global clock controller on mdm9607 devices.
625	  Say Y if you want to use peripheral devices such as UART, SPI,
626	  I2C, USB, SD/eMMC, etc.
627
628config MDM_GCC_9615
629	tristate "MDM9615 Global Clock Controller"
630	depends on ARM || COMPILE_TEST
631	help
632	  Support for the global clock controller on mdm9615 devices.
633	  Say Y if you want to use peripheral devices such as UART, SPI,
634	  i2c, USB, SD/eMMC, etc.
635
636config MSM_MMCC_8960
637	tristate "MSM8960 Multimedia Clock Controller"
638	depends on ARM || COMPILE_TEST
639	select MSM_GCC_8960
640	help
641	  Support for the multimedia clock controller on msm8960 devices.
642	  Say Y if you want to support multimedia devices such as display,
643	  graphics, video encode/decode, camera, etc.
644
645config MSM_GCC_8953
646	tristate "MSM8953 Global Clock Controller"
647	select QCOM_GDSC
648	help
649	  Support for the global clock controller on msm8953 devices.
650	  Say Y if you want to use devices such as UART, SPI i2c, USB,
651	  SD/eMMC, display, graphics, camera etc.
652
653config MSM_GCC_8974
654	tristate "MSM8974 Global Clock Controller"
655	depends on ARM || COMPILE_TEST
656	select QCOM_GDSC
657	help
658	  Support for the global clock controller on msm8974 devices.
659	  Say Y if you want to use peripheral devices such as UART, SPI,
660	  i2c, USB, SD/eMMC, SATA, PCIe, etc.
661
662config MSM_MMCC_8974
663	tristate "MSM8974 Multimedia Clock Controller"
664	depends on ARM || COMPILE_TEST
665	select MSM_GCC_8974
666	select QCOM_GDSC
667	help
668	  Support for the multimedia clock controller on msm8974 devices.
669	  Say Y if you want to support multimedia devices such as display,
670	  graphics, video encode/decode, camera, etc.
671
672config MSM_GCC_8976
673	tristate "MSM8956/76 Global Clock Controller"
674	select QCOM_GDSC
675	help
676	  Support for the global clock controller on msm8956/76 devices.
677	  Say Y if you want to use peripheral devices such as UART, SPI,
678	  i2c, USB, SD/eMMC, SATA, PCIe, etc.
679
680config MSM_MMCC_8994
681	tristate "MSM8994 Multimedia Clock Controller"
682	select MSM_GCC_8994
683	select QCOM_GDSC
684	help
685	  Support for the multimedia clock controller on msm8994 devices.
686	  Say Y if you want to support multimedia devices such as display,
687	  graphics, video encode/decode, camera, etc.
688
689config MSM_GCC_8994
690	tristate "MSM8994 Global Clock Controller"
691	help
692	  Support for the global clock controller on msm8994 devices.
693	  Say Y if you want to use peripheral devices such as UART, SPI,
694	  i2c, USB, UFS, SD/eMMC, PCIe, etc.
695
696config MSM_GCC_8996
697	tristate "MSM8996 Global Clock Controller"
698	select QCOM_GDSC
699	help
700	  Support for the global clock controller on msm8996 devices.
701	  Say Y if you want to use peripheral devices such as UART, SPI,
702	  i2c, USB, UFS, SD/eMMC, PCIe, etc.
703
704config MSM_MMCC_8996
705	tristate "MSM8996 Multimedia Clock Controller"
706	select MSM_GCC_8996
707	select QCOM_GDSC
708	help
709	  Support for the multimedia clock controller on msm8996 devices.
710	  Say Y if you want to support multimedia devices such as display,
711	  graphics, video encode/decode, camera, etc.
712
713config MSM_GCC_8998
714	tristate "MSM8998 Global Clock Controller"
715	select QCOM_GDSC
716	help
717	  Support for the global clock controller on msm8998 devices.
718	  Say Y if you want to use peripheral devices such as UART, SPI,
719	  i2c, USB, UFS, SD/eMMC, PCIe, etc.
720
721config MSM_GPUCC_8998
722	tristate "MSM8998 Graphics Clock Controller"
723	select MSM_GCC_8998
724	select QCOM_GDSC
725	help
726	  Support for the graphics clock controller on MSM8998 devices.
727	  Say Y if you want to support graphics controller devices and
728	  functionality such as 3D graphics.
729
730config MSM_MMCC_8998
731	tristate "MSM8998 Multimedia Clock Controller"
732	select MSM_GCC_8998
733	select QCOM_GDSC
734	help
735	  Support for the multimedia clock controller on msm8998 devices.
736	  Say Y if you want to support multimedia devices such as display,
737	  graphics, video encode/decode, camera, etc.
738
739config QCM_GCC_2290
740	tristate "QCM2290 Global Clock Controller"
741	depends on ARM64 || COMPILE_TEST
742	select QCOM_GDSC
743	help
744	  Support for the global clock controller on QCM2290 devices.
745	  Say Y if you want to use multimedia devices or peripheral
746	  devices such as UART, SPI, I2C, USB, SD/eMMC etc.
747
748config QCM_DISPCC_2290
749	tristate "QCM2290 Display Clock Controller"
750	depends on ARM64 || COMPILE_TEST
751	select QCM_GCC_2290
752	help
753	  Support for the display clock controller on Qualcomm Technologies, Inc
754	  QCM2290 devices.
755	  Say Y if you want to support display devices and functionality such as
756	  splash screen.
757
758config QCS_DISPCC_615
759	tristate "QCS615 Display Clock Controller"
760	depends on ARM64 || COMPILE_TEST
761	select QCS_GCC_615
762	help
763	  Support for the display clock controller on Qualcomm Technologies, Inc
764	  QCS615 devices.
765	  Say Y if you want to support display devices and functionality such as
766	  splash screen.
767
768config QCS_CAMCC_615
769	tristate "QCS615 Camera Clock Controller"
770	depends on ARM64 || COMPILE_TEST
771	select QCS_GCC_615
772	help
773	  Support for the camera clock controller on Qualcomm Technologies, Inc
774	  QCS615 devices.
775	  Say Y if you want to support camera devices and functionality such as
776	  capturing pictures.
777
778config QCS_GCC_404
779	tristate "QCS404 Global Clock Controller"
780	help
781	  Support for the global clock controller on QCS404 devices.
782	  Say Y if you want to use multimedia devices or peripheral
783	  devices such as UART, SPI, I2C, USB, SD/eMMC, PCIe etc.
784
785config CLK_NORD_TCSRCC
786	tristate "Nord TCSR Clock Controller"
787	depends on ARM64 || COMPILE_TEST
788	help
789	  Support for the TCSR clock controller on Nord devices.
790	  Say Y if you want to use peripheral devices such as PCIe, USB, UFS etc.
791
792config SA_CAMCC_8775P
793	tristate "SA8775P Camera Clock Controller"
794	depends on ARM64 || COMPILE_TEST
795	select SA_GCC_8775P
796	help
797	  Support for the camera clock controller on Qualcomm Technologies, Inc
798	  SA8775P devices.
799	  Say Y if you want to support camera devices and functionality such as
800	  capturing pictures.
801
802config QCS_GCC_8300
803	tristate "QCS8300 Global Clock Controller"
804	depends on ARM64 || COMPILE_TEST
805	select QCOM_GDSC
806	help
807	  Support for the global clock controller on Qualcomm Technologies, Inc
808	  QCS8300 devices.
809	  Say Y if you want to use peripheral devices such as UART,
810	  SPI, I2C, USB, SD/UFS, PCIe etc.
811
812config QCS_GCC_615
813	tristate "QCS615 Global Clock Controller"
814	depends on ARM64 || COMPILE_TEST
815	select QCOM_GDSC
816	help
817	  Support for the global clock controller on QCS615 devices.
818	  Say Y if you want to use multimedia devices or peripheral
819	  devices such as UART, SPI, I2C, USB, SD/eMMC, PCIe etc.
820
821config QCS_GPUCC_615
822	tristate "QCS615 Graphics clock controller"
823	depends on ARM64 || COMPILE_TEST
824	select QCS_GCC_615
825	help
826	  Support for the graphics clock controller on QCS615 devices.
827	  Say Y if you want to support graphics controller devices and
828	  functionality such as 3D graphics.
829
830config QCS_VIDEOCC_615
831	tristate "QCS615 Video Clock Controller"
832	depends on ARM64 || COMPILE_TEST
833	select QCS_GCC_615
834	help
835	  Support for the video clock controller on QCS615 devices.
836	  Say Y if you want to support video devices and functionality such as
837	  video encode and decode.
838
839config SC_CAMCC_7180
840	tristate "SC7180 Camera Clock Controller"
841	depends on ARM64 || COMPILE_TEST
842	select SC_GCC_7180
843	help
844	  Support for the camera clock controller on Qualcomm Technologies, Inc
845	  SC7180 devices.
846	  Say Y if you want to support camera devices and functionality such as
847	  capturing pictures.
848
849config SC_CAMCC_7280
850	tristate "SC7280 Camera Clock Controller"
851	depends on ARM64 || COMPILE_TEST
852	select SC_GCC_7280
853	help
854	  Support for the camera clock controller on Qualcomm Technologies, Inc
855	  SC7280 devices.
856	  Say Y if you want to support camera devices and functionality such as
857	  capturing pictures.
858
859config SC_CAMCC_8180X
860	tristate "SC8180X Camera Clock Controller"
861	depends on ARM64 || COMPILE_TEST
862	select SC_GCC_8180X
863	help
864	  Support for the camera clock controller on Qualcomm Technologies, Inc
865	  SC8180X devices.
866	  Say Y if you want to support camera devices and functionality such as
867	  capturing pictures.
868
869config SC_CAMCC_8280XP
870	tristate "SC8280XP Camera Clock Controller"
871	depends on ARM64 || COMPILE_TEST
872	select SC_GCC_8280XP
873	help
874	  Support for the camera clock controller on Qualcomm Technologies, Inc
875	  SC8280XP devices.
876	  Say Y if you want to support camera devices and functionality such as
877	  capturing pictures.
878
879config SA_DISPCC_8775P
880	tristate "SA8775P Display Clock Controller"
881	depends on ARM64 || COMPILE_TEST
882	select SA_GCC_8775P
883	help
884	  Support for the two display clock controllers on Qualcomm
885	  Technologies, Inc. SA8775P devices.
886	  Say Y if you want to support display devices and functionality such as
887	  splash screen.
888
889config SC_DISPCC_7180
890	tristate "SC7180 Display Clock Controller"
891	depends on ARM64 || COMPILE_TEST
892	select SC_GCC_7180
893	help
894	  Support for the display clock controller on Qualcomm Technologies, Inc
895	  SC7180 devices.
896	  Say Y if you want to support display devices and functionality such as
897	  splash screen.
898
899config SC_DISPCC_7280
900	tristate "SC7280 Display Clock Controller"
901	depends on ARM64 || COMPILE_TEST
902	select SC_GCC_7280
903	help
904	  Support for the display clock controller on Qualcomm Technologies, Inc.
905	  SC7280 devices.
906	  Say Y if you want to support display devices and functionality such as
907	  splash screen.
908
909config SC_DISPCC_8280XP
910	tristate "SC8280XP Display Clock Controller"
911	depends on ARM64 || COMPILE_TEST
912	select SC_GCC_8280XP
913	help
914	  Support for the two display clock controllers on Qualcomm
915	  Technologies, Inc. SC8280XP devices.
916	  Say Y if you want to support display devices and functionality such as
917	  splash screen.
918
919config SA_GCC_8775P
920	tristate "SA8775 Global Clock Controller"
921	select QCOM_GDSC
922	depends on ARM64 || COMPILE_TEST
923	depends on COMMON_CLK_QCOM
924	help
925	  Support for the global clock controller on SA8775 devices.
926	  Say Y if you want to use peripheral devices such as UART, SPI,
927	  I2C, USB, UFS, SDCC, etc.
928
929config SA_GPUCC_8775P
930	tristate "SA8775P Graphics clock controller"
931	depends on ARM64 || COMPILE_TEST
932	select QCOM_GDSC
933	select SA_GCC_8775P
934	help
935	  Support for the graphics clock controller on SA8775P devices.
936	  Say Y if you want to support graphics controller devices and
937	  functionality such as 3D graphics.
938
939config SAR_GCC_2130P
940	tristate "SAR2130P Global Clock Controller"
941	select QCOM_GDSC
942	depends on COMMON_CLK_QCOM
943	help
944	  Support for the global clock controller on SAR2130P devices.
945	  Say Y if you want to use peripheral devices such as UART, SPI,
946	  I2C, USB, SDCC, etc.
947
948config SAR_GPUCC_2130P
949	tristate "SAR2130P Graphics clock controller"
950	select QCOM_GDSC
951	select SAR_GCC_2130P
952	help
953	  Support for the graphics clock controller on SAR2130P devices.
954	  Say Y if you want to support graphics controller devices and
955	  functionality such as 3D graphics.
956
957config SC_GCC_7180
958	tristate "SC7180 Global Clock Controller"
959	select QCOM_GDSC
960	depends on COMMON_CLK_QCOM
961	depends on ARM64 || COMPILE_TEST
962	help
963	  Support for the global clock controller on SC7180 devices.
964	  Say Y if you want to use peripheral devices such as UART, SPI,
965	  I2C, USB, UFS, SDCC, etc.
966
967config SC_GCC_7280
968	tristate "SC7280 Global Clock Controller"
969	select QCOM_GDSC
970	depends on COMMON_CLK_QCOM
971	depends on ARM64 || COMPILE_TEST
972	help
973	  Support for the global clock controller on SC7280 devices.
974	  Say Y if you want to use peripheral devices such as UART, SPI,
975	  I2C, USB, UFS, SDCC, PCIe etc.
976
977config SC_GCC_8180X
978	tristate "SC8180X Global Clock Controller"
979	select QCOM_GDSC
980	depends on COMMON_CLK_QCOM
981	depends on ARM64 || COMPILE_TEST
982	help
983	  Support for the global clock controller on SC8180X devices.
984	  Say Y if you want to use peripheral devices such as UART, SPI,
985	  I2C, USB, UFS, SDCC, etc.
986
987config SC_GCC_8280XP
988	tristate "SC8280XP Global Clock Controller"
989	select QCOM_GDSC
990	depends on COMMON_CLK_QCOM
991	depends on ARM64 || COMPILE_TEST
992	help
993	  Support for the global clock controller on SC8280XP devices.
994	  Say Y if you want to use peripheral devices such as UART, SPI,
995	  I2C, USB, UFS, SDCC, etc.
996
997config SC_GPUCC_7180
998	tristate "SC7180 Graphics Clock Controller"
999	depends on ARM64 || COMPILE_TEST
1000	select SC_GCC_7180
1001	help
1002	  Support for the graphics clock controller on SC7180 devices.
1003	  Say Y if you want to support graphics controller devices and
1004	  functionality such as 3D graphics.
1005
1006config SC_GPUCC_7280
1007	tristate "SC7280 Graphics Clock Controller"
1008	depends on ARM64 || COMPILE_TEST
1009	select SC_GCC_7280
1010	help
1011	  Support for the graphics clock controller on SC7280 devices.
1012	  Say Y if you want to support graphics controller devices and
1013	  functionality such as 3D graphics.
1014
1015config SC_GPUCC_8280XP
1016	tristate "SC8280XP Graphics Clock Controller"
1017	depends on ARM64 || COMPILE_TEST
1018	select SC_GCC_8280XP
1019	help
1020	  Support for the graphics clock controller on SC8280XP devices.
1021	  Say Y if you want to support graphics controller devices and
1022	  functionality such as 3D graphics.
1023
1024config SC_LPASSCC_7280
1025	tristate "SC7280 Low Power Audio Subsystem (LPASS) Clock Controller"
1026	depends on ARM64 || COMPILE_TEST
1027	select SC_GCC_7280
1028	help
1029	  Support for the LPASS clock controller on SC7280 devices.
1030	  Say Y if you want to use the LPASS branch clocks of the LPASS clock
1031	  controller to reset the LPASS subsystem.
1032
1033config SC_LPASSCC_8280XP
1034	tristate "SC8280 Low Power Audio Subsystem (LPASS) Clock Controller"
1035	depends on ARM64 || COMPILE_TEST
1036	select SC_GCC_8280XP
1037	help
1038	  Support for the LPASS clock controller on SC8280XP devices.
1039	  Say Y if you want to use the LPASS branch clocks of the LPASS clock
1040	  controller to reset the LPASS subsystem.
1041
1042config SC_LPASS_CORECC_7180
1043	tristate "SC7180 LPASS Core Clock Controller"
1044	depends on ARM64 || COMPILE_TEST
1045	select SC_GCC_7180
1046	help
1047	  Support for the LPASS(Low Power Audio Subsystem) core clock controller
1048	  on SC7180 devices.
1049	  Say Y if you want to use LPASS clocks and power domains of the LPASS
1050	  core clock controller.
1051
1052config SC_LPASS_CORECC_7280
1053	tristate "SC7280 LPASS Core & Audio Clock Controller"
1054	depends on ARM64 || COMPILE_TEST
1055	select SC_GCC_7280
1056	select QCOM_GDSC
1057	help
1058	  Support for the LPASS(Low Power Audio Subsystem) core and audio clock
1059	  controller on SC7280 devices.
1060	  Say Y if you want to use LPASS clocks and power domains of the LPASS
1061	  core clock controller.
1062
1063config SC_VIDEOCC_7180
1064	tristate "SC7180 Video Clock Controller"
1065	depends on ARM64 || COMPILE_TEST
1066	select SC_GCC_7180
1067	help
1068	  Support for the video clock controller on SC7180 devices.
1069	  Say Y if you want to support video devices and functionality such as
1070	  video encode and decode.
1071
1072config SC_VIDEOCC_7280
1073	tristate "SC7280 Video Clock Controller"
1074	depends on ARM64 || COMPILE_TEST
1075	select SC_GCC_7280
1076	help
1077	  Support for the video clock controller on SC7280 devices.
1078	  Say Y if you want to support video devices and functionality such as
1079	  video encode and decode.
1080
1081config SDM_CAMCC_845
1082	tristate "SDM845 Camera Clock Controller"
1083	depends on ARM64 || COMPILE_TEST
1084	select SDM_GCC_845
1085	help
1086	  Support for the camera clock controller on SDM845 devices.
1087	  Say Y if you want to support camera devices and camera functionality.
1088
1089config SDM_GCC_660
1090	tristate "SDM660 Global Clock Controller"
1091	depends on ARM64 || COMPILE_TEST
1092	select QCOM_GDSC
1093	help
1094	  Support for the global clock controller on SDM660 devices.
1095	  Say Y if you want to use peripheral devices such as UART, SPI,
1096	  i2C, USB, UFS, SDDC, PCIe, etc.
1097
1098config SDM_MMCC_660
1099	tristate "SDM660 Multimedia Clock Controller"
1100	depends on ARM64 || COMPILE_TEST
1101	select SDM_GCC_660
1102	select QCOM_GDSC
1103	help
1104	  Support for the multimedia clock controller on SDM660 devices.
1105	  Say Y if you want to support multimedia devices such as display,
1106	  graphics, video encode/decode, camera, etc.
1107
1108config SDM_GPUCC_660
1109	tristate "SDM660 Graphics Clock Controller"
1110	depends on ARM64 || COMPILE_TEST
1111	select SDM_GCC_660
1112	select QCOM_GDSC
1113	help
1114	  Support for the graphics clock controller on SDM630/636/660 devices.
1115	  Say Y if you want to support graphics controller devices and
1116	  functionality such as 3D graphics
1117
1118config QCS_TURING_404
1119	tristate "QCS404 Turing Clock Controller"
1120	help
1121	  Support for the Turing Clock Controller on QCS404, provides clocks
1122	  and resets for the Turing subsystem.
1123
1124config QCS_Q6SSTOP_404
1125	tristate "QCS404 Q6SSTOP Clock Controller"
1126	select QCS_GCC_404
1127	help
1128	  Support for the Q6SSTOP clock controller on QCS404 devices.
1129	  Say Y if you want to use the Q6SSTOP branch clocks of the WCSS clock
1130	  controller to reset the Q6SSTOP subsystem.
1131
1132config QDU_GCC_1000
1133	tristate "QDU1000/QRU1000 Global Clock Controller"
1134	depends on ARM64 || COMPILE_TEST
1135	select QCOM_GDSC
1136	help
1137	  Support for the global clock controller on QDU1000 and
1138	  QRU1000 devices. Say Y if you want to use peripheral
1139	  devices such as UART, SPI, I2C, USB, SD, PCIe, etc.
1140
1141config QDU_ECPRICC_1000
1142	tristate "QDU1000/QRU1000 ECPRI Clock Controller"
1143	depends on ARM64 || COMPILE_TEST
1144	select QDU_GCC_1000
1145	help
1146	  Support for the ECPRI clock controller on QDU1000 and
1147	  QRU1000 devices. Say Y if you want to support the ECPRI
1148	  clock controller functionality such as Ethernet.
1149
1150config SDM_GCC_845
1151	tristate "SDM845/SDM670 Global Clock Controller"
1152	depends on ARM64 || COMPILE_TEST
1153	select QCOM_GDSC
1154	help
1155	  Support for the global clock controller on SDM845 and SDM670 devices.
1156	  Say Y if you want to use peripheral devices such as UART, SPI,
1157	  i2C, USB, UFS, SDDC, PCIe, etc.
1158
1159config SDM_GPUCC_845
1160	tristate "SDM845 Graphics Clock Controller"
1161	depends on ARM64 || COMPILE_TEST
1162	select SDM_GCC_845
1163	help
1164	  Support for the graphics clock controller on SDM845 devices.
1165	  Say Y if you want to support graphics controller devices and
1166	  functionality such as 3D graphics.
1167
1168config SDM_VIDEOCC_845
1169	tristate "SDM845 Video Clock Controller"
1170	depends on ARM64 || COMPILE_TEST
1171	select SDM_GCC_845
1172	select QCOM_GDSC
1173	help
1174	  Support for the video clock controller on SDM845 devices.
1175	  Say Y if you want to support video devices and functionality such as
1176	  video encode and decode.
1177
1178config SDM_DISPCC_845
1179	tristate "SDM845 Display Clock Controller"
1180	depends on ARM64 || COMPILE_TEST
1181	select SDM_GCC_845
1182	help
1183	  Support for the display clock controller on Qualcomm Technologies, Inc
1184	  SDM845 devices.
1185	  Say Y if you want to support display devices and functionality such as
1186	  splash screen.
1187
1188config SDM_LPASSCC_845
1189	tristate "SDM845 Low Power Audio Subsystem (LPAAS) Clock Controller"
1190	depends on ARM64 || COMPILE_TEST
1191	select SDM_GCC_845
1192	help
1193	  Support for the LPASS clock controller on SDM845 devices.
1194	  Say Y if you want to use the LPASS branch clocks of the LPASS clock
1195	  controller to reset the LPASS subsystem.
1196
1197config SDX_GCC_55
1198	tristate "SDX55 Global Clock Controller"
1199	depends on ARM || COMPILE_TEST
1200	select QCOM_GDSC
1201	help
1202	  Support for the global clock controller on SDX55 devices.
1203	  Say Y if you want to use peripheral devices such as UART,
1204	  SPI, I2C, USB, SD/UFS, PCIe etc.
1205
1206config SDX_GCC_65
1207	tristate "SDX65 Global Clock Controller"
1208	depends on ARM || COMPILE_TEST
1209	select QCOM_GDSC
1210	help
1211	  Support for the global clock controller on SDX65 devices.
1212	  Say Y if you want to use peripheral devices such as UART,
1213	  SPI, I2C, USB, SD/UFS, PCIe etc.
1214
1215config SDX_GCC_75
1216	tristate "SDX75 Global Clock Controller"
1217	select QCOM_GDSC
1218	help
1219	  Support for the global clock controller on SDX75 devices.
1220	  Say Y if you want to use peripheral devices such as UART,
1221	  SPI, I2C, USB, SD/eMMC, PCIe etc.
1222
1223config SM_CAMCC_4450
1224	tristate "SM4450 Camera Clock Controller"
1225	depends on ARM64 || COMPILE_TEST
1226	select SM_GCC_4450
1227	help
1228	  Support for the camera clock controller on SM4450 devices.
1229	  Say Y if you want to support camera devices and camera functionality.
1230
1231config SM_CAMCC_6350
1232	tristate "SM6350 Camera Clock Controller"
1233	depends on ARM64 || COMPILE_TEST
1234	select SM_GCC_6350
1235	help
1236	  Support for the camera clock controller on SM6350 devices.
1237	  Say Y if you want to support camera devices and camera functionality.
1238
1239config SM_CAMCC_7150
1240	tristate "SM7150 Camera Clock Controller"
1241	depends on ARM64 || COMPILE_TEST
1242	select SM_GCC_7150
1243	help
1244	  Support for the camera clock controller on SM7150 devices.
1245	  Say Y if you want to support camera devices and camera functionality.
1246
1247config SM_CAMCC_MILOS
1248	tristate "Milos Camera Clock Controller"
1249	depends on ARM64 || COMPILE_TEST
1250	select SM_GCC_MILOS
1251	help
1252	  Support for the camera clock controller on Milos devices.
1253	  Say Y if you want to support camera devices and camera functionality.
1254
1255config SM_CAMCC_8150
1256	tristate "SM8150 Camera Clock Controller"
1257	depends on ARM64 || COMPILE_TEST
1258	select SM_GCC_8150
1259	help
1260	  Support for the camera clock controller on Qualcomm Technologies, Inc
1261	  SM8150 devices.
1262	  Say Y if you want to support camera devices and functionality such as
1263	  capturing pictures.
1264
1265config SM_CAMCC_8250
1266	tristate "SM8250 Camera Clock Controller"
1267	depends on ARM64 || COMPILE_TEST
1268	select SM_GCC_8250
1269	help
1270	  Support for the camera clock controller on SM8250 devices.
1271	  Say Y if you want to support camera devices and camera functionality.
1272
1273config SM_CAMCC_8450
1274	tristate "SM8450 Camera Clock Controller"
1275	depends on ARM64 || COMPILE_TEST
1276	select SM_GCC_8450
1277	help
1278	  Support for the camera clock controller on SM8450 or SM8475 devices.
1279	  Say Y if you want to support camera devices and camera functionality.
1280
1281config SM_CAMCC_8550
1282	tristate "SM8550 Camera Clock Controller"
1283	depends on ARM64 || COMPILE_TEST
1284	select SM_GCC_8550
1285	help
1286	  Support for the camera clock controller on SM8550 devices.
1287	  Say Y if you want to support camera devices and camera functionality.
1288
1289config SM_CAMCC_8650
1290	tristate "SM8650 Camera Clock Controller"
1291	depends on ARM64 || COMPILE_TEST
1292	select SM_GCC_8650
1293	help
1294	  Support for the camera clock controller on SM8650 devices.
1295	  Say Y if you want to support camera devices and camera functionality.
1296
1297config SM_CAMCC_8750
1298	tristate "SM8750 Camera Clock Controller"
1299	depends on ARM64 || COMPILE_TEST
1300	select SM_GCC_8750
1301	help
1302	  Support for the camera clock controller on SM8750 devices.
1303	  The camera clock controller has a separate cambist controller which
1304	  controls the mclk of the camera clocks.
1305	  Say Y if you want to support camera devices and camera functionality.
1306
1307config SM_DISPCC_4450
1308	tristate "SM4450 Display Clock Controller"
1309	depends on ARM64 || COMPILE_TEST
1310	depends on SM_GCC_4450
1311	help
1312	  Support for the display clock controller on Qualcomm Technologies, Inc
1313	  SM4450 devices.
1314	  Say Y if you want to support display devices and functionality such as
1315	  splash screen
1316
1317config SM_DISPCC_6115
1318	tristate "SM6115 Display Clock Controller"
1319	depends on ARM64 || COMPILE_TEST
1320	depends on SM_GCC_6115
1321	help
1322	  Support for the display clock controller on Qualcomm Technologies, Inc
1323	  SM6115/SM4250 devices.
1324	  Say Y if you want to support display devices and functionality such as
1325	  splash screen
1326
1327config SM_DISPCC_6125
1328	tristate "SM6125 Display Clock Controller"
1329	depends on ARM64 || COMPILE_TEST
1330	depends on SM_GCC_6125
1331	help
1332	  Support for the display clock controller on Qualcomm Technologies, Inc
1333	  SM6125 devices.
1334	  Say Y if you want to support display devices and functionality such as
1335	  splash screen
1336
1337config SM_DISPCC_7150
1338	tristate "SM7150 Display Clock Controller"
1339	depends on ARM64 || COMPILE_TEST
1340	depends on SM_GCC_7150
1341	help
1342	  Support for the display clock controller on Qualcomm Technologies, Inc
1343	  SM7150 devices.
1344	  Say Y if you want to support display devices and functionality such as
1345	  splash screen.
1346
1347config SM_DISPCC_8250
1348	tristate "SM8150/SM8250/SM8350 Display Clock Controller"
1349	depends on ARM64 || COMPILE_TEST
1350	depends on SM_GCC_8150 || SM_GCC_8250 || SM_GCC_8350
1351	help
1352	  Support for the display clock controller on Qualcomm Technologies, Inc
1353	  SM8150/SM8250/SM8350 devices.
1354	  Say Y if you want to support display devices and functionality such as
1355	  splash screen.
1356
1357config SM_DISPCC_6350
1358	tristate "SM6350 Display Clock Controller"
1359	depends on ARM64 || COMPILE_TEST
1360	depends on SM_GCC_6350
1361	help
1362	  Support for the display clock controller on Qualcomm Technologies, Inc
1363	  SM6350 devices.
1364	  Say Y if you want to support display devices and functionality such as
1365	  splash screen.
1366
1367config SM_DISPCC_6375
1368	tristate "SM6375 Display Clock Controller"
1369	depends on ARM64 || COMPILE_TEST
1370	depends on SM_GCC_6375
1371	help
1372	  Support for the display clock controller on Qualcomm Technologies, Inc
1373	  SM6375 devices.
1374	  Say Y if you want to support display devices and functionality such as
1375	  splash screen.
1376
1377config SM_DISPCC_MILOS
1378	tristate "Milos Display Clock Controller"
1379	depends on ARM64 || COMPILE_TEST
1380	depends on SM_GCC_MILOS
1381	help
1382	  Support for the display clock controller on Qualcomm Technologies, Inc
1383	  Milos devices.
1384	  Say Y if you want to support display devices and functionality such as
1385	  splash screen.
1386
1387config SM_DISPCC_8450
1388	tristate "SM8450 Display Clock Controller"
1389	depends on ARM64 || COMPILE_TEST
1390	depends on SM_GCC_8450
1391	help
1392	  Support for the display clock controller on Qualcomm Technologies, Inc
1393	  SM8450 or SM8475 devices.
1394	  Say Y if you want to support display devices and functionality such as
1395	  splash screen.
1396
1397config SM_DISPCC_8550
1398	tristate "SM8550 Display Clock Controller"
1399	depends on ARM64 || COMPILE_TEST
1400	depends on SM_GCC_8550 || SM_GCC_8650 || SAR_GCC_2130P
1401	help
1402	  Support for the display clock controller on Qualcomm Technologies, Inc
1403	  SAR2130P, SM8550 or SM8650 devices.
1404	  Say Y if you want to support display devices and functionality such as
1405	  splash screen.
1406
1407config SM_DISPCC_8750
1408	tristate "SM8750 Display Clock Controller"
1409	depends on ARM64 || COMPILE_TEST
1410	depends on SM_GCC_8750
1411	select QCOM_GDSC
1412	help
1413	  Support for the display clock controller on Qualcomm Technologies, Inc
1414	  SM8750 devices.
1415	  Say Y if you want to support display devices and functionality such as
1416	  splash screen.
1417
1418config SM_GCC_4450
1419	tristate "SM4450 Global Clock Controller"
1420	depends on ARM64 || COMPILE_TEST
1421	select QCOM_GDSC
1422	help
1423	  Support for the global clock controller on SM4450 devices.
1424	  Say Y if you want to use peripheral devices such as UART, SPI,
1425	  I2C, USB, SD/UFS, PCIe, etc.
1426
1427config SM_GCC_6115
1428	tristate "SM6115 and SM4250 Global Clock Controller"
1429	depends on ARM64 || COMPILE_TEST
1430	select QCOM_GDSC
1431	help
1432	  Support for the global clock controller on SM6115 and SM4250 devices.
1433	  Say Y if you want to use peripheral devices such as UART, SPI,
1434	  i2C, USB, UFS, SDDC, PCIe, etc.
1435
1436config SM_GCC_6125
1437	tristate "SM6125 Global Clock Controller"
1438	depends on ARM64 || COMPILE_TEST
1439	select QCOM_GDSC
1440	help
1441	  Support for the global clock controller on SM6125 devices.
1442	  Say Y if you want to use peripheral devices such as UART,
1443	  SPI, I2C, USB, SD/UFS, PCIe etc.
1444
1445config SM_GCC_6350
1446	tristate "SM6350 Global Clock Controller"
1447	depends on ARM64 || COMPILE_TEST
1448	select QCOM_GDSC
1449	help
1450	  Support for the global clock controller on SM6350 devices.
1451	  Say Y if you want to use peripheral devices such as UART,
1452	  SPI, I2C, USB, SD/UFS, PCIe etc.
1453
1454config SM_GCC_6375
1455	tristate "SM6375 Global Clock Controller"
1456	depends on ARM64 || COMPILE_TEST
1457	select QCOM_GDSC
1458	help
1459	  Support for the global clock controller on SM6375 devices.
1460	  Say Y if you want to use peripheral devices such as UART,
1461	  SPI, I2C, USB, SD/UFS etc.
1462
1463config SM_GCC_7150
1464	tristate "SM7150 Global Clock Controller"
1465	depends on ARM64 || COMPILE_TEST
1466	select QCOM_GDSC
1467	help
1468	  Support for the global clock controller on SM7150 devices.
1469	  Say Y if you want to use peripheral devices such as UART,
1470	  SPI, I2C, USB, SD/UFS, PCIe etc.
1471
1472config SM_GCC_MILOS
1473	tristate "Milos Global Clock Controller"
1474	depends on ARM64 || COMPILE_TEST
1475	select QCOM_GDSC
1476	help
1477	  Support for the global clock controller on Milos devices.
1478	  Say Y if you want to use peripheral devices such as UART,
1479	  SPI, I2C, USB, SD/UFS, PCIe etc.
1480
1481config SM_GCC_8150
1482	tristate "SM8150 Global Clock Controller"
1483	depends on ARM64 || COMPILE_TEST
1484	select QCOM_GDSC
1485	help
1486	  Support for the global clock controller on SM8150 devices.
1487	  Say Y if you want to use peripheral devices such as UART,
1488	  SPI, I2C, USB, SD/UFS, PCIe etc.
1489
1490config SM_GCC_8250
1491	tristate "SM8250 Global Clock Controller"
1492	depends on ARM64 || COMPILE_TEST
1493	select QCOM_GDSC
1494	help
1495	  Support for the global clock controller on SM8250 devices.
1496	  Say Y if you want to use peripheral devices such as UART,
1497	  SPI, I2C, USB, SD/UFS, PCIe etc.
1498
1499config SM_GCC_8350
1500	tristate "SM8350 Global Clock Controller"
1501	depends on ARM64 || COMPILE_TEST
1502	select QCOM_GDSC
1503	help
1504	  Support for the global clock controller on SM8350 devices.
1505	  Say Y if you want to use peripheral devices such as UART,
1506	  SPI, I2C, USB, SD/UFS, PCIe etc.
1507
1508config SM_GCC_8450
1509	tristate "SM8450 Global Clock Controller"
1510	depends on ARM64 || COMPILE_TEST
1511	select QCOM_GDSC
1512	help
1513	  Support for the global clock controller on SM8450 or SM8475
1514	  devices.
1515	  Say Y if you want to use peripheral devices such as UART,
1516	  SPI, I2C, USB, SD/UFS, PCIe etc.
1517
1518config SM_GCC_8550
1519	tristate "SM8550 Global Clock Controller"
1520	depends on ARM64 || COMPILE_TEST
1521	select QCOM_GDSC
1522	help
1523	  Support for the global clock controller on SM8550 devices.
1524	  Say Y if you want to use peripheral devices such as UART,
1525	  SPI, I2C, USB, SD/UFS, PCIe etc.
1526
1527config SM_GCC_8650
1528	tristate "SM8650 Global Clock Controller"
1529	depends on ARM64 || COMPILE_TEST
1530	select QCOM_GDSC
1531	help
1532	  Support for the global clock controller on SM8650 devices.
1533	  Say Y if you want to use peripheral devices such as UART,
1534	  SPI, I2C, USB, SD/UFS, PCIe etc.
1535
1536config SM_GCC_8750
1537	tristate "SM8750 Global Clock Controller"
1538	depends on ARM64 || COMPILE_TEST
1539	select QCOM_GDSC
1540	help
1541	  Support for the global clock controller on SM8750 devices.
1542	  Say Y if you want to use peripheral devices such as UART,
1543	  SPI, I2C, USB, SD/UFS, PCIe etc.
1544
1545config SM_GPUCC_4450
1546	tristate "SM4450 Graphics Clock Controller"
1547	depends on ARM64 || COMPILE_TEST
1548	select SM_GCC_4450
1549	help
1550	  Support for the graphics clock controller on SM4450 devices.
1551	  Say Y if you want to support graphics controller devices and
1552	  functionality such as 3D graphics.
1553
1554config SM_GPUCC_6115
1555	tristate "SM6115 Graphics Clock Controller"
1556	select SM_GCC_6115
1557	depends on ARM64 || COMPILE_TEST
1558	help
1559	  Support for the graphics clock controller on SM6115 devices.
1560	  Say Y if you want to support graphics controller devices and
1561	  functionality such as 3D graphics.
1562
1563config SM_GPUCC_6125
1564	tristate "SM6125 Graphics Clock Controller"
1565	select SM_GCC_6125
1566	depends on ARM64 || COMPILE_TEST
1567	help
1568	  Support for the graphics clock controller on SM6125 devices.
1569	  Say Y if you want to support graphics controller devices and
1570	  functionality such as 3D graphics.
1571
1572config SM_GPUCC_6375
1573	tristate "SM6375 Graphics Clock Controller"
1574	select SM_GCC_6375
1575	depends on ARM64 || COMPILE_TEST
1576	help
1577	  Support for the graphics clock controller on SM6375 devices.
1578	  Say Y if you want to support graphics controller devices and
1579	  functionality such as 3D graphics.
1580
1581config SM_GPUCC_6350
1582	tristate "SM6350 Graphics Clock Controller"
1583	depends on ARM64 || COMPILE_TEST
1584	select SM_GCC_6350
1585	help
1586	  Support for the graphics clock controller on SM6350 devices.
1587	  Say Y if you want to support graphics controller devices and
1588	  functionality such as 3D graphics.
1589
1590config SM_GPUCC_MILOS
1591	tristate "Milos Graphics Clock Controller"
1592	depends on ARM64 || COMPILE_TEST
1593	select SM_GCC_MILOS
1594	help
1595	  Support for the graphics clock controller on Milos devices.
1596	  Say Y if you want to support graphics controller devices and
1597	  functionality such as 3D graphics.
1598
1599config SM_GPUCC_8150
1600	tristate "SM8150 Graphics Clock Controller"
1601	depends on ARM64 || COMPILE_TEST
1602	select SM_GCC_8150
1603	help
1604	  Support for the graphics clock controller on SM8150 devices.
1605	  Say Y if you want to support graphics controller devices and
1606	  functionality such as 3D graphics.
1607
1608config SM_GPUCC_8250
1609	tristate "SM8250 Graphics Clock Controller"
1610	depends on ARM64 || COMPILE_TEST
1611	select SM_GCC_8250
1612	help
1613	  Support for the graphics clock controller on SM8250 devices.
1614	  Say Y if you want to support graphics controller devices and
1615	  functionality such as 3D graphics.
1616
1617config SM_GPUCC_8350
1618	tristate "SM8350 Graphics Clock Controller"
1619	depends on ARM64 || COMPILE_TEST
1620	select SM_GCC_8350
1621	help
1622	  Support for the graphics clock controller on SM8350 devices.
1623	  Say Y if you want to support graphics controller devices and
1624	  functionality such as 3D graphics.
1625
1626config SM_GPUCC_8450
1627	tristate "SM8450 Graphics Clock Controller"
1628	depends on ARM64 || COMPILE_TEST
1629	select SM_GCC_8450
1630	help
1631	  Support for the graphics clock controller on SM8450 or SM8475
1632	  devices.
1633	  Say Y if you want to support graphics controller devices and
1634	  functionality such as 3D graphics.
1635
1636config SM_GPUCC_8550
1637	tristate "SM8550 Graphics Clock Controller"
1638	depends on ARM64 || COMPILE_TEST
1639	select SM_GCC_8550
1640	help
1641	  Support for the graphics clock controller on SM8550 devices.
1642	  Say Y if you want to support graphics controller devices and
1643	  functionality such as 3D graphics.
1644
1645config SM_GPUCC_8650
1646	tristate "SM8650 Graphics Clock Controller"
1647	depends on ARM64 || COMPILE_TEST
1648	select SM_GCC_8650
1649	help
1650	  Support for the graphics clock controller on SM8650 devices.
1651	  Say Y if you want to support graphics controller devices and
1652	  functionality such as 3D graphics.
1653
1654config SM_GPUCC_8750
1655	tristate "SM8750 Graphics Clock Controller"
1656	depends on ARM64 || COMPILE_TEST
1657	select SM_GCC_8750
1658	help
1659	  Support for the graphics clock controller on SM8750 devices.
1660	  Say Y if you want to support graphics controller devices and
1661	  functionality such as 3D graphics.
1662
1663config SM_LPASSCC_6115
1664	tristate "SM6115 Low Power Audio Subsystem (LPASS) Clock Controller"
1665	depends on ARM64 || COMPILE_TEST
1666	select SM_GCC_6115
1667	help
1668	  Support for the LPASS clock controller on SM6115 devices.
1669	  Say Y if you want to toggle LPASS-adjacent resets within
1670	  this clock controller to reset the LPASS subsystem.
1671
1672config SM_TCSRCC_8550
1673	tristate "SM8550 TCSR Clock Controller"
1674	depends on ARM64 || COMPILE_TEST
1675	select QCOM_GDSC
1676	help
1677	  Support for the TCSR clock controller on SM8550 devices.
1678	  Say Y if you want to use peripheral devices such as SD/UFS.
1679
1680config SM_TCSRCC_8650
1681	tristate "SM8650 TCSR Clock Controller"
1682	depends on ARM64 || COMPILE_TEST
1683	select QCOM_GDSC
1684	help
1685	  Support for the TCSR clock controller on SM8650 devices.
1686	  Say Y if you want to use peripheral devices such as SD/UFS.
1687
1688config SM_TCSRCC_8750
1689	tristate "SM8750 TCSR Clock Controller"
1690	depends on ARM64 || COMPILE_TEST
1691	select QCOM_GDSC
1692	help
1693	  Support for the TCSR clock controller on SM8750 devices.
1694	  Say Y if you want to use peripheral devices such as UFS/USB/PCIe.
1695
1696config SA_VIDEOCC_8775P
1697	tristate "SA8775P Video Clock Controller"
1698	depends on ARM64 || COMPILE_TEST
1699	select SA_GCC_8775P
1700	select QCOM_GDSC
1701	help
1702	  Support for the video clock controller on Qualcomm Technologies, Inc.
1703	  SA8775P devices.
1704	  Say Y if you want to support video devices and functionality such as
1705	  video encode/decode.
1706
1707config SM_VIDEOCC_6350
1708	tristate "SM6350 Video Clock Controller"
1709	depends on ARM64 || COMPILE_TEST
1710	select SM_GCC_6350
1711	select QCOM_GDSC
1712	help
1713	  Support for the video clock controller on SM6350 devices.
1714	  Say Y if you want to support video devices and functionality such as
1715	  video encode and decode.
1716
1717config SM_VIDEOCC_7150
1718	tristate "SM7150 Video Clock Controller"
1719	depends on ARM64 || COMPILE_TEST
1720	select SM_GCC_7150
1721	select QCOM_GDSC
1722	help
1723	  Support for the video clock controller on SM7150 devices.
1724	  Say Y if you want to support video devices and functionality such as
1725	  video encode and decode.
1726
1727config SM_VIDEOCC_MILOS
1728	tristate "Milos Video Clock Controller"
1729	depends on ARM64 || COMPILE_TEST
1730	select SM_GCC_MILOS
1731	select QCOM_GDSC
1732	help
1733	  Support for the video clock controller on Qualcomm Technologies, Inc.
1734	  Milos devices.
1735	  Say Y if you want to support video devices and functionality such as
1736	  video encode/decode.
1737
1738config SM_VIDEOCC_8150
1739	tristate "SM8150 Video Clock Controller"
1740	depends on ARM64 || COMPILE_TEST
1741	select SM_GCC_8150
1742	select QCOM_GDSC
1743	help
1744	  Support for the video clock controller on SM8150 devices.
1745	  Say Y if you want to support video devices and functionality such as
1746	  video encode and decode.
1747
1748config SM_VIDEOCC_8250
1749	tristate "SM8250 Video Clock Controller"
1750	depends on ARM64 || COMPILE_TEST
1751	select SM_GCC_8250
1752	select QCOM_GDSC
1753	help
1754	  Support for the video clock controller on SM8250 devices.
1755	  Say Y if you want to support video devices and functionality such as
1756	  video encode and decode.
1757
1758config SM_VIDEOCC_8350
1759	tristate "SM8350 Video Clock Controller"
1760	depends on ARM64 || COMPILE_TEST
1761	depends on SM_GCC_8350 || SC_GCC_8280XP
1762	select QCOM_GDSC
1763	help
1764	  Support for the video clock controller on SM8350 or SC8280XP devices.
1765	  Say Y if you want to support video devices and functionality such as
1766	  video encode and decode.
1767
1768config SM_VIDEOCC_8550
1769	tristate "SM8550 Video Clock Controller"
1770	depends on ARM64 || COMPILE_TEST
1771	select QCOM_GDSC
1772	help
1773	  Support for the video clock controller on Qualcomm Technologies, Inc.
1774	  SM8550 or SM8650 or X1E80100 devices.
1775	  Say Y if you want to support video devices and functionality such as
1776	  video encode/decode.
1777
1778config SM_VIDEOCC_8750
1779	tristate "SM8750 Video Clock Controller"
1780	depends on ARM64 || COMPILE_TEST
1781	select SM_GCC_8750
1782	select QCOM_GDSC
1783	help
1784	  Support for the video clock controller on Qualcomm Technologies, Inc.
1785	  SM8750 devices.
1786	  Say Y if you want to support video devices and functionality such as
1787	  video encode/decode.
1788
1789config SPMI_PMIC_CLKDIV
1790	tristate "SPMI PMIC clkdiv Support"
1791	depends on SPMI || COMPILE_TEST
1792	help
1793	  This driver supports the clkdiv functionality on the Qualcomm
1794	  Technologies, Inc. SPMI PMIC. It configures the frequency of
1795	  clkdiv outputs of the PMIC. These clocks are typically wired
1796	  through alternate functions on GPIO pins.
1797
1798config QCOM_HFPLL
1799	tristate "High-Frequency PLL (HFPLL) Clock Controller"
1800	help
1801	  Support for the high-frequency PLLs present on Qualcomm devices.
1802	  Say Y if you want to support CPU frequency scaling on devices
1803	  such as MSM8974, APQ8084, etc.
1804
1805config KPSS_XCC
1806	tristate "KPSS Clock Controller"
1807	help
1808	  Support for the Krait ACC and GCC clock controllers. Say Y
1809	  if you want to support CPU frequency scaling on devices such
1810	  as MSM8960, APQ8064, etc.
1811
1812config KRAITCC
1813	tristate "Krait Clock Controller"
1814	depends on ARM
1815	select KRAIT_CLOCKS
1816	help
1817	  Support for the Krait CPU clocks on Qualcomm devices.
1818	  Say Y if you want to support CPU frequency scaling.
1819
1820config CLK_GFM_LPASS_SM8250
1821	tristate "SM8250 GFM LPASS Clocks"
1822	depends on ARM64 || COMPILE_TEST
1823	help
1824	  Support for the Glitch Free Mux (GFM) Low power audio
1825          subsystem (LPASS) clocks found on SM8250 SoCs.
1826
1827config SM_VIDEOCC_8450
1828	tristate "SM8450 Video Clock Controller"
1829	depends on ARM64 || COMPILE_TEST
1830	select SM_GCC_8450
1831	select QCOM_GDSC
1832	help
1833	  Support for the video clock controller on Qualcomm Technologies, Inc.
1834	  SM8450 or SM8475 devices.
1835	  Say Y if you want to support video devices and functionality such as
1836	  video encode/decode.
1837endif
1838