blob: 15cdcdc9b3b89e0196aea709905190b271aaac26 [file] [log] [blame]
Thomas Gleixnerec8f24b2019-05-19 13:07:45 +01001# SPDX-License-Identifier: GPL-2.0-only
Stephen Boyd4d7dc772018-08-14 17:42:26 +05302config KRAIT_CLOCKS
Krzysztof Kozlowski333d2d12019-11-21 04:18:55 +01003 bool
4 select KRAIT_L2_ACCESSORS
Stephen Boyd4d7dc772018-08-14 17:42:26 +05305
Stephen Boyd73bb7dc2015-10-08 10:59:32 -07006config QCOM_GDSC
7 bool
8 select PM_GENERIC_DOMAINS if PM
9
Georgi Djakov00f64b52016-11-02 17:56:56 +020010config QCOM_RPMCC
11 bool
12
Stephen Boydf071bce2018-11-21 12:39:44 -080013menuconfig COMMON_CLK_QCOM
Stephen Boyd085d7a42014-01-15 10:47:23 -080014 tristate "Support for Qualcomm's clock controllers"
15 depends on OF
Bartlomiej Zolnierkiewicz39375672015-04-07 14:12:04 +020016 depends on ARCH_QCOM || COMPILE_TEST
Taniya Dascddf1f82019-07-31 23:57:12 +053017 select RATIONAL
Stephen Boyd085d7a42014-01-15 10:47:23 -080018 select REGMAP_MMIO
Stephen Boydb36ba302014-01-15 10:47:27 -080019 select RESET_CONTROLLER
Stephen Boyd2ec94132014-01-15 10:47:28 -080020
Stephen Boydf071bce2018-11-21 12:39:44 -080021if COMMON_CLK_QCOM
22
Georgi Djakov0c6ab1b2017-12-05 17:46:58 +020023config QCOM_A53PLL
24 tristate "MSM8916 A53 PLL"
Georgi Djakov0c6ab1b2017-12-05 17:46:58 +020025 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
Georgi Djakov81ac3882017-12-05 17:47:01 +020031config QCOM_CLK_APCS_MSM8916
32 tristate "MSM8916 APCS Clock Controller"
Georgi Djakov81ac3882017-12-05 17:47:01 +020033 depends on QCOM_APCS_IPC || COMPILE_TEST
Georgi Djakov81ac3882017-12-05 17:47:01 +020034 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
Georgi Djakov872f91b52016-11-02 17:56:57 +020040config QCOM_CLK_RPM
41 tristate "RPM based Clock Controller"
Stephen Boydf071bce2018-11-21 12:39:44 -080042 depends on MFD_QCOM_RPM
Georgi Djakov872f91b52016-11-02 17:56:57 +020043 select QCOM_RPMCC
44 help
45 The RPM (Resource Power Manager) is a dedicated hardware engine for
46 managing the shared SoC resources in order to keep the lowest power
47 profile. It communicates with other hardware subsystems via shared
48 memory and accepts clock requests, aggregates the requests and turns
49 the clocks on/off or scales them on demand.
50 Say Y if you want to support the clocks exposed by the RPM on
51 platforms such as apq8064, msm8660, msm8960 etc.
52
Georgi Djakov00f64b52016-11-02 17:56:56 +020053config QCOM_CLK_SMD_RPM
54 tristate "RPM over SMD based Clock Controller"
Stephen Boydf071bce2018-11-21 12:39:44 -080055 depends on QCOM_SMD_RPM
Georgi Djakov00f64b52016-11-02 17:56:56 +020056 select QCOM_RPMCC
57 help
58 The RPM (Resource Power Manager) is a dedicated hardware engine for
59 managing the shared SoC resources in order to keep the lowest power
60 profile. It communicates with other hardware subsystems via shared
61 memory and accepts clock requests, aggregates the requests and turns
62 the clocks on/off or scales them on demand.
63 Say Y if you want to support the clocks exposed by the RPM on
64 platforms such as apq8016, apq8084, msm8974 etc.
65
Taniya Das9c7e4702018-05-09 11:26:07 +053066config QCOM_CLK_RPMH
67 tristate "RPMh Clock Driver"
Stephen Boydf071bce2018-11-21 12:39:44 -080068 depends on QCOM_RPMH
Taniya Das9c7e4702018-05-09 11:26:07 +053069 help
70 RPMh manages shared resources on some Qualcomm Technologies, Inc.
71 SoCs. It accepts requests from other hardware subsystems via RSC.
72 Say Y if you want to support the clocks exposed by RPMh on
73 platforms such as SDM845.
74
Georgi Djakov02824652014-06-03 17:24:09 +030075config APQ_GCC_8084
76 tristate "APQ8084 Global Clock Controller"
Rajendra Nayak639af942015-08-06 16:07:49 +053077 select QCOM_GDSC
Georgi Djakov02824652014-06-03 17:24:09 +030078 help
79 Support for the global clock controller on apq8084 devices.
80 Say Y if you want to use peripheral devices such as UART, SPI,
81 i2c, USB, SD/eMMC, SATA, PCIe, etc.
82
Georgi Djakov2b46cd22014-06-12 19:41:42 +030083config APQ_MMCC_8084
84 tristate "APQ8084 Multimedia Clock Controller"
85 select APQ_GCC_8084
Stephane Viaucb2eb7d2015-08-06 16:07:50 +053086 select QCOM_GDSC
Georgi Djakov2b46cd22014-06-12 19:41:42 +030087 help
88 Support for the multimedia clock controller on apq8084 devices.
89 Say Y if you want to support multimedia devices such as display,
90 graphics, video encode/decode, camera, etc.
91
Varadarajan Narayanan6971e862015-11-19 17:19:29 -060092config IPQ_GCC_4019
93 tristate "IPQ4019 Global Clock Controller"
Varadarajan Narayanan6971e862015-11-19 17:19:29 -060094 help
95 Support for the global clock controller on ipq4019 devices.
96 Say Y if you want to use peripheral devices such as UART, SPI,
97 i2c, USB, SD/eMMC, etc.
98
Sricharan Rd9db07f2020-01-09 13:35:21 +053099config IPQ_GCC_6018
100 tristate "IPQ6018 Global Clock Controller"
101 help
102 Support for global clock controller on ipq6018 devices.
103 Say Y if you want to use peripheral devices such as UART, SPI,
104 i2c, USB, SD/eMMC, etc. Select this for the root clock
105 of ipq6018.
106
Kumar Gala24d8fba2014-06-17 14:46:51 -0500107config IPQ_GCC_806X
108 tristate "IPQ806x Global Clock Controller"
Kumar Gala24d8fba2014-06-17 14:46:51 -0500109 help
110 Support for the global clock controller on ipq806x devices.
111 Say Y if you want to use peripheral devices such as UART, SPI,
112 i2c, USB, SD/eMMC, etc.
113
Rajendra Nayakc99e5152015-01-19 18:05:33 -0800114config IPQ_LCC_806X
115 tristate "IPQ806x LPASS Clock Controller"
116 select IPQ_GCC_806X
Rajendra Nayakc99e5152015-01-19 18:05:33 -0800117 help
118 Support for the LPASS clock controller on ipq806x devices.
119 Say Y if you want to use audio devices such as i2s, pcm,
120 S/PDIF, etc.
121
Abhishek Sahu371a9502017-06-09 15:11:57 +0530122config IPQ_GCC_8074
123 tristate "IPQ8074 Global Clock Controller"
Abhishek Sahu371a9502017-06-09 15:11:57 +0530124 help
125 Support for global clock controller on ipq8074 devices.
126 Say Y if you want to use peripheral devices such as UART, SPI,
127 i2c, USB, SD/eMMC, etc. Select this for the root clock
128 of ipq8074.
129
Stephen Boyd0eeff272014-01-15 10:47:32 -0800130config MSM_GCC_8660
131 tristate "MSM8660 Global Clock Controller"
Stephen Boyd0eeff272014-01-15 10:47:32 -0800132 help
133 Support for the global clock controller on msm8660 devices.
134 Say Y if you want to use peripheral devices such as UART, SPI,
135 i2c, USB, SD/eMMC, etc.
136
Georgi Djakov3966fab2015-03-18 16:08:22 +0200137config MSM_GCC_8916
138 tristate "MSM8916 Global Clock Controller"
Rajendra Nayak073ae2b2015-08-06 16:07:46 +0530139 select QCOM_GDSC
Georgi Djakov3966fab2015-03-18 16:08:22 +0200140 help
141 Support for the global clock controller on msm8916 devices.
142 Say Y if you want to use devices such as UART, SPI i2c, USB,
143 SD/eMMC, display, graphics, camera etc.
144
Stephen Boyd2ec94132014-01-15 10:47:28 -0800145config MSM_GCC_8960
Kumar Gala2d85a712014-04-04 11:31:29 -0500146 tristate "APQ8064/MSM8960 Global Clock Controller"
Stephen Boyd2ec94132014-01-15 10:47:28 -0800147 help
Kumar Gala2d85a712014-04-04 11:31:29 -0500148 Support for the global clock controller on apq8064/msm8960 devices.
Stephen Boyd2ec94132014-01-15 10:47:28 -0800149 Say Y if you want to use peripheral devices such as UART, SPI,
150 i2c, USB, SD/eMMC, SATA, PCIe, etc.
Stephen Boyd6d00b562014-01-15 10:47:29 -0800151
Stephen Boydb82875e2015-01-19 18:05:34 -0800152config MSM_LCC_8960
153 tristate "APQ8064/MSM8960 LPASS Clock Controller"
154 select MSM_GCC_8960
Stephen Boydb82875e2015-01-19 18:05:34 -0800155 help
156 Support for the LPASS clock controller on apq8064/msm8960 devices.
157 Say Y if you want to use audio devices such as i2s, pcm,
158 SLIMBus, etc.
159
Neil Armstrong7792a8d2016-08-11 14:48:04 +0200160config MDM_GCC_9615
161 tristate "MDM9615 Global Clock Controller"
Neil Armstrong7792a8d2016-08-11 14:48:04 +0200162 help
163 Support for the global clock controller on mdm9615 devices.
164 Say Y if you want to use peripheral devices such as UART, SPI,
165 i2c, USB, SD/eMMC, etc.
166
167config MDM_LCC_9615
168 tristate "MDM9615 LPASS Clock Controller"
169 select MDM_GCC_9615
Neil Armstrong7792a8d2016-08-11 14:48:04 +0200170 help
171 Support for the LPASS clock controller on mdm9615 devices.
172 Say Y if you want to use audio devices such as i2s, pcm,
173 SLIMBus, etc.
174
Stephen Boyd6d00b562014-01-15 10:47:29 -0800175config MSM_MMCC_8960
176 tristate "MSM8960 Multimedia Clock Controller"
177 select MSM_GCC_8960
Stephen Boyd6d00b562014-01-15 10:47:29 -0800178 help
179 Support for the multimedia clock controller on msm8960 devices.
180 Say Y if you want to support multimedia devices such as display,
181 graphics, video encode/decode, camera, etc.
Stephen Boydd33faa92014-01-15 10:47:30 -0800182
183config MSM_GCC_8974
184 tristate "MSM8974 Global Clock Controller"
Stephen Boyd340029e2015-08-06 16:07:47 +0530185 select QCOM_GDSC
Stephen Boydd33faa92014-01-15 10:47:30 -0800186 help
187 Support for the global clock controller on msm8974 devices.
188 Say Y if you want to use peripheral devices such as UART, SPI,
189 i2c, USB, SD/eMMC, SATA, PCIe, etc.
Stephen Boydd8b21202014-01-15 10:47:31 -0800190
191config MSM_MMCC_8974
192 tristate "MSM8974 Multimedia Clock Controller"
193 select MSM_GCC_8974
Stephen Boyd8108b232015-08-06 16:07:48 +0530194 select QCOM_GDSC
Stephen Boydd8b21202014-01-15 10:47:31 -0800195 help
196 Support for the multimedia clock controller on msm8974 devices.
197 Say Y if you want to support multimedia devices such as display,
198 graphics, video encode/decode, camera, etc.
Stephen Boydb1e010c2015-11-30 17:31:40 -0800199
Bastian Köcheraec89f72016-11-04 13:56:35 -0700200config MSM_GCC_8994
201 tristate "MSM8994 Global Clock Controller"
Bastian Köcheraec89f72016-11-04 13:56:35 -0700202 help
203 Support for the global clock controller on msm8994 devices.
204 Say Y if you want to use peripheral devices such as UART, SPI,
205 i2c, USB, UFS, SD/eMMC, PCIe, etc.
206
Stephen Boydb1e010c2015-11-30 17:31:40 -0800207config MSM_GCC_8996
208 tristate "MSM8996 Global Clock Controller"
Srinivas Kandagatla6d91f2c2016-08-25 12:28:07 +0100209 select QCOM_GDSC
Stephen Boydb1e010c2015-11-30 17:31:40 -0800210 help
211 Support for the global clock controller on msm8996 devices.
212 Say Y if you want to use peripheral devices such as UART, SPI,
213 i2c, USB, UFS, SD/eMMC, PCIe, etc.
Stephen Boydc2526592015-11-30 17:31:42 -0800214
215config MSM_MMCC_8996
216 tristate "MSM8996 Multimedia Clock Controller"
217 select MSM_GCC_8996
Srinivas Kandagatla6d91f2c2016-08-25 12:28:07 +0100218 select QCOM_GDSC
Stephen Boydc2526592015-11-30 17:31:42 -0800219 help
220 Support for the multimedia clock controller on msm8996 devices.
221 Say Y if you want to support multimedia devices such as display,
222 graphics, video encode/decode, camera, etc.
Tirupathi Reddy4cfaa552017-11-21 14:41:04 +0530223
Joonwoo Parkb5f5f522018-03-27 08:25:18 -0700224config MSM_GCC_8998
225 tristate "MSM8998 Global Clock Controller"
Marc Gonzalez83b4c142019-01-11 14:37:43 +0100226 select QCOM_GDSC
Joonwoo Parkb5f5f522018-03-27 08:25:18 -0700227 help
228 Support for the global clock controller on msm8998 devices.
229 Say Y if you want to use peripheral devices such as UART, SPI,
230 i2c, USB, UFS, SD/eMMC, PCIe, etc.
231
Jeffrey Hugo3f7df5b2019-10-31 11:57:33 -0700232config MSM_GPUCC_8998
233 tristate "MSM8998 Graphics Clock Controller"
234 select MSM_GCC_8998
235 select QCOM_GDSC
236 help
237 Support for the graphics clock controller on MSM8998 devices.
238 Say Y if you want to support graphics controller devices and
239 functionality such as 3D graphics.
240
Jeffrey Hugod14b15b2019-12-17 08:20:33 -0700241config MSM_MMCC_8998
242 tristate "MSM8998 Multimedia Clock Controller"
243 select MSM_GCC_8998
244 select QCOM_GDSC
245 help
246 Support for the multimedia clock controller on msm8998 devices.
247 Say Y if you want to support multimedia devices such as display,
248 graphics, video encode/decode, camera, etc.
249
Shefali Jain652f1812018-10-10 20:21:38 +0530250config QCS_GCC_404
251 tristate "QCS404 Global Clock Controller"
Shefali Jain652f1812018-10-10 20:21:38 +0530252 help
253 Support for the global clock controller on QCS404 devices.
254 Say Y if you want to use multimedia devices or peripheral
255 devices such as UART, SPI, I2C, USB, SD/eMMC, PCIe etc.
256
Taniya Dasdd3d0662019-11-15 15:34:05 +0530257config SC_DISPCC_7180
258 tristate "SC7180 Display Clock Controller"
259 select SC_GCC_7180
260 help
261 Support for the display clock controller on Qualcomm Technologies, Inc
262 SC7180 devices.
263 Say Y if you want to support display devices and functionality such as
264 splash screen.
265
Taniya Das17269562019-10-14 15:53:08 +0530266config SC_GCC_7180
267 tristate "SC7180 Global Clock Controller"
268 select QCOM_GDSC
269 depends on COMMON_CLK_QCOM
270 help
271 Support for the global clock controller on SC7180 devices.
272 Say Y if you want to use peripheral devices such as UART, SPI,
273 I2C, USB, UFS, SDCC, etc.
274
Taniya Das745ff062019-12-27 12:08:31 +0530275config SC_GPUCC_7180
276 tristate "SC7180 Graphics Clock Controller"
277 select SC_GCC_7180
278 help
279 Support for the graphics clock controller on SC7180 devices.
280 Say Y if you want to support graphics controller devices and
281 functionality such as 3D graphics.
282
Taniya Das253dc752019-12-27 12:08:34 +0530283config SC_VIDEOCC_7180
284 tristate "SC7180 Video Clock Controller"
285 select SC_GCC_7180
286 help
287 Support for the video clock controller on SC7180 devices.
288 Say Y if you want to support video devices and functionality such as
289 video encode and decode.
290
Amit Nischal78412c22018-08-08 16:17:19 +0530291config SDM_CAMCC_845
292 tristate "SDM845 Camera Clock Controller"
Amit Nischal78412c22018-08-08 16:17:19 +0530293 select SDM_GCC_845
294 help
295 Support for the camera clock controller on SDM845 devices.
296 Say Y if you want to support camera devices and camera functionality.
297
Taniya Dasf2a76a22018-09-25 18:35:58 +0100298config SDM_GCC_660
299 tristate "SDM660 Global Clock Controller"
300 select QCOM_GDSC
Taniya Dasf2a76a22018-09-25 18:35:58 +0100301 help
302 Support for the global clock controller on SDM660 devices.
303 Say Y if you want to use peripheral devices such as UART, SPI,
304 i2C, USB, UFS, SDDC, PCIe, etc.
305
Bjorn Andersson892df012019-03-06 09:47:58 -0800306config QCS_TURING_404
307 tristate "QCS404 Turing Clock Controller"
308 help
309 Support for the Turing Clock Controller on QCS404, provides clocks
310 and resets for the Turing subsystem.
311
Govind Singh6cdef2732019-10-11 18:59:28 +0530312config QCS_Q6SSTOP_404
313 tristate "QCS404 Q6SSTOP Clock Controller"
314 select QCS_GCC_404
315 help
316 Support for the Q6SSTOP clock controller on QCS404 devices.
317 Say Y if you want to use the Q6SSTOP branch clocks of the WCSS clock
318 controller to reset the Q6SSTOP subsystem.
319
Taniya Das06391ed2018-05-07 16:20:20 +0530320config SDM_GCC_845
321 tristate "SDM845 Global Clock Controller"
322 select QCOM_GDSC
Taniya Das06391ed2018-05-07 16:20:20 +0530323 help
Stephen Boyd77122d62018-06-04 12:34:51 -0700324 Support for the global clock controller on SDM845 devices.
Taniya Das06391ed2018-05-07 16:20:20 +0530325 Say Y if you want to use peripheral devices such as UART, SPI,
Stephen Boyd77122d62018-06-04 12:34:51 -0700326 i2C, USB, UFS, SDDC, PCIe, etc.
Taniya Das06391ed2018-05-07 16:20:20 +0530327
Amit Nischal453361c2018-11-25 10:06:08 +0530328config SDM_GPUCC_845
329 tristate "SDM845 Graphics Clock Controller"
Amit Nischal453361c2018-11-25 10:06:08 +0530330 select SDM_GCC_845
331 help
332 Support for the graphics clock controller on SDM845 devices.
333 Say Y if you want to support graphics controller devices and
334 functionality such as 3D graphics.
335
Amit Nischalc646b342018-05-09 17:02:31 +0530336config SDM_VIDEOCC_845
337 tristate "SDM845 Video Clock Controller"
Amit Nischalc646b342018-05-09 17:02:31 +0530338 select SDM_GCC_845
339 select QCOM_GDSC
340 help
Stephen Boyd77122d62018-06-04 12:34:51 -0700341 Support for the video clock controller on SDM845 devices.
Amit Nischalc646b342018-05-09 17:02:31 +0530342 Say Y if you want to support video devices and functionality such as
343 video encode and decode.
344
Taniya Das81351772018-07-23 16:24:35 +0530345config SDM_DISPCC_845
346 tristate "SDM845 Display Clock Controller"
347 select SDM_GCC_845
Taniya Das81351772018-07-23 16:24:35 +0530348 help
349 Support for the display clock controller on Qualcomm Technologies, Inc
350 SDM845 devices.
351 Say Y if you want to support display devices and functionality such as
352 splash screen.
353
Taniya Das8d3e5b92018-11-30 23:51:29 +0530354config SDM_LPASSCC_845
355 tristate "SDM845 Low Power Audio Subsystem (LPAAS) Clock Controller"
Taniya Das8d3e5b92018-11-30 23:51:29 +0530356 select SDM_GCC_845
357 help
358 Support for the LPASS clock controller on SDM845 devices.
359 Say Y if you want to use the LPASS branch clocks of the LPASS clock
360 controller to reset the LPASS subsystem.
361
Deepak Katragadda2a1d7eb2019-07-22 13:13:48 +0530362config SM_GCC_8150
363 tristate "SM8150 Global Clock Controller"
364 help
365 Support for the global clock controller on SM8150 devices.
366 Say Y if you want to use peripheral devices such as UART,
367 SPI, I2C, USB, SD/UFS, PCIe etc.
368
Tirupathi Reddy4cfaa552017-11-21 14:41:04 +0530369config SPMI_PMIC_CLKDIV
370 tristate "SPMI PMIC clkdiv Support"
Stephen Boydf071bce2018-11-21 12:39:44 -0800371 depends on SPMI || COMPILE_TEST
Tirupathi Reddy4cfaa552017-11-21 14:41:04 +0530372 help
373 This driver supports the clkdiv functionality on the Qualcomm
374 Technologies, Inc. SPMI PMIC. It configures the frequency of
375 clkdiv outputs of the PMIC. These clocks are typically wired
376 through alternate functions on GPIO pins.
Stephen Boydcb546b72018-08-14 17:42:22 +0530377
378config QCOM_HFPLL
379 tristate "High-Frequency PLL (HFPLL) Clock Controller"
Stephen Boydcb546b72018-08-14 17:42:22 +0530380 help
381 Support for the high-frequency PLLs present on Qualcomm devices.
382 Say Y if you want to support CPU frequency scaling on devices
383 such as MSM8974, APQ8084, etc.
Stephen Boyd3ddc3562018-08-14 17:42:27 +0530384
385config KPSS_XCC
386 tristate "KPSS Clock Controller"
Stephen Boyd3ddc3562018-08-14 17:42:27 +0530387 help
388 Support for the Krait ACC and GCC clock controllers. Say Y
389 if you want to support CPU frequency scaling on devices such
390 as MSM8960, APQ8064, etc.
Stephen Boydbb5c4a82018-08-14 17:42:29 +0530391
392config KRAITCC
393 tristate "Krait Clock Controller"
Stephen Boydf071bce2018-11-21 12:39:44 -0800394 depends on ARM
Stephen Boydbb5c4a82018-08-14 17:42:29 +0530395 select KRAIT_CLOCKS
396 help
397 Support for the Krait CPU clocks on Qualcomm devices.
398 Say Y if you want to support CPU frequency scaling.
Stephen Boydf071bce2018-11-21 12:39:44 -0800399
400endif