hc
2023-12-09 b22da3d8526a935aa31e086e63f60ff3246cb61c
kernel/drivers/clk/Kconfig
....@@ -1,3 +1,10 @@
1
+# SPDX-License-Identifier: GPL-2.0
2
+
3
+config HAVE_CLK
4
+ bool
5
+ help
6
+ The <linux/clk.h> calls support software clock gating and
7
+ thus are a key power management tool on many systems.
18
29 config CLKDEV_LOOKUP
310 bool
....@@ -6,32 +13,34 @@
613 config HAVE_CLK_PREPARE
714 bool
815
9
-config COMMON_CLK
16
+config HAVE_LEGACY_CLK # TODO: Remove once all legacy users are migrated
1017 bool
18
+ select HAVE_CLK
19
+ help
20
+ Select this option when the clock API in <linux/clk.h> is implemented
21
+ by platform/architecture code. This method is deprecated. Modern
22
+ code should select COMMON_CLK instead and not define a custom
23
+ 'struct clk'.
24
+
25
+menuconfig COMMON_CLK
26
+ bool "Common Clock Framework"
27
+ depends on !HAVE_LEGACY_CLK
1128 select HAVE_CLK_PREPARE
1229 select CLKDEV_LOOKUP
1330 select SRCU
1431 select RATIONAL
15
- ---help---
32
+ help
1633 The common clock framework is a single definition of struct
1734 clk, useful across many platforms, as well as an
1835 implementation of the clock API in include/linux/clk.h.
1936 Architectures utilizing the common struct clk should select
2037 this option.
2138
22
-menu "Common Clock Framework"
23
- depends on COMMON_CLK
24
-
25
-config COMMON_CLK_DEBUGFS
26
- bool "Common Clock DebugFS interface"
27
- depends on COMMON_CLK && DEBUG_FS
28
- default y
29
- help
30
- Turns on the DebugFS interface for clock.
39
+if COMMON_CLK
3140
3241 config COMMON_CLK_PROCFS
3342 bool "Common Clock PROCFS interface"
34
- depends on COMMON_CLK && PROC_FS
43
+ depends on COMMON_CLK && PROC_FS && ARCH_ROCKCHIP
3544 default n
3645 help
3746 Turns on the PROCFS interface for clock.
....@@ -39,23 +48,24 @@
3948 config COMMON_CLK_WM831X
4049 tristate "Clock driver for WM831x/2x PMICs"
4150 depends on MFD_WM831X
42
- ---help---
43
- Supports the clocking subsystem of the WM831x/2x series of
51
+ help
52
+ Supports the clocking subsystem of the WM831x/2x series of
4453 PMICs from Wolfson Microelectronics.
4554
4655 source "drivers/clk/versatile/Kconfig"
4756
4857 config CLK_HSDK
4958 bool "PLL Driver for HSDK platform"
50
- depends on OF || COMPILE_TEST
51
- ---help---
59
+ depends on ARC_SOC_HSDK || COMPILE_TEST
60
+ depends on HAS_IOMEM
61
+ help
5262 This driver supports the HSDK core, system, ddr, tunnel and hdmi PLLs
5363 control.
5464
5565 config COMMON_CLK_MAX77686
5666 tristate "Clock driver for Maxim 77620/77686/77802 MFD"
5767 depends on MFD_MAX77686 || MFD_MAX77620 || COMPILE_TEST
58
- ---help---
68
+ help
5969 This driver supports Maxim 77620/77686/77802 crystal oscillator
6070 clock.
6171
....@@ -68,7 +78,7 @@
6878 config COMMON_CLK_RK808
6979 tristate "Clock driver for RK805/RK808/RK809/RK817/RK818"
7080 depends on MFD_RK808
71
- ---help---
81
+ help
7282 This driver supports RK805, RK809 and RK817, RK808 and RK818 crystal oscillator clock.
7383 These multi-function devices have two fixed-rate oscillators, clocked at 32KHz each.
7484 Clkout1 is always on, Clkout2 can off by control register.
....@@ -78,7 +88,7 @@
7888 depends on (MFD_HI655X_PMIC || COMPILE_TEST)
7989 depends on REGMAP
8090 default MFD_HI655X_PMIC
81
- ---help---
91
+ help
8292 This driver supports the hi655x PMIC clock. This
8393 multi-function device has one fixed-rate oscillator, clocked
8494 at 32KHz.
....@@ -86,7 +96,7 @@
8696 config COMMON_CLK_SCMI
8797 tristate "Clock driver controlled via SCMI interface"
8898 depends on ARM_SCMI_PROTOCOL || COMPILE_TEST
89
- ---help---
99
+ help
90100 This driver provides support for clocks that are controlled
91101 by firmware that implements the SCMI interface.
92102
....@@ -96,19 +106,29 @@
96106 config COMMON_CLK_SCPI
97107 tristate "Clock driver controlled via SCPI interface"
98108 depends on ARM_SCPI_PROTOCOL || COMPILE_TEST
99
- ---help---
109
+ help
100110 This driver provides support for clocks that are controlled
101111 by firmware that implements the SCPI interface.
102112
103113 This driver uses SCPI Message Protocol to interact with the
104114 firmware providing all the clock controls.
105115
116
+config COMMON_CLK_SI5341
117
+ tristate "Clock driver for SiLabs 5341 and 5340 A/B/C/D devices"
118
+ depends on I2C
119
+ select REGMAP_I2C
120
+ help
121
+ This driver supports Silicon Labs Si5341 and Si5340 programmable clock
122
+ generators. Not all features of these chips are currently supported
123
+ by the driver, in particular it only supports XTAL input. The chip can
124
+ be pre-programmed to support other configurations and features not yet
125
+ implemented in the driver.
126
+
106127 config COMMON_CLK_SI5351
107128 tristate "Clock driver for SiLabs 5351A/B/C"
108129 depends on I2C
109130 select REGMAP_I2C
110
- select RATIONAL
111
- ---help---
131
+ help
112132 This driver supports Silicon Labs 5351A/B/C programmable clock
113133 generators.
114134
....@@ -118,7 +138,6 @@
118138 depends on OF
119139 select REGMAP_I2C
120140 help
121
- ---help---
122141 This driver supports the Silicon Labs 514 programmable clock
123142 generator.
124143
....@@ -127,7 +146,6 @@
127146 depends on I2C
128147 select REGMAP_I2C
129148 help
130
- ---help---
131149 This driver supports the Silicon Labs 544 programmable clock
132150 generator.
133151
....@@ -137,16 +155,21 @@
137155 depends on OF
138156 select REGMAP_I2C
139157 help
140
- ---help---
141158 This driver supports Silicon Labs 570/571/598/599 programmable
142159 clock generators.
160
+
161
+config COMMON_CLK_BM1880
162
+ bool "Clock driver for Bitmain BM1880 SoC"
163
+ depends on ARCH_BITMAIN || COMPILE_TEST
164
+ default ARCH_BITMAIN
165
+ help
166
+ This driver supports the clocks on Bitmain BM1880 SoC.
143167
144168 config COMMON_CLK_CDCE706
145169 tristate "Clock driver for TI CDCE706 clock synthesizer"
146170 depends on I2C
147171 select REGMAP_I2C
148
- select RATIONAL
149
- ---help---
172
+ help
150173 This driver supports TI CDCE706 programmable 3-PLL clock synthesizer.
151174
152175 config COMMON_CLK_CDCE925
....@@ -155,7 +178,6 @@
155178 depends on OF
156179 select REGMAP_I2C
157180 help
158
- ---help---
159181 This driver supports the TI CDCE913/925/937/949 programmable clock
160182 synthesizer. Each chip has different number of PLLs and outputs.
161183 For example, the CDCE925 contains two PLLs with spread-spectrum
....@@ -173,12 +195,24 @@
173195 help
174196 If you say yes here you get support for the CS2000 clock multiplier.
175197
198
+config COMMON_CLK_FSL_SAI
199
+ bool "Clock driver for BCLK of Freescale SAI cores"
200
+ depends on ARCH_LAYERSCAPE || COMPILE_TEST
201
+ help
202
+ This driver supports the Freescale SAI (Synchronous Audio Interface)
203
+ to be used as a generic clock output. Some SoCs have restrictions
204
+ regarding the possible pin multiplexer settings. Eg. on some SoCs
205
+ two SAI interfaces can only be enabled together. If just one is
206
+ needed, the BCLK pin of the second one can be used as general
207
+ purpose clock output. Ideally, it can be used to drive an audio
208
+ codec (sometimes known as MCLK).
209
+
176210 config COMMON_CLK_GEMINI
177211 bool "Clock driver for Cortina Systems Gemini SoC"
178212 depends on ARCH_GEMINI || COMPILE_TEST
179213 select MFD_SYSCON
180214 select RESET_CONTROLLER
181
- ---help---
215
+ help
182216 This driver supports the SoC clocks on the Cortina Systems Gemini
183217 platform, also known as SL3516 or CS3516.
184218
....@@ -188,7 +222,7 @@
188222 default ARCH_ASPEED
189223 select MFD_SYSCON
190224 select RESET_CONTROLLER
191
- ---help---
225
+ help
192226 This driver supports the SoC clocks on the Aspeed BMC platforms.
193227
194228 The G4 and G5 series, including the ast2400 and ast2500, are supported
....@@ -197,7 +231,7 @@
197231 config COMMON_CLK_S2MPS11
198232 tristate "Clock driver for S2MPS1X/S5M8767 MFD"
199233 depends on MFD_SEC_CORE || COMPILE_TEST
200
- ---help---
234
+ help
201235 This driver supports S2MPS11/S2MPS14/S5M8767 crystal oscillator
202236 clock. These multi-function devices have two (S2MPS14) or three
203237 (S2MPS11, S5M8767) fixed-rate oscillators, clocked at 32KHz each.
....@@ -205,7 +239,7 @@
205239 config CLK_TWL6040
206240 tristate "External McPDM functional clock from twl6040"
207241 depends on TWL6040_CORE
208
- ---help---
242
+ help
209243 Enable the external functional clock support on OMAP4+ platforms for
210244 McPDM. McPDM module is using the external bit clock on the McPDM bus
211245 as functional clock.
....@@ -214,48 +248,64 @@
214248 tristate "AXI clkgen driver"
215249 depends on ARCH_ZYNQ || MICROBLAZE || COMPILE_TEST
216250 help
217
- ---help---
218251 Support for the Analog Devices axi-clkgen pcore clock generator for Xilinx
219252 FPGAs. It is commonly used in Analog Devices' reference designs.
220253
221254 config CLK_QORIQ
222255 bool "Clock driver for Freescale QorIQ platforms"
223256 depends on (PPC_E500MC || ARM || ARM64 || COMPILE_TEST) && OF
224
- ---help---
257
+ help
225258 This adds the clock driver support for Freescale QorIQ platforms
226259 using common clock framework.
227260
261
+config CLK_LS1028A_PLLDIG
262
+ tristate "Clock driver for LS1028A Display output"
263
+ depends on ARCH_LAYERSCAPE || COMPILE_TEST
264
+ default ARCH_LAYERSCAPE
265
+ help
266
+ This driver support the Display output interfaces(LCD, DPHY) pixel clocks
267
+ of the QorIQ Layerscape LS1028A, as implemented TSMC CLN28HPM PLL. Not all
268
+ features of the PLL are currently supported by the driver. By default,
269
+ configured bypass mode with this PLL.
270
+
228271 config COMMON_CLK_XGENE
229272 bool "Clock driver for APM XGene SoC"
230
- default y
273
+ default ARCH_XGENE
231274 depends on ARM64 || COMPILE_TEST
232
- ---help---
233
- Sypport for the APM X-Gene SoC reference, PLL, and device clocks.
275
+ help
276
+ Support for the APM X-Gene SoC reference, PLL, and device clocks.
277
+
278
+config COMMON_CLK_LOCHNAGAR
279
+ tristate "Cirrus Logic Lochnagar clock driver"
280
+ depends on MFD_LOCHNAGAR
281
+ help
282
+ This driver supports the clocking features of the Cirrus Logic
283
+ Lochnagar audio development board.
234284
235285 config COMMON_CLK_NXP
236286 def_bool COMMON_CLK && (ARCH_LPC18XX || ARCH_LPC32XX)
237287 select REGMAP_MMIO if ARCH_LPC32XX
238288 select MFD_SYSCON if ARCH_LPC18XX
239
- ---help---
289
+ help
240290 Support for clock providers on NXP platforms.
241291
242292 config COMMON_CLK_PALMAS
243293 tristate "Clock driver for TI Palmas devices"
244294 depends on MFD_PALMAS
245
- ---help---
295
+ help
246296 This driver supports TI Palmas devices 32KHz output KG and KG_AUDIO
247297 using common clock framework.
248298
249299 config COMMON_CLK_PWM
250300 tristate "Clock driver for PWMs used as clock outputs"
251301 depends on PWM
252
- ---help---
302
+ help
253303 Adapter driver so that any PWM output can be (mis)used as clock signal
254304 at 50% duty cycle.
255305
256306 config COMMON_CLK_PXA
257307 def_bool COMMON_CLK && ARCH_PXA
258
- ---help---
308
+ help
259309 Support for the Marvell PXA SoC.
260310
261311 config COMMON_CLK_PIC32
....@@ -265,7 +315,7 @@
265315 bool "Clock driver for the OXNAS SoC Family"
266316 depends on ARCH_OXNAS || COMPILE_TEST
267317 select MFD_SYSCON
268
- ---help---
318
+ help
269319 Support for the OXNAS SoC Family clocks.
270320
271321 config COMMON_CLK_VC5
....@@ -274,32 +324,56 @@
274324 depends on OF
275325 select REGMAP_I2C
276326 help
277
- ---help---
278327 This driver supports the IDT VersaClock 5 and VersaClock 6
279328 programmable clock generators.
280329
281330 config COMMON_CLK_STM32MP157
282331 def_bool COMMON_CLK && MACH_STM32MP157
283332 help
284
- ---help---
285333 Support for stm32mp157 SoC family clocks
286334
287335 config COMMON_CLK_STM32F
288336 def_bool COMMON_CLK && (MACH_STM32F429 || MACH_STM32F469 || MACH_STM32F746)
289337 help
290
- ---help---
291338 Support for stm32f4 and stm32f7 SoC families clocks
292339
293340 config COMMON_CLK_STM32H7
294341 def_bool COMMON_CLK && MACH_STM32H743
295342 help
296
- ---help---
297343 Support for stm32h7 SoC family clocks
298344
345
+config COMMON_CLK_MMP2
346
+ def_bool COMMON_CLK && (MACH_MMP2_DT || MACH_MMP3_DT)
347
+ help
348
+ Support for Marvell MMP2 and MMP3 SoC clocks
349
+
350
+config COMMON_CLK_MMP2_AUDIO
351
+ tristate "Clock driver for MMP2 Audio subsystem"
352
+ depends on COMMON_CLK_MMP2 || COMPILE_TEST
353
+ help
354
+ This driver supports clocks for Audio subsystem on MMP2 SoC.
355
+
356
+config COMMON_CLK_BD718XX
357
+ tristate "Clock driver for 32K clk gates on ROHM PMICs"
358
+ depends on MFD_ROHM_BD718XX || MFD_ROHM_BD70528 || MFD_ROHM_BD71828
359
+ help
360
+ This driver supports ROHM BD71837, ROHM BD71847, ROHM BD71828 and
361
+ ROHM BD70528 PMICs clock gates.
362
+
363
+config COMMON_CLK_FIXED_MMIO
364
+ bool "Clock driver for Memory Mapped Fixed values"
365
+ depends on COMMON_CLK && OF
366
+ help
367
+ Support for Memory Mapped IO Fixed clocks
368
+
299369 source "drivers/clk/actions/Kconfig"
370
+source "drivers/clk/analogbits/Kconfig"
371
+source "drivers/clk/baikal-t1/Kconfig"
300372 source "drivers/clk/bcm/Kconfig"
301373 source "drivers/clk/hisilicon/Kconfig"
302374 source "drivers/clk/imgtec/Kconfig"
375
+source "drivers/clk/imx/Kconfig"
376
+source "drivers/clk/ingenic/Kconfig"
303377 source "drivers/clk/keystone/Kconfig"
304378 source "drivers/clk/mediatek/Kconfig"
305379 source "drivers/clk/meson/Kconfig"
....@@ -308,10 +382,14 @@
308382 source "drivers/clk/renesas/Kconfig"
309383 source "drivers/clk/rockchip/Kconfig"
310384 source "drivers/clk/samsung/Kconfig"
385
+source "drivers/clk/sifive/Kconfig"
311386 source "drivers/clk/sprd/Kconfig"
387
+source "drivers/clk/sunxi/Kconfig"
312388 source "drivers/clk/sunxi-ng/Kconfig"
313389 source "drivers/clk/tegra/Kconfig"
314390 source "drivers/clk/ti/Kconfig"
315391 source "drivers/clk/uniphier/Kconfig"
392
+source "drivers/clk/x86/Kconfig"
393
+source "drivers/clk/zynqmp/Kconfig"
316394
317
-endmenu
395
+endif