forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-05-10 23fa18eaa71266feff7ba8d83022d9e1cc83c65a
kernel/drivers/clk/qcom/Kconfig
....@@ -1,3 +1,8 @@
1
+# SPDX-License-Identifier: GPL-2.0-only
2
+config KRAIT_CLOCKS
3
+ bool
4
+ select KRAIT_L2_ACCESSORS
5
+
16 config QCOM_GDSC
27 bool
38 select PM_GENERIC_DOMAINS if PM
....@@ -5,17 +10,18 @@
510 config QCOM_RPMCC
611 bool
712
8
-config COMMON_CLK_QCOM
13
+menuconfig COMMON_CLK_QCOM
914 tristate "Support for Qualcomm's clock controllers"
1015 depends on OF
1116 depends on ARCH_QCOM || COMPILE_TEST
17
+ select RATIONAL
1218 select REGMAP_MMIO
1319 select RESET_CONTROLLER
1420
21
+if COMMON_CLK_QCOM
22
+
1523 config QCOM_A53PLL
1624 tristate "MSM8916 A53 PLL"
17
- depends on COMMON_CLK_QCOM
18
- default ARCH_QCOM
1925 help
2026 Support for the A53 PLL on MSM8916 devices. It provides
2127 the CPU with frequencies above 1GHz.
....@@ -24,18 +30,25 @@
2430
2531 config QCOM_CLK_APCS_MSM8916
2632 tristate "MSM8916 APCS Clock Controller"
27
- depends on COMMON_CLK_QCOM
2833 depends on QCOM_APCS_IPC || COMPILE_TEST
29
- default ARCH_QCOM
3034 help
3135 Support for the APCS Clock Controller on msm8916 devices. The
3236 APCS is managing the mux and divider which feeds the CPUs.
3337 Say Y if you want to support CPU frequency scaling on devices
3438 such as msm8916.
3539
40
+config 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
+
3649 config QCOM_CLK_RPM
3750 tristate "RPM based Clock Controller"
38
- depends on COMMON_CLK_QCOM && MFD_QCOM_RPM
51
+ depends on MFD_QCOM_RPM
3952 select QCOM_RPMCC
4053 help
4154 The RPM (Resource Power Manager) is a dedicated hardware engine for
....@@ -48,7 +61,7 @@
4861
4962 config QCOM_CLK_SMD_RPM
5063 tristate "RPM over SMD based Clock Controller"
51
- depends on COMMON_CLK_QCOM && QCOM_SMD_RPM
64
+ depends on QCOM_SMD_RPM
5265 select QCOM_RPMCC
5366 help
5467 The RPM (Resource Power Manager) is a dedicated hardware engine for
....@@ -61,7 +74,7 @@
6174
6275 config QCOM_CLK_RPMH
6376 tristate "RPMh Clock Driver"
64
- depends on COMMON_CLK_QCOM && QCOM_RPMH
77
+ depends on QCOM_RPMH
6578 help
6679 RPMh manages shared resources on some Qualcomm Technologies, Inc.
6780 SoCs. It accepts requests from other hardware subsystems via RSC.
....@@ -71,7 +84,6 @@
7184 config APQ_GCC_8084
7285 tristate "APQ8084 Global Clock Controller"
7386 select QCOM_GDSC
74
- depends on COMMON_CLK_QCOM
7587 help
7688 Support for the global clock controller on apq8084 devices.
7789 Say Y if you want to use peripheral devices such as UART, SPI,
....@@ -81,23 +93,47 @@
8193 tristate "APQ8084 Multimedia Clock Controller"
8294 select APQ_GCC_8084
8395 select QCOM_GDSC
84
- depends on COMMON_CLK_QCOM
8596 help
8697 Support for the multimedia clock controller on apq8084 devices.
8798 Say Y if you want to support multimedia devices such as display,
8899 graphics, video encode/decode, camera, etc.
89100
101
+config 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
+
109
+config IPQ_APSS_6018
110
+ tristate "IPQ APSS Clock Controller"
111
+ select IPQ_APSS_PLL
112
+ depends on QCOM_APCS_IPC || COMPILE_TEST
113
+ help
114
+ Support for APSS clock controller on IPQ platforms. The
115
+ APSS clock controller manages the Mux and enable block that feeds the
116
+ CPUs.
117
+ Say Y if you want to support CPU frequency scaling on
118
+ ipq based devices.
119
+
90120 config IPQ_GCC_4019
91121 tristate "IPQ4019 Global Clock Controller"
92
- depends on COMMON_CLK_QCOM
93122 help
94123 Support for the global clock controller on ipq4019 devices.
95124 Say Y if you want to use peripheral devices such as UART, SPI,
96125 i2c, USB, SD/eMMC, etc.
97126
127
+config IPQ_GCC_6018
128
+ tristate "IPQ6018 Global Clock Controller"
129
+ help
130
+ Support for global clock controller on ipq6018 devices.
131
+ Say Y if you want to use peripheral devices such as UART, SPI,
132
+ i2c, USB, SD/eMMC, etc. Select this for the root clock
133
+ of ipq6018.
134
+
98135 config IPQ_GCC_806X
99136 tristate "IPQ806x Global Clock Controller"
100
- depends on COMMON_CLK_QCOM
101137 help
102138 Support for the global clock controller on ipq806x devices.
103139 Say Y if you want to use peripheral devices such as UART, SPI,
....@@ -106,7 +142,6 @@
106142 config IPQ_LCC_806X
107143 tristate "IPQ806x LPASS Clock Controller"
108144 select IPQ_GCC_806X
109
- depends on COMMON_CLK_QCOM
110145 help
111146 Support for the LPASS clock controller on ipq806x devices.
112147 Say Y if you want to use audio devices such as i2s, pcm,
....@@ -114,7 +149,6 @@
114149
115150 config IPQ_GCC_8074
116151 tristate "IPQ8074 Global Clock Controller"
117
- depends on COMMON_CLK_QCOM
118152 help
119153 Support for global clock controller on ipq8074 devices.
120154 Say Y if you want to use peripheral devices such as UART, SPI,
....@@ -123,7 +157,6 @@
123157
124158 config MSM_GCC_8660
125159 tristate "MSM8660 Global Clock Controller"
126
- depends on COMMON_CLK_QCOM
127160 help
128161 Support for the global clock controller on msm8660 devices.
129162 Say Y if you want to use peripheral devices such as UART, SPI,
....@@ -132,15 +165,21 @@
132165 config MSM_GCC_8916
133166 tristate "MSM8916 Global Clock Controller"
134167 select QCOM_GDSC
135
- depends on COMMON_CLK_QCOM
136168 help
137169 Support for the global clock controller on msm8916 devices.
138170 Say Y if you want to use devices such as UART, SPI i2c, USB,
139171 SD/eMMC, display, graphics, camera etc.
140172
173
+config MSM_GCC_8939
174
+ tristate "MSM8939 Global Clock Controller"
175
+ select QCOM_GDSC
176
+ help
177
+ Support for the global clock controller on msm8939 devices.
178
+ Say Y if you want to use devices such as UART, SPI i2c, USB,
179
+ SD/eMMC, display, graphics, camera etc.
180
+
141181 config MSM_GCC_8960
142182 tristate "APQ8064/MSM8960 Global Clock Controller"
143
- depends on COMMON_CLK_QCOM
144183 help
145184 Support for the global clock controller on apq8064/msm8960 devices.
146185 Say Y if you want to use peripheral devices such as UART, SPI,
....@@ -149,7 +188,6 @@
149188 config MSM_LCC_8960
150189 tristate "APQ8064/MSM8960 LPASS Clock Controller"
151190 select MSM_GCC_8960
152
- depends on COMMON_CLK_QCOM
153191 help
154192 Support for the LPASS clock controller on apq8064/msm8960 devices.
155193 Say Y if you want to use audio devices such as i2s, pcm,
....@@ -157,7 +195,6 @@
157195
158196 config MDM_GCC_9615
159197 tristate "MDM9615 Global Clock Controller"
160
- depends on COMMON_CLK_QCOM
161198 help
162199 Support for the global clock controller on mdm9615 devices.
163200 Say Y if you want to use peripheral devices such as UART, SPI,
....@@ -166,7 +203,6 @@
166203 config MDM_LCC_9615
167204 tristate "MDM9615 LPASS Clock Controller"
168205 select MDM_GCC_9615
169
- depends on COMMON_CLK_QCOM
170206 help
171207 Support for the LPASS clock controller on mdm9615 devices.
172208 Say Y if you want to use audio devices such as i2s, pcm,
....@@ -175,7 +211,6 @@
175211 config MSM_MMCC_8960
176212 tristate "MSM8960 Multimedia Clock Controller"
177213 select MSM_GCC_8960
178
- depends on COMMON_CLK_QCOM
179214 help
180215 Support for the multimedia clock controller on msm8960 devices.
181216 Say Y if you want to support multimedia devices such as display,
....@@ -184,7 +219,6 @@
184219 config MSM_GCC_8974
185220 tristate "MSM8974 Global Clock Controller"
186221 select QCOM_GDSC
187
- depends on COMMON_CLK_QCOM
188222 help
189223 Support for the global clock controller on msm8974 devices.
190224 Say Y if you want to use peripheral devices such as UART, SPI,
....@@ -194,7 +228,6 @@
194228 tristate "MSM8974 Multimedia Clock Controller"
195229 select MSM_GCC_8974
196230 select QCOM_GDSC
197
- depends on COMMON_CLK_QCOM
198231 help
199232 Support for the multimedia clock controller on msm8974 devices.
200233 Say Y if you want to support multimedia devices such as display,
....@@ -202,7 +235,6 @@
202235
203236 config MSM_GCC_8994
204237 tristate "MSM8994 Global Clock Controller"
205
- depends on COMMON_CLK_QCOM
206238 help
207239 Support for the global clock controller on msm8994 devices.
208240 Say Y if you want to use peripheral devices such as UART, SPI,
....@@ -211,7 +243,6 @@
211243 config MSM_GCC_8996
212244 tristate "MSM8996 Global Clock Controller"
213245 select QCOM_GDSC
214
- depends on COMMON_CLK_QCOM
215246 help
216247 Support for the global clock controller on msm8996 devices.
217248 Say Y if you want to use peripheral devices such as UART, SPI,
....@@ -221,7 +252,6 @@
221252 tristate "MSM8996 Multimedia Clock Controller"
222253 select MSM_GCC_8996
223254 select QCOM_GDSC
224
- depends on COMMON_CLK_QCOM
225255 help
226256 Support for the multimedia clock controller on msm8996 devices.
227257 Say Y if you want to support multimedia devices such as display,
....@@ -229,24 +259,136 @@
229259
230260 config MSM_GCC_8998
231261 tristate "MSM8998 Global Clock Controller"
232
- depends on COMMON_CLK_QCOM
262
+ select QCOM_GDSC
233263 help
234264 Support for the global clock controller on msm8998 devices.
235265 Say Y if you want to use peripheral devices such as UART, SPI,
236266 i2c, USB, UFS, SD/eMMC, PCIe, etc.
237267
268
+config MSM_GPUCC_8998
269
+ tristate "MSM8998 Graphics Clock Controller"
270
+ select MSM_GCC_8998
271
+ select QCOM_GDSC
272
+ help
273
+ Support for the graphics clock controller on MSM8998 devices.
274
+ Say Y if you want to support graphics controller devices and
275
+ functionality such as 3D graphics.
276
+
277
+config MSM_MMCC_8998
278
+ tristate "MSM8998 Multimedia Clock Controller"
279
+ select MSM_GCC_8998
280
+ select QCOM_GDSC
281
+ help
282
+ Support for the multimedia clock controller on msm8998 devices.
283
+ Say Y if you want to support multimedia devices such as display,
284
+ graphics, video encode/decode, camera, etc.
285
+
286
+config QCS_GCC_404
287
+ tristate "QCS404 Global Clock Controller"
288
+ help
289
+ Support for the global clock controller on QCS404 devices.
290
+ Say Y if you want to use multimedia devices or peripheral
291
+ devices such as UART, SPI, I2C, USB, SD/eMMC, PCIe etc.
292
+
293
+config SC_DISPCC_7180
294
+ tristate "SC7180 Display Clock Controller"
295
+ select SC_GCC_7180
296
+ help
297
+ Support for the display clock controller on Qualcomm Technologies, Inc
298
+ SC7180 devices.
299
+ Say Y if you want to support display devices and functionality such as
300
+ splash screen.
301
+
302
+config SC_GCC_7180
303
+ tristate "SC7180 Global Clock Controller"
304
+ select QCOM_GDSC
305
+ depends on COMMON_CLK_QCOM
306
+ help
307
+ Support for the global clock controller on SC7180 devices.
308
+ Say Y if you want to use peripheral devices such as UART, SPI,
309
+ I2C, USB, UFS, SDCC, etc.
310
+
311
+config SC_LPASS_CORECC_7180
312
+ tristate "SC7180 LPASS Core Clock Controller"
313
+ select SC_GCC_7180
314
+ help
315
+ Support for the LPASS(Low Power Audio Subsystem) core clock controller
316
+ on SC7180 devices.
317
+ Say Y if you want to use LPASS clocks and power domains of the LPASS
318
+ core clock controller.
319
+
320
+config SC_GPUCC_7180
321
+ tristate "SC7180 Graphics Clock Controller"
322
+ select SC_GCC_7180
323
+ help
324
+ Support for the graphics clock controller on SC7180 devices.
325
+ Say Y if you want to support graphics controller devices and
326
+ functionality such as 3D graphics.
327
+
328
+config SC_MSS_7180
329
+ tristate "SC7180 Modem Clock Controller"
330
+ select SC_GCC_7180
331
+ help
332
+ Support for the Modem Subsystem clock controller on Qualcomm
333
+ Technologies, Inc on SC7180 devices.
334
+ Say Y if you want to use the Modem branch clocks of the Modem
335
+ subsystem clock controller to reset the MSS subsystem.
336
+
337
+config SC_VIDEOCC_7180
338
+ tristate "SC7180 Video Clock Controller"
339
+ select SC_GCC_7180
340
+ help
341
+ Support for the video clock controller on SC7180 devices.
342
+ Say Y if you want to support video devices and functionality such as
343
+ video encode and decode.
344
+
345
+config SDM_CAMCC_845
346
+ tristate "SDM845 Camera Clock Controller"
347
+ select SDM_GCC_845
348
+ help
349
+ Support for the camera clock controller on SDM845 devices.
350
+ Say Y if you want to support camera devices and camera functionality.
351
+
352
+config SDM_GCC_660
353
+ tristate "SDM660 Global Clock Controller"
354
+ select QCOM_GDSC
355
+ help
356
+ Support for the global clock controller on SDM660 devices.
357
+ Say Y if you want to use peripheral devices such as UART, SPI,
358
+ i2C, USB, UFS, SDDC, PCIe, etc.
359
+
360
+config QCS_TURING_404
361
+ tristate "QCS404 Turing Clock Controller"
362
+ help
363
+ Support for the Turing Clock Controller on QCS404, provides clocks
364
+ and resets for the Turing subsystem.
365
+
366
+config QCS_Q6SSTOP_404
367
+ tristate "QCS404 Q6SSTOP Clock Controller"
368
+ select QCS_GCC_404
369
+ help
370
+ Support for the Q6SSTOP clock controller on QCS404 devices.
371
+ Say Y if you want to use the Q6SSTOP branch clocks of the WCSS clock
372
+ controller to reset the Q6SSTOP subsystem.
373
+
238374 config SDM_GCC_845
239375 tristate "SDM845 Global Clock Controller"
240376 select QCOM_GDSC
241
- depends on COMMON_CLK_QCOM
242377 help
243378 Support for the global clock controller on SDM845 devices.
244379 Say Y if you want to use peripheral devices such as UART, SPI,
245380 i2C, USB, UFS, SDDC, PCIe, etc.
246381
382
+config SDM_GPUCC_845
383
+ tristate "SDM845 Graphics Clock Controller"
384
+ select SDM_GCC_845
385
+ help
386
+ Support for the graphics clock controller on SDM845 devices.
387
+ Say Y if you want to support graphics controller devices and
388
+ functionality such as 3D graphics.
389
+
247390 config SDM_VIDEOCC_845
248391 tristate "SDM845 Video Clock Controller"
249
- depends on COMMON_CLK_QCOM
250392 select SDM_GCC_845
251393 select QCOM_GDSC
252394 help
....@@ -257,18 +399,107 @@
257399 config SDM_DISPCC_845
258400 tristate "SDM845 Display Clock Controller"
259401 select SDM_GCC_845
260
- depends on COMMON_CLK_QCOM
261402 help
262403 Support for the display clock controller on Qualcomm Technologies, Inc
263404 SDM845 devices.
264405 Say Y if you want to support display devices and functionality such as
265406 splash screen.
266407
408
+config SDM_LPASSCC_845
409
+ tristate "SDM845 Low Power Audio Subsystem (LPAAS) Clock Controller"
410
+ select SDM_GCC_845
411
+ help
412
+ Support for the LPASS clock controller on SDM845 devices.
413
+ Say Y if you want to use the LPASS branch clocks of the LPASS clock
414
+ controller to reset the LPASS subsystem.
415
+
416
+config SM_DISPCC_8250
417
+ tristate "SM8150 and SM8250 Display Clock Controller"
418
+ depends on SM_GCC_8150 || SM_GCC_8250
419
+ help
420
+ Support for the display clock controller on Qualcomm Technologies, Inc
421
+ SM8150 and SM8250 devices.
422
+ Say Y if you want to support display devices and functionality such as
423
+ splash screen.
424
+
425
+config SM_GCC_8150
426
+ tristate "SM8150 Global Clock Controller"
427
+ help
428
+ Support for the global clock controller on SM8150 devices.
429
+ Say Y if you want to use peripheral devices such as UART,
430
+ SPI, I2C, USB, SD/UFS, PCIe etc.
431
+
432
+config SM_GCC_8250
433
+ tristate "SM8250 Global Clock Controller"
434
+ select QCOM_GDSC
435
+ help
436
+ Support for the global clock controller on SM8250 devices.
437
+ Say Y if you want to use peripheral devices such as UART,
438
+ SPI, I2C, USB, SD/UFS, PCIe etc.
439
+
440
+config SM_GPUCC_8150
441
+ tristate "SM8150 Graphics Clock Controller"
442
+ select SM_GCC_8150
443
+ help
444
+ Support for the graphics clock controller on SM8150 devices.
445
+ Say Y if you want to support graphics controller devices and
446
+ functionality such as 3D graphics.
447
+
448
+config SM_GPUCC_8250
449
+ tristate "SM8250 Graphics Clock Controller"
450
+ select SM_GCC_8250
451
+ help
452
+ Support for the graphics clock controller on SM8250 devices.
453
+ Say Y if you want to support graphics controller devices and
454
+ functionality such as 3D graphics.
455
+
456
+config SM_VIDEOCC_8150
457
+ tristate "SM8150 Video Clock Controller"
458
+ select SDM_GCC_8150
459
+ select QCOM_GDSC
460
+ help
461
+ Support for the video clock controller on SM8150 devices.
462
+ Say Y if you want to support video devices and functionality such as
463
+ video encode and decode.
464
+
465
+config SM_VIDEOCC_8250
466
+ tristate "SM8250 Video Clock Controller"
467
+ select SDM_GCC_8250
468
+ select QCOM_GDSC
469
+ help
470
+ Support for the video clock controller on SM8250 devices.
471
+ Say Y if you want to support video devices and functionality such as
472
+ video encode and decode.
473
+
267474 config SPMI_PMIC_CLKDIV
268475 tristate "SPMI PMIC clkdiv Support"
269
- depends on (COMMON_CLK_QCOM && SPMI) || COMPILE_TEST
476
+ depends on SPMI || COMPILE_TEST
270477 help
271478 This driver supports the clkdiv functionality on the Qualcomm
272479 Technologies, Inc. SPMI PMIC. It configures the frequency of
273480 clkdiv outputs of the PMIC. These clocks are typically wired
274481 through alternate functions on GPIO pins.
482
+
483
+config QCOM_HFPLL
484
+ tristate "High-Frequency PLL (HFPLL) Clock Controller"
485
+ help
486
+ Support for the high-frequency PLLs present on Qualcomm devices.
487
+ Say Y if you want to support CPU frequency scaling on devices
488
+ such as MSM8974, APQ8084, etc.
489
+
490
+config KPSS_XCC
491
+ tristate "KPSS Clock Controller"
492
+ help
493
+ Support for the Krait ACC and GCC clock controllers. Say Y
494
+ if you want to support CPU frequency scaling on devices such
495
+ as MSM8960, APQ8064, etc.
496
+
497
+config KRAITCC
498
+ tristate "Krait Clock Controller"
499
+ depends on ARM
500
+ select KRAIT_CLOCKS
501
+ help
502
+ Support for the Krait CPU clocks on Qualcomm devices.
503
+ Say Y if you want to support CPU frequency scaling.
504
+
505
+endif