xref: /openbmc/linux/drivers/clk/qcom/Kconfig (revision 37b9b9a5)
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 REGMAP_MMIO
18	select RESET_CONTROLLER
19
20if COMMON_CLK_QCOM
21
22config QCOM_A53PLL
23	tristate "MSM8916 A53 PLL"
24	help
25	  Support for the A53 PLL on MSM8916 devices. It provides
26	  the CPU with frequencies above 1GHz.
27	  Say Y if you want to support higher CPU frequencies on MSM8916
28	  devices.
29
30config QCOM_CLK_APCS_MSM8916
31	tristate "MSM8916 APCS Clock Controller"
32	depends on QCOM_APCS_IPC || COMPILE_TEST
33	help
34	  Support for the APCS Clock Controller on msm8916 devices. The
35	  APCS is managing the mux and divider which feeds the CPUs.
36	  Say Y if you want to support CPU frequency scaling on devices
37	  such as msm8916.
38
39config QCOM_CLK_RPM
40	tristate "RPM based Clock Controller"
41	depends on MFD_QCOM_RPM
42	select QCOM_RPMCC
43	help
44	  The RPM (Resource Power Manager) is a dedicated hardware engine for
45	  managing the shared SoC resources in order to keep the lowest power
46	  profile. It communicates with other hardware subsystems via shared
47	  memory and accepts clock requests, aggregates the requests and turns
48	  the clocks on/off or scales them on demand.
49	  Say Y if you want to support the clocks exposed by the RPM on
50	  platforms such as apq8064, msm8660, msm8960 etc.
51
52config QCOM_CLK_SMD_RPM
53	tristate "RPM over SMD based Clock Controller"
54	depends on QCOM_SMD_RPM
55	select QCOM_RPMCC
56	help
57	  The RPM (Resource Power Manager) is a dedicated hardware engine for
58	  managing the shared SoC resources in order to keep the lowest power
59	  profile. It communicates with other hardware subsystems via shared
60	  memory and accepts clock requests, aggregates the requests and turns
61	  the clocks on/off or scales them on demand.
62	  Say Y if you want to support the clocks exposed by the RPM on
63	  platforms such as apq8016, apq8084, msm8974 etc.
64
65config QCOM_CLK_RPMH
66	tristate "RPMh Clock Driver"
67	depends on QCOM_RPMH
68	help
69	 RPMh manages shared resources on some Qualcomm Technologies, Inc.
70	 SoCs. It accepts requests from other hardware subsystems via RSC.
71	 Say Y if you want to support the clocks exposed by RPMh on
72	 platforms such as SDM845.
73
74config APQ_GCC_8084
75	tristate "APQ8084 Global Clock Controller"
76	select QCOM_GDSC
77	help
78	  Support for the global clock controller on apq8084 devices.
79	  Say Y if you want to use peripheral devices such as UART, SPI,
80	  i2c, USB, SD/eMMC, SATA, PCIe, etc.
81
82config APQ_MMCC_8084
83	tristate "APQ8084 Multimedia Clock Controller"
84	select APQ_GCC_8084
85	select QCOM_GDSC
86	help
87	  Support for the multimedia clock controller on apq8084 devices.
88	  Say Y if you want to support multimedia devices such as display,
89	  graphics, video encode/decode, camera, etc.
90
91config IPQ_GCC_4019
92	tristate "IPQ4019 Global Clock Controller"
93	help
94	  Support for the global clock controller on ipq4019 devices.
95	  Say Y if you want to use peripheral devices such as UART, SPI,
96	  i2c, USB, SD/eMMC, etc.
97
98config IPQ_GCC_806X
99	tristate "IPQ806x Global Clock Controller"
100	help
101	  Support for the global clock controller on ipq806x devices.
102	  Say Y if you want to use peripheral devices such as UART, SPI,
103	  i2c, USB, SD/eMMC, etc.
104
105config IPQ_LCC_806X
106	tristate "IPQ806x LPASS Clock Controller"
107	select IPQ_GCC_806X
108	help
109	  Support for the LPASS clock controller on ipq806x devices.
110	  Say Y if you want to use audio devices such as i2s, pcm,
111	  S/PDIF, etc.
112
113config IPQ_GCC_8074
114	tristate "IPQ8074 Global Clock Controller"
115	help
116	  Support for global clock controller on ipq8074 devices.
117	  Say Y if you want to use peripheral devices such as UART, SPI,
118	  i2c, USB, SD/eMMC, etc. Select this for the root clock
119	  of ipq8074.
120
121config MSM_GCC_8660
122	tristate "MSM8660 Global Clock Controller"
123	help
124	  Support for the global clock controller on msm8660 devices.
125	  Say Y if you want to use peripheral devices such as UART, SPI,
126	  i2c, USB, SD/eMMC, etc.
127
128config MSM_GCC_8916
129	tristate "MSM8916 Global Clock Controller"
130	select QCOM_GDSC
131	help
132	  Support for the global clock controller on msm8916 devices.
133	  Say Y if you want to use devices such as UART, SPI i2c, USB,
134	  SD/eMMC, display, graphics, camera etc.
135
136config MSM_GCC_8960
137	tristate "APQ8064/MSM8960 Global Clock Controller"
138	help
139	  Support for the global clock controller on apq8064/msm8960 devices.
140	  Say Y if you want to use peripheral devices such as UART, SPI,
141	  i2c, USB, SD/eMMC, SATA, PCIe, etc.
142
143config MSM_LCC_8960
144	tristate "APQ8064/MSM8960 LPASS Clock Controller"
145	select MSM_GCC_8960
146	help
147	  Support for the LPASS clock controller on apq8064/msm8960 devices.
148	  Say Y if you want to use audio devices such as i2s, pcm,
149	  SLIMBus, etc.
150
151config MDM_GCC_9615
152	tristate "MDM9615 Global Clock Controller"
153	help
154	  Support for the global clock controller on mdm9615 devices.
155	  Say Y if you want to use peripheral devices such as UART, SPI,
156	  i2c, USB, SD/eMMC, etc.
157
158config MDM_LCC_9615
159	tristate "MDM9615 LPASS Clock Controller"
160	select MDM_GCC_9615
161	help
162	  Support for the LPASS clock controller on mdm9615 devices.
163	  Say Y if you want to use audio devices such as i2s, pcm,
164	  SLIMBus, etc.
165
166config MSM_MMCC_8960
167	tristate "MSM8960 Multimedia Clock Controller"
168	select MSM_GCC_8960
169	help
170	  Support for the multimedia clock controller on msm8960 devices.
171	  Say Y if you want to support multimedia devices such as display,
172	  graphics, video encode/decode, camera, etc.
173
174config MSM_GCC_8974
175	tristate "MSM8974 Global Clock Controller"
176	select QCOM_GDSC
177	help
178	  Support for the global clock controller on msm8974 devices.
179	  Say Y if you want to use peripheral devices such as UART, SPI,
180	  i2c, USB, SD/eMMC, SATA, PCIe, etc.
181
182config MSM_MMCC_8974
183	tristate "MSM8974 Multimedia Clock Controller"
184	select MSM_GCC_8974
185	select QCOM_GDSC
186	help
187	  Support for the multimedia clock controller on msm8974 devices.
188	  Say Y if you want to support multimedia devices such as display,
189	  graphics, video encode/decode, camera, etc.
190
191config MSM_GCC_8994
192	tristate "MSM8994 Global Clock Controller"
193	help
194	  Support for the global clock controller on msm8994 devices.
195	  Say Y if you want to use peripheral devices such as UART, SPI,
196	  i2c, USB, UFS, SD/eMMC, PCIe, etc.
197
198config MSM_GCC_8996
199	tristate "MSM8996 Global Clock Controller"
200	select QCOM_GDSC
201	help
202	  Support for the global clock controller on msm8996 devices.
203	  Say Y if you want to use peripheral devices such as UART, SPI,
204	  i2c, USB, UFS, SD/eMMC, PCIe, etc.
205
206config MSM_MMCC_8996
207	tristate "MSM8996 Multimedia Clock Controller"
208	select MSM_GCC_8996
209	select QCOM_GDSC
210	help
211	  Support for the multimedia clock controller on msm8996 devices.
212	  Say Y if you want to support multimedia devices such as display,
213	  graphics, video encode/decode, camera, etc.
214
215config MSM_GCC_8998
216	tristate "MSM8998 Global Clock Controller"
217	select QCOM_GDSC
218	help
219	  Support for the global clock controller on msm8998 devices.
220	  Say Y if you want to use peripheral devices such as UART, SPI,
221	  i2c, USB, UFS, SD/eMMC, PCIe, etc.
222
223config MSM_GPUCC_8998
224	tristate "MSM8998 Graphics Clock Controller"
225	select MSM_GCC_8998
226	select QCOM_GDSC
227	help
228	  Support for the graphics clock controller on MSM8998 devices.
229	  Say Y if you want to support graphics controller devices and
230	  functionality such as 3D graphics.
231
232config QCS_GCC_404
233	tristate "QCS404 Global Clock Controller"
234	help
235	  Support for the global clock controller on QCS404 devices.
236	  Say Y if you want to use multimedia devices or peripheral
237	  devices such as UART, SPI, I2C, USB, SD/eMMC, PCIe etc.
238
239config SC_GCC_7180
240	tristate "SC7180 Global Clock Controller"
241	select QCOM_GDSC
242	depends on COMMON_CLK_QCOM
243	help
244	  Support for the global clock controller on SC7180 devices.
245	  Say Y if you want to use peripheral devices such as UART, SPI,
246	  I2C, USB, UFS, SDCC, etc.
247
248config SDM_CAMCC_845
249	tristate "SDM845 Camera Clock Controller"
250	select SDM_GCC_845
251	help
252	  Support for the camera clock controller on SDM845 devices.
253	  Say Y if you want to support camera devices and camera functionality.
254
255config SDM_GCC_660
256	tristate "SDM660 Global Clock Controller"
257	select QCOM_GDSC
258	help
259	  Support for the global clock controller on SDM660 devices.
260	  Say Y if you want to use peripheral devices such as UART, SPI,
261	  i2C, USB, UFS, SDDC, PCIe, etc.
262
263config QCS_TURING_404
264	tristate "QCS404 Turing Clock Controller"
265	help
266	  Support for the Turing Clock Controller on QCS404, provides clocks
267	  and resets for the Turing subsystem.
268
269config QCS_Q6SSTOP_404
270	tristate "QCS404 Q6SSTOP Clock Controller"
271	select QCS_GCC_404
272	help
273	  Support for the Q6SSTOP clock controller on QCS404 devices.
274	  Say Y if you want to use the Q6SSTOP branch clocks of the WCSS clock
275	  controller to reset the Q6SSTOP subsystem.
276
277config SDM_GCC_845
278	tristate "SDM845 Global Clock Controller"
279	select QCOM_GDSC
280	help
281	  Support for the global clock controller on SDM845 devices.
282	  Say Y if you want to use peripheral devices such as UART, SPI,
283	  i2C, USB, UFS, SDDC, PCIe, etc.
284
285config SDM_GPUCC_845
286	tristate "SDM845 Graphics Clock Controller"
287	select SDM_GCC_845
288	help
289	  Support for the graphics clock controller on SDM845 devices.
290	  Say Y if you want to support graphics controller devices and
291	  functionality such as 3D graphics.
292
293config SDM_VIDEOCC_845
294	tristate "SDM845 Video Clock Controller"
295	select SDM_GCC_845
296	select QCOM_GDSC
297	help
298	  Support for the video clock controller on SDM845 devices.
299	  Say Y if you want to support video devices and functionality such as
300	  video encode and decode.
301
302config SDM_DISPCC_845
303	tristate "SDM845 Display Clock Controller"
304	select SDM_GCC_845
305	help
306	  Support for the display clock controller on Qualcomm Technologies, Inc
307	  SDM845 devices.
308	  Say Y if you want to support display devices and functionality such as
309	  splash screen.
310
311config SDM_LPASSCC_845
312	tristate "SDM845 Low Power Audio Subsystem (LPAAS) Clock Controller"
313	select SDM_GCC_845
314	help
315	  Support for the LPASS clock controller on SDM845 devices.
316	  Say Y if you want to use the LPASS branch clocks of the LPASS clock
317	  controller to reset the LPASS subsystem.
318
319config SM_GCC_8150
320	tristate "SM8150 Global Clock Controller"
321	help
322	  Support for the global clock controller on SM8150 devices.
323	  Say Y if you want to use peripheral devices such as UART,
324	  SPI, I2C, USB, SD/UFS, PCIe etc.
325
326config SPMI_PMIC_CLKDIV
327	tristate "SPMI PMIC clkdiv Support"
328	depends on SPMI || COMPILE_TEST
329	help
330	  This driver supports the clkdiv functionality on the Qualcomm
331	  Technologies, Inc. SPMI PMIC. It configures the frequency of
332	  clkdiv outputs of the PMIC. These clocks are typically wired
333	  through alternate functions on GPIO pins.
334
335config QCOM_HFPLL
336	tristate "High-Frequency PLL (HFPLL) Clock Controller"
337	help
338	  Support for the high-frequency PLLs present on Qualcomm devices.
339	  Say Y if you want to support CPU frequency scaling on devices
340	  such as MSM8974, APQ8084, etc.
341
342config KPSS_XCC
343	tristate "KPSS Clock Controller"
344	help
345	  Support for the Krait ACC and GCC clock controllers. Say Y
346	  if you want to support CPU frequency scaling on devices such
347	  as MSM8960, APQ8064, etc.
348
349config KRAITCC
350	tristate "Krait Clock Controller"
351	depends on ARM
352	select KRAIT_CLOCKS
353	help
354	  Support for the Krait CPU clocks on Qualcomm devices.
355	  Say Y if you want to support CPU frequency scaling.
356
357endif
358