Merge tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux
[platform/kernel/linux-rpi.git] / drivers / clk / Kconfig
1 # SPDX-License-Identifier: GPL-2.0
2
3 config CLKDEV_LOOKUP
4         bool
5         select HAVE_CLK
6
7 config HAVE_CLK_PREPARE
8         bool
9
10 config COMMON_CLK
11         bool
12         select HAVE_CLK_PREPARE
13         select CLKDEV_LOOKUP
14         select SRCU
15         select RATIONAL
16         ---help---
17           The common clock framework is a single definition of struct
18           clk, useful across many platforms, as well as an
19           implementation of the clock API in include/linux/clk.h.
20           Architectures utilizing the common struct clk should select
21           this option.
22
23 menu "Common Clock Framework"
24         depends on COMMON_CLK
25
26 config COMMON_CLK_WM831X
27         tristate "Clock driver for WM831x/2x PMICs"
28         depends on MFD_WM831X
29         ---help---
30           Supports the clocking subsystem of the WM831x/2x series of
31           PMICs from Wolfson Microelectronics.
32
33 source "drivers/clk/versatile/Kconfig"
34
35 config CLK_HSDK
36         bool "PLL Driver for HSDK platform"
37         depends on OF || COMPILE_TEST
38         ---help---
39           This driver supports the HSDK core, system, ddr, tunnel and hdmi PLLs
40           control.
41
42 config COMMON_CLK_MAX77686
43         tristate "Clock driver for Maxim 77620/77686/77802 MFD"
44         depends on MFD_MAX77686 || MFD_MAX77620 || COMPILE_TEST
45         ---help---
46           This driver supports Maxim 77620/77686/77802 crystal oscillator
47           clock.
48
49 config COMMON_CLK_MAX9485
50         tristate "Maxim 9485 Programmable Clock Generator"
51         depends on I2C
52         help
53           This driver supports Maxim 9485 Programmable Audio Clock Generator
54
55 config COMMON_CLK_RK808
56         tristate "Clock driver for RK805/RK808/RK809/RK817/RK818"
57         depends on MFD_RK808
58         ---help---
59           This driver supports RK805, RK809 and RK817, RK808 and RK818 crystal oscillator clock.
60           These multi-function devices have two fixed-rate oscillators, clocked at 32KHz each.
61           Clkout1 is always on, Clkout2 can off by control register.
62
63 config COMMON_CLK_HI655X
64         tristate "Clock driver for Hi655x" if EXPERT
65         depends on (MFD_HI655X_PMIC || COMPILE_TEST)
66         depends on REGMAP
67         default MFD_HI655X_PMIC
68         ---help---
69           This driver supports the hi655x PMIC clock. This
70           multi-function device has one fixed-rate oscillator, clocked
71           at 32KHz.
72
73 config COMMON_CLK_SCMI
74         tristate "Clock driver controlled via SCMI interface"
75         depends on ARM_SCMI_PROTOCOL || COMPILE_TEST
76           ---help---
77           This driver provides support for clocks that are controlled
78           by firmware that implements the SCMI interface.
79
80           This driver uses SCMI Message Protocol to interact with the
81           firmware providing all the clock controls.
82
83 config COMMON_CLK_SCPI
84         tristate "Clock driver controlled via SCPI interface"
85         depends on ARM_SCPI_PROTOCOL || COMPILE_TEST
86           ---help---
87           This driver provides support for clocks that are controlled
88           by firmware that implements the SCPI interface.
89
90           This driver uses SCPI Message Protocol to interact with the
91           firmware providing all the clock controls.
92
93 config COMMON_CLK_SI5341
94         tristate "Clock driver for SiLabs 5341 and 5340 A/B/C/D devices"
95         depends on I2C
96         select REGMAP_I2C
97         help
98           This driver supports Silicon Labs Si5341 and Si5340 programmable clock
99           generators. Not all features of these chips are currently supported
100           by the driver, in particular it only supports XTAL input. The chip can
101           be pre-programmed to support other configurations and features not yet
102           implemented in the driver.
103
104 config COMMON_CLK_SI5351
105         tristate "Clock driver for SiLabs 5351A/B/C"
106         depends on I2C
107         select REGMAP_I2C
108         select RATIONAL
109         ---help---
110           This driver supports Silicon Labs 5351A/B/C programmable clock
111           generators.
112
113 config COMMON_CLK_SI514
114         tristate "Clock driver for SiLabs 514 devices"
115         depends on I2C
116         depends on OF
117         select REGMAP_I2C
118         help
119         ---help---
120           This driver supports the Silicon Labs 514 programmable clock
121           generator.
122
123 config COMMON_CLK_SI544
124         tristate "Clock driver for SiLabs 544 devices"
125         depends on I2C
126         select REGMAP_I2C
127         help
128         ---help---
129           This driver supports the Silicon Labs 544 programmable clock
130           generator.
131
132 config COMMON_CLK_SI570
133         tristate "Clock driver for SiLabs 570 and compatible devices"
134         depends on I2C
135         depends on OF
136         select REGMAP_I2C
137         help
138         ---help---
139           This driver supports Silicon Labs 570/571/598/599 programmable
140           clock generators.
141
142 config COMMON_CLK_CDCE706
143         tristate "Clock driver for TI CDCE706 clock synthesizer"
144         depends on I2C
145         select REGMAP_I2C
146         select RATIONAL
147         ---help---
148           This driver supports TI CDCE706 programmable 3-PLL clock synthesizer.
149
150 config COMMON_CLK_CDCE925
151         tristate "Clock driver for TI CDCE913/925/937/949 devices"
152         depends on I2C
153         depends on OF
154         select REGMAP_I2C
155         help
156         ---help---
157           This driver supports the TI CDCE913/925/937/949 programmable clock
158           synthesizer. Each chip has different number of PLLs and outputs.
159           For example, the CDCE925 contains two PLLs with spread-spectrum
160           clocking support and five output dividers. The driver only supports
161           the following setup, and uses a fixed setting for the output muxes.
162           Y1 is derived from the input clock
163           Y2 and Y3 derive from PLL1
164           Y4 and Y5 derive from PLL2
165           Given a target output frequency, the driver will set the PLL and
166           divider to best approximate the desired output.
167
168 config COMMON_CLK_CS2000_CP
169         tristate "Clock driver for CS2000 Fractional-N Clock Synthesizer & Clock Multiplier"
170         depends on I2C
171         help
172           If you say yes here you get support for the CS2000 clock multiplier.
173
174 config COMMON_CLK_GEMINI
175         bool "Clock driver for Cortina Systems Gemini SoC"
176         depends on ARCH_GEMINI || COMPILE_TEST
177         select MFD_SYSCON
178         select RESET_CONTROLLER
179         ---help---
180           This driver supports the SoC clocks on the Cortina Systems Gemini
181           platform, also known as SL3516 or CS3516.
182
183 config COMMON_CLK_ASPEED
184         bool "Clock driver for Aspeed BMC SoCs"
185         depends on ARCH_ASPEED || COMPILE_TEST
186         default ARCH_ASPEED
187         select MFD_SYSCON
188         select RESET_CONTROLLER
189         ---help---
190           This driver supports the SoC clocks on the Aspeed BMC platforms.
191
192           The G4 and G5 series, including the ast2400 and ast2500, are supported
193           by this driver.
194
195 config COMMON_CLK_S2MPS11
196         tristate "Clock driver for S2MPS1X/S5M8767 MFD"
197         depends on MFD_SEC_CORE || COMPILE_TEST
198         ---help---
199           This driver supports S2MPS11/S2MPS14/S5M8767 crystal oscillator
200           clock. These multi-function devices have two (S2MPS14) or three
201           (S2MPS11, S5M8767) fixed-rate oscillators, clocked at 32KHz each.
202
203 config CLK_TWL6040
204         tristate "External McPDM functional clock from twl6040"
205         depends on TWL6040_CORE
206         ---help---
207           Enable the external functional clock support on OMAP4+ platforms for
208           McPDM. McPDM module is using the external bit clock on the McPDM bus
209           as functional clock.
210
211 config COMMON_CLK_AXI_CLKGEN
212         tristate "AXI clkgen driver"
213         depends on ARCH_ZYNQ || MICROBLAZE || COMPILE_TEST
214         help
215         ---help---
216           Support for the Analog Devices axi-clkgen pcore clock generator for Xilinx
217           FPGAs. It is commonly used in Analog Devices' reference designs.
218
219 config CLK_QORIQ
220         bool "Clock driver for Freescale QorIQ platforms"
221         depends on (PPC_E500MC || ARM || ARM64 || COMPILE_TEST) && OF
222         ---help---
223           This adds the clock driver support for Freescale QorIQ platforms
224           using common clock framework.
225
226 config COMMON_CLK_XGENE
227         bool "Clock driver for APM XGene SoC"
228         default ARCH_XGENE
229         depends on ARM64 || COMPILE_TEST
230         ---help---
231           Sypport for the APM X-Gene SoC reference, PLL, and device clocks.
232
233 config COMMON_CLK_LOCHNAGAR
234         tristate "Cirrus Logic Lochnagar clock driver"
235         depends on MFD_LOCHNAGAR
236         help
237           This driver supports the clocking features of the Cirrus Logic
238           Lochnagar audio development board.
239
240 config COMMON_CLK_NXP
241         def_bool COMMON_CLK && (ARCH_LPC18XX || ARCH_LPC32XX)
242         select REGMAP_MMIO if ARCH_LPC32XX
243         select MFD_SYSCON if ARCH_LPC18XX
244         ---help---
245           Support for clock providers on NXP platforms.
246
247 config COMMON_CLK_PALMAS
248         tristate "Clock driver for TI Palmas devices"
249         depends on MFD_PALMAS
250         ---help---
251           This driver supports TI Palmas devices 32KHz output KG and KG_AUDIO
252           using common clock framework.
253
254 config COMMON_CLK_PWM
255         tristate "Clock driver for PWMs used as clock outputs"
256         depends on PWM
257         ---help---
258           Adapter driver so that any PWM output can be (mis)used as clock signal
259           at 50% duty cycle.
260
261 config COMMON_CLK_PXA
262         def_bool COMMON_CLK && ARCH_PXA
263         ---help---
264           Support for the Marvell PXA SoC.
265
266 config COMMON_CLK_PIC32
267         def_bool COMMON_CLK && MACH_PIC32
268
269 config COMMON_CLK_OXNAS
270         bool "Clock driver for the OXNAS SoC Family"
271         depends on ARCH_OXNAS || COMPILE_TEST
272         select MFD_SYSCON
273         ---help---
274           Support for the OXNAS SoC Family clocks.
275
276 config COMMON_CLK_VC5
277         tristate "Clock driver for IDT VersaClock 5,6 devices"
278         depends on I2C
279         depends on OF
280         select REGMAP_I2C
281         help
282         ---help---
283           This driver supports the IDT VersaClock 5 and VersaClock 6
284           programmable clock generators.
285
286 config COMMON_CLK_STM32MP157
287         def_bool COMMON_CLK && MACH_STM32MP157
288         help
289         ---help---
290           Support for stm32mp157 SoC family clocks
291
292 config COMMON_CLK_STM32F
293         def_bool COMMON_CLK && (MACH_STM32F429 || MACH_STM32F469 || MACH_STM32F746)
294         help
295         ---help---
296           Support for stm32f4 and stm32f7 SoC families clocks
297
298 config COMMON_CLK_STM32H7
299         def_bool COMMON_CLK && MACH_STM32H743
300         help
301         ---help---
302           Support for stm32h7 SoC family clocks
303
304 config COMMON_CLK_BD718XX
305         tristate "Clock driver for ROHM BD718x7 PMIC"
306         depends on MFD_ROHM_BD718XX || MFD_ROHM_BD70528
307         help
308           This driver supports ROHM BD71837, ROHM BD71847 and
309           ROHM BD70528 PMICs clock gates.
310
311 config COMMON_CLK_FIXED_MMIO
312         bool "Clock driver for Memory Mapped Fixed values"
313         depends on COMMON_CLK && OF
314         help
315           Support for Memory Mapped IO Fixed clocks
316
317 source "drivers/clk/actions/Kconfig"
318 source "drivers/clk/analogbits/Kconfig"
319 source "drivers/clk/bcm/Kconfig"
320 source "drivers/clk/hisilicon/Kconfig"
321 source "drivers/clk/imgtec/Kconfig"
322 source "drivers/clk/imx/Kconfig"
323 source "drivers/clk/ingenic/Kconfig"
324 source "drivers/clk/keystone/Kconfig"
325 source "drivers/clk/mediatek/Kconfig"
326 source "drivers/clk/meson/Kconfig"
327 source "drivers/clk/mvebu/Kconfig"
328 source "drivers/clk/qcom/Kconfig"
329 source "drivers/clk/renesas/Kconfig"
330 source "drivers/clk/samsung/Kconfig"
331 source "drivers/clk/sifive/Kconfig"
332 source "drivers/clk/sprd/Kconfig"
333 source "drivers/clk/sunxi/Kconfig"
334 source "drivers/clk/sunxi-ng/Kconfig"
335 source "drivers/clk/tegra/Kconfig"
336 source "drivers/clk/ti/Kconfig"
337 source "drivers/clk/uniphier/Kconfig"
338 source "drivers/clk/zynqmp/Kconfig"
339
340 endmenu