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