1# SPDX-License-Identifier: GPL-2.0 2 3config 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. 8 9config HAVE_CLK_PREPARE 10 bool 11 12config HAVE_LEGACY_CLK # TODO: Remove once all legacy users are migrated 13 bool 14 select HAVE_CLK 15 help 16 Select this option when the clock API in <linux/clk.h> is implemented 17 by platform/architecture code. This method is deprecated. Modern 18 code should select COMMON_CLK instead and not define a custom 19 'struct clk'. 20 21menuconfig COMMON_CLK 22 bool "Common Clock Framework" 23 depends on !HAVE_LEGACY_CLK 24 select HAVE_CLK_PREPARE 25 select HAVE_CLK 26 select SRCU 27 select RATIONAL 28 help 29 The common clock framework is a single definition of struct 30 clk, useful across many platforms, as well as an 31 implementation of the clock API in include/linux/clk.h. 32 Architectures utilizing the common struct clk should select 33 this option. 34 35if COMMON_CLK 36 37config COMMON_CLK_WM831X 38 tristate "Clock driver for WM831x/2x PMICs" 39 depends on MFD_WM831X 40 help 41 Supports the clocking subsystem of the WM831x/2x series of 42 PMICs from Wolfson Microelectronics. 43 44source "drivers/clk/versatile/Kconfig" 45 46config CLK_HSDK 47 bool "PLL Driver for HSDK platform" 48 depends on ARC_SOC_HSDK || COMPILE_TEST 49 depends on HAS_IOMEM 50 help 51 This driver supports the HSDK core, system, ddr, tunnel and hdmi PLLs 52 control. 53 54config LMK04832 55 tristate "Ti LMK04832 JESD204B Compliant Clock Jitter Cleaner" 56 depends on SPI 57 select REGMAP_SPI 58 help 59 Say yes here to build support for Texas Instruments' LMK04832 Ultra 60 Low-Noise JESD204B Compliant Clock Jitter Cleaner With Dual Loop PLLs 61 62config COMMON_CLK_APPLE_NCO 63 tristate "Clock driver for Apple SoC NCOs" 64 depends on ARCH_APPLE || COMPILE_TEST 65 default ARCH_APPLE 66 help 67 This driver supports NCO (Numerically Controlled Oscillator) blocks 68 found on Apple SoCs such as t8103 (M1). The blocks are typically 69 generators of audio clocks. 70 71config COMMON_CLK_MAX77686 72 tristate "Clock driver for Maxim 77620/77686/77802 MFD" 73 depends on MFD_MAX77686 || MFD_MAX77620 || COMPILE_TEST 74 help 75 This driver supports Maxim 77620/77686/77802 crystal oscillator 76 clock. 77 78config COMMON_CLK_MAX9485 79 tristate "Maxim 9485 Programmable Clock Generator" 80 depends on I2C 81 help 82 This driver supports Maxim 9485 Programmable Audio Clock Generator 83 84config COMMON_CLK_RK808 85 tristate "Clock driver for RK805/RK808/RK809/RK817/RK818" 86 depends on MFD_RK808 87 help 88 This driver supports RK805, RK809 and RK817, RK808 and RK818 crystal oscillator clock. 89 These multi-function devices have two fixed-rate oscillators, clocked at 32KHz each. 90 Clkout1 is always on, Clkout2 can off by control register. 91 92config COMMON_CLK_HI655X 93 tristate "Clock driver for Hi655x" if EXPERT 94 depends on (MFD_HI655X_PMIC || COMPILE_TEST) 95 depends on REGMAP 96 default MFD_HI655X_PMIC 97 help 98 This driver supports the hi655x PMIC clock. This 99 multi-function device has one fixed-rate oscillator, clocked 100 at 32KHz. 101 102config COMMON_CLK_SCMI 103 tristate "Clock driver controlled via SCMI interface" 104 depends on ARM_SCMI_PROTOCOL || COMPILE_TEST 105 help 106 This driver provides support for clocks that are controlled 107 by firmware that implements the SCMI interface. 108 109 This driver uses SCMI Message Protocol to interact with the 110 firmware providing all the clock controls. 111 112config COMMON_CLK_SCPI 113 tristate "Clock driver controlled via SCPI interface" 114 depends on ARM_SCPI_PROTOCOL || COMPILE_TEST 115 help 116 This driver provides support for clocks that are controlled 117 by firmware that implements the SCPI interface. 118 119 This driver uses SCPI Message Protocol to interact with the 120 firmware providing all the clock controls. 121 122config COMMON_CLK_SI5341 123 tristate "Clock driver for SiLabs 5341 and 5340 A/B/C/D devices" 124 depends on I2C 125 select REGMAP_I2C 126 help 127 This driver supports Silicon Labs Si5341 and Si5340 programmable clock 128 generators. Not all features of these chips are currently supported 129 by the driver, in particular it only supports XTAL input. The chip can 130 be pre-programmed to support other configurations and features not yet 131 implemented in the driver. 132 133config COMMON_CLK_SI5351 134 tristate "Clock driver for SiLabs 5351A/B/C" 135 depends on I2C 136 select REGMAP_I2C 137 help 138 This driver supports Silicon Labs 5351A/B/C programmable clock 139 generators. 140 141config COMMON_CLK_SI514 142 tristate "Clock driver for SiLabs 514 devices" 143 depends on I2C 144 depends on OF 145 select REGMAP_I2C 146 help 147 This driver supports the Silicon Labs 514 programmable clock 148 generator. 149 150config COMMON_CLK_SI544 151 tristate "Clock driver for SiLabs 544 devices" 152 depends on I2C 153 select REGMAP_I2C 154 help 155 This driver supports the Silicon Labs 544 programmable clock 156 generator. 157 158config COMMON_CLK_SI570 159 tristate "Clock driver for SiLabs 570 and compatible devices" 160 depends on I2C 161 depends on OF 162 select REGMAP_I2C 163 help 164 This driver supports Silicon Labs 570/571/598/599 programmable 165 clock generators. 166 167config COMMON_CLK_BM1880 168 bool "Clock driver for Bitmain BM1880 SoC" 169 depends on ARCH_BITMAIN || COMPILE_TEST 170 default ARCH_BITMAIN 171 help 172 This driver supports the clocks on Bitmain BM1880 SoC. 173 174config COMMON_CLK_CDCE706 175 tristate "Clock driver for TI CDCE706 clock synthesizer" 176 depends on I2C 177 select REGMAP_I2C 178 help 179 This driver supports TI CDCE706 programmable 3-PLL clock synthesizer. 180 181config COMMON_CLK_TPS68470 182 tristate "Clock Driver for TI TPS68470 PMIC" 183 depends on I2C 184 depends on INTEL_SKL_INT3472 || COMPILE_TEST 185 select REGMAP_I2C 186 help 187 This driver supports the clocks provided by the TPS68470 PMIC. 188 189config COMMON_CLK_CDCE925 190 tristate "Clock driver for TI CDCE913/925/937/949 devices" 191 depends on I2C 192 depends on OF 193 select REGMAP_I2C 194 help 195 This driver supports the TI CDCE913/925/937/949 programmable clock 196 synthesizer. Each chip has different number of PLLs and outputs. 197 For example, the CDCE925 contains two PLLs with spread-spectrum 198 clocking support and five output dividers. The driver only supports 199 the following setup, and uses a fixed setting for the output muxes. 200 Y1 is derived from the input clock 201 Y2 and Y3 derive from PLL1 202 Y4 and Y5 derive from PLL2 203 Given a target output frequency, the driver will set the PLL and 204 divider to best approximate the desired output. 205 206config COMMON_CLK_CS2000_CP 207 tristate "Clock driver for CS2000 Fractional-N Clock Synthesizer & Clock Multiplier" 208 depends on I2C 209 select REGMAP_I2C 210 help 211 If you say yes here you get support for the CS2000 clock multiplier. 212 213config COMMON_CLK_FSL_FLEXSPI 214 tristate "Clock driver for FlexSPI on Layerscape SoCs" 215 depends on ARCH_LAYERSCAPE || COMPILE_TEST 216 default ARCH_LAYERSCAPE && SPI_NXP_FLEXSPI 217 help 218 On Layerscape SoCs there is a special clock for the FlexSPI 219 interface. 220 221config COMMON_CLK_FSL_SAI 222 bool "Clock driver for BCLK of Freescale SAI cores" 223 depends on ARCH_LAYERSCAPE || COMPILE_TEST 224 help 225 This driver supports the Freescale SAI (Synchronous Audio Interface) 226 to be used as a generic clock output. Some SoCs have restrictions 227 regarding the possible pin multiplexer settings. Eg. on some SoCs 228 two SAI interfaces can only be enabled together. If just one is 229 needed, the BCLK pin of the second one can be used as general 230 purpose clock output. Ideally, it can be used to drive an audio 231 codec (sometimes known as MCLK). 232 233config COMMON_CLK_GEMINI 234 bool "Clock driver for Cortina Systems Gemini SoC" 235 depends on ARCH_GEMINI || COMPILE_TEST 236 select MFD_SYSCON 237 select RESET_CONTROLLER 238 help 239 This driver supports the SoC clocks on the Cortina Systems Gemini 240 platform, also known as SL3516 or CS3516. 241 242config COMMON_CLK_LAN966X 243 bool "Generic Clock Controller driver for LAN966X SoC" 244 depends on HAS_IOMEM 245 depends on OF 246 depends on SOC_LAN966 || COMPILE_TEST 247 help 248 This driver provides support for Generic Clock Controller(GCK) on 249 LAN966X SoC. GCK generates and supplies clock to various peripherals 250 within the SoC. 251 252config COMMON_CLK_ASPEED 253 bool "Clock driver for Aspeed BMC SoCs" 254 depends on ARCH_ASPEED || COMPILE_TEST 255 default ARCH_ASPEED 256 select MFD_SYSCON 257 select RESET_CONTROLLER 258 help 259 This driver supports the SoC clocks on the Aspeed BMC platforms. 260 261 The G4 and G5 series, including the ast2400 and ast2500, are supported 262 by this driver. 263 264config COMMON_CLK_S2MPS11 265 tristate "Clock driver for S2MPS1X/S5M8767 MFD" 266 depends on MFD_SEC_CORE || COMPILE_TEST 267 help 268 This driver supports S2MPS11/S2MPS14/S5M8767 crystal oscillator 269 clock. These multi-function devices have two (S2MPS14) or three 270 (S2MPS11, S5M8767) fixed-rate oscillators, clocked at 32KHz each. 271 272config CLK_TWL6040 273 tristate "External McPDM functional clock from twl6040" 274 depends on TWL6040_CORE 275 help 276 Enable the external functional clock support on OMAP4+ platforms for 277 McPDM. McPDM module is using the external bit clock on the McPDM bus 278 as functional clock. 279 280config COMMON_CLK_AXI_CLKGEN 281 tristate "AXI clkgen driver" 282 depends on HAS_IOMEM || COMPILE_TEST 283 depends on OF 284 help 285 Support for the Analog Devices axi-clkgen pcore clock generator for Xilinx 286 FPGAs. It is commonly used in Analog Devices' reference designs. 287 288config CLK_QORIQ 289 bool "Clock driver for Freescale QorIQ platforms" 290 depends on OF 291 depends on PPC_E500MC || SOC_LS1021A || ARCH_LAYERSCAPE || COMPILE_TEST 292 help 293 This adds the clock driver support for Freescale QorIQ platforms 294 using common clock framework. 295 296config CLK_LS1028A_PLLDIG 297 tristate "Clock driver for LS1028A Display output" 298 depends on ARCH_LAYERSCAPE || COMPILE_TEST 299 default ARCH_LAYERSCAPE 300 help 301 This driver support the Display output interfaces(LCD, DPHY) pixel clocks 302 of the QorIQ Layerscape LS1028A, as implemented TSMC CLN28HPM PLL. Not all 303 features of the PLL are currently supported by the driver. By default, 304 configured bypass mode with this PLL. 305 306config COMMON_CLK_XGENE 307 bool "Clock driver for APM XGene SoC" 308 default ARCH_XGENE 309 depends on ARM64 || COMPILE_TEST 310 help 311 Support for the APM X-Gene SoC reference, PLL, and device clocks. 312 313config COMMON_CLK_LOCHNAGAR 314 tristate "Cirrus Logic Lochnagar clock driver" 315 depends on MFD_LOCHNAGAR 316 help 317 This driver supports the clocking features of the Cirrus Logic 318 Lochnagar audio development board. 319 320config COMMON_CLK_NXP 321 def_bool COMMON_CLK && (ARCH_LPC18XX || ARCH_LPC32XX) 322 select REGMAP_MMIO if ARCH_LPC32XX 323 select MFD_SYSCON if ARCH_LPC18XX 324 help 325 Support for clock providers on NXP platforms. 326 327config COMMON_CLK_PALMAS 328 tristate "Clock driver for TI Palmas devices" 329 depends on MFD_PALMAS 330 help 331 This driver supports TI Palmas devices 32KHz output KG and KG_AUDIO 332 using common clock framework. 333 334config COMMON_CLK_PWM 335 tristate "Clock driver for PWMs used as clock outputs" 336 depends on PWM 337 help 338 Adapter driver so that any PWM output can be (mis)used as clock signal 339 at 50% duty cycle. 340 341config COMMON_CLK_PXA 342 def_bool COMMON_CLK && ARCH_PXA 343 help 344 Support for the Marvell PXA SoC. 345 346config COMMON_CLK_OXNAS 347 bool "Clock driver for the OXNAS SoC Family" 348 depends on ARCH_OXNAS || COMPILE_TEST 349 select MFD_SYSCON 350 help 351 Support for the OXNAS SoC Family clocks. 352 353config COMMON_CLK_RS9_PCIE 354 tristate "Clock driver for Renesas 9-series PCIe clock generators" 355 depends on I2C 356 depends on OF 357 select REGMAP_I2C 358 help 359 This driver supports the Renesas 9-series PCIe clock generator 360 models 9FGV/9DBV/9DMV/9FGL/9DML/9QXL/9SQ. 361 362config COMMON_CLK_VC5 363 tristate "Clock driver for IDT VersaClock 5,6 devices" 364 depends on I2C 365 depends on OF 366 select REGMAP_I2C 367 help 368 This driver supports the IDT VersaClock 5 and VersaClock 6 369 programmable clock generators. 370 371config COMMON_CLK_STM32MP157 372 def_bool COMMON_CLK && MACH_STM32MP157 373 help 374 Support for stm32mp157 SoC family clocks 375 376config COMMON_CLK_STM32F 377 def_bool COMMON_CLK && (MACH_STM32F429 || MACH_STM32F469 || MACH_STM32F746) 378 help 379 Support for stm32f4 and stm32f7 SoC families clocks 380 381config COMMON_CLK_STM32H7 382 def_bool COMMON_CLK && MACH_STM32H743 383 help 384 Support for stm32h7 SoC family clocks 385 386config COMMON_CLK_MMP2 387 def_bool COMMON_CLK && (MACH_MMP2_DT || MACH_MMP3_DT) 388 help 389 Support for Marvell MMP2 and MMP3 SoC clocks 390 391config COMMON_CLK_MMP2_AUDIO 392 tristate "Clock driver for MMP2 Audio subsystem" 393 depends on COMMON_CLK_MMP2 || COMPILE_TEST 394 help 395 This driver supports clocks for Audio subsystem on MMP2 SoC. 396 397config COMMON_CLK_BD718XX 398 tristate "Clock driver for 32K clk gates on ROHM PMICs" 399 depends on MFD_ROHM_BD718XX || MFD_ROHM_BD71828 400 help 401 This driver supports ROHM BD71837, BD71847, BD71850, BD71815 402 and BD71828 PMICs clock gates. 403 404config COMMON_CLK_FIXED_MMIO 405 bool "Clock driver for Memory Mapped Fixed values" 406 depends on COMMON_CLK && OF 407 help 408 Support for Memory Mapped IO Fixed clocks 409 410config COMMON_CLK_K210 411 bool "Clock driver for the Canaan Kendryte K210 SoC" 412 depends on OF && RISCV && SOC_CANAAN 413 default SOC_CANAAN 414 help 415 Support for the Canaan Kendryte K210 RISC-V SoC clocks. 416 417source "drivers/clk/actions/Kconfig" 418source "drivers/clk/analogbits/Kconfig" 419source "drivers/clk/baikal-t1/Kconfig" 420source "drivers/clk/bcm/Kconfig" 421source "drivers/clk/hisilicon/Kconfig" 422source "drivers/clk/imgtec/Kconfig" 423source "drivers/clk/imx/Kconfig" 424source "drivers/clk/ingenic/Kconfig" 425source "drivers/clk/keystone/Kconfig" 426source "drivers/clk/mediatek/Kconfig" 427source "drivers/clk/meson/Kconfig" 428source "drivers/clk/mstar/Kconfig" 429source "drivers/clk/microchip/Kconfig" 430source "drivers/clk/mvebu/Kconfig" 431source "drivers/clk/pistachio/Kconfig" 432source "drivers/clk/qcom/Kconfig" 433source "drivers/clk/ralink/Kconfig" 434source "drivers/clk/renesas/Kconfig" 435source "drivers/clk/rockchip/Kconfig" 436source "drivers/clk/samsung/Kconfig" 437source "drivers/clk/sifive/Kconfig" 438source "drivers/clk/socfpga/Kconfig" 439source "drivers/clk/sprd/Kconfig" 440source "drivers/clk/starfive/Kconfig" 441source "drivers/clk/sunxi/Kconfig" 442source "drivers/clk/sunxi-ng/Kconfig" 443source "drivers/clk/tegra/Kconfig" 444source "drivers/clk/ti/Kconfig" 445source "drivers/clk/uniphier/Kconfig" 446source "drivers/clk/visconti/Kconfig" 447source "drivers/clk/x86/Kconfig" 448source "drivers/clk/xilinx/Kconfig" 449source "drivers/clk/zynqmp/Kconfig" 450 451# Kunit test cases 452config CLK_KUNIT_TEST 453 tristate "Basic Clock Framework Kunit Tests" if !KUNIT_ALL_TESTS 454 depends on KUNIT 455 default KUNIT_ALL_TESTS 456 help 457 Kunit tests for the common clock framework. 458 459config CLK_GATE_KUNIT_TEST 460 tristate "Basic gate type Kunit test" if !KUNIT_ALL_TESTS 461 depends on KUNIT 462 default KUNIT_ALL_TESTS 463 help 464 Kunit test for the basic clk gate type. 465 466endif 467