treewide: remove redundant IS_ERR() before error code check
[linux/fpc-iii.git] / drivers / clk / qcom / Kconfig
blob3b33ef129274aa26ef08ff86d63dd050f678ae03
1 # SPDX-License-Identifier: GPL-2.0-only
2 config KRAIT_CLOCKS
3        bool
4        select KRAIT_L2_ACCESSORS
6 config QCOM_GDSC
7         bool
8         select PM_GENERIC_DOMAINS if PM
10 config QCOM_RPMCC
11         bool
13 menuconfig 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
20 if COMMON_CLK_QCOM
22 config 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.
30 config 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.
39 config 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.
52 config 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.
65 config 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.
74 config 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.
82 config 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.
91 config 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.
98 config 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.
105 config 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.
113 config 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.
121 config 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.
128 config 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.
136 config 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.
143 config 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.
151 config 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.
158 config 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.
166 config 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.
174 config 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.
182 config 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.
191 config 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.
198 config 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.
206 config 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.
215 config 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.
223 config 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.
232 config 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.
239 config 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.
248 config 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.
255 config 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.
263 config 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.
269 config 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.
277 config 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.
285 config 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.
293 config 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.
302 config 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.
311 config 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.
319 config 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.
326 config 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.
335 config 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.
342 config 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.
349 config 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.
357 endif