Back to home page

OSCL-LXR

 
 

    


0001 # SPDX-License-Identifier: GPL-2.0
0002 
0003 config HAVE_CLK
0004         bool
0005         help
0006           The <linux/clk.h> calls support software clock gating and
0007           thus are a key power management tool on many systems.
0008 
0009 config HAVE_CLK_PREPARE
0010         bool
0011 
0012 config HAVE_LEGACY_CLK # TODO: Remove once all legacy users are migrated
0013         bool
0014         select HAVE_CLK
0015         help
0016           Select this option when the clock API in <linux/clk.h> is implemented
0017           by platform/architecture code. This method is deprecated. Modern
0018           code should select COMMON_CLK instead and not define a custom
0019           'struct clk'.
0020 
0021 menuconfig COMMON_CLK
0022         bool "Common Clock Framework"
0023         depends on !HAVE_LEGACY_CLK
0024         select HAVE_CLK_PREPARE
0025         select HAVE_CLK
0026         select SRCU
0027         select RATIONAL
0028         help
0029           The common clock framework is a single definition of struct
0030           clk, useful across many platforms, as well as an
0031           implementation of the clock API in include/linux/clk.h.
0032           Architectures utilizing the common struct clk should select
0033           this option.
0034 
0035 if COMMON_CLK
0036 
0037 config COMMON_CLK_WM831X
0038         tristate "Clock driver for WM831x/2x PMICs"
0039         depends on MFD_WM831X
0040         help
0041           Supports the clocking subsystem of the WM831x/2x series of
0042           PMICs from Wolfson Microelectronics.
0043 
0044 source "drivers/clk/versatile/Kconfig"
0045 
0046 config CLK_HSDK
0047         bool "PLL Driver for HSDK platform"
0048         depends on ARC_SOC_HSDK || COMPILE_TEST
0049         depends on HAS_IOMEM
0050         help
0051           This driver supports the HSDK core, system, ddr, tunnel and hdmi PLLs
0052           control.
0053 
0054 config LMK04832
0055         tristate "Ti LMK04832 JESD204B Compliant Clock Jitter Cleaner"
0056         depends on SPI
0057         select REGMAP_SPI
0058         help
0059           Say yes here to build support for Texas Instruments' LMK04832 Ultra
0060           Low-Noise JESD204B Compliant Clock Jitter Cleaner With Dual Loop PLLs
0061 
0062 config COMMON_CLK_APPLE_NCO
0063         tristate "Clock driver for Apple SoC NCOs"
0064         depends on ARCH_APPLE || COMPILE_TEST
0065         default ARCH_APPLE
0066         help
0067           This driver supports NCO (Numerically Controlled Oscillator) blocks
0068           found on Apple SoCs such as t8103 (M1). The blocks are typically
0069           generators of audio clocks.
0070 
0071 config COMMON_CLK_MAX77686
0072         tristate "Clock driver for Maxim 77620/77686/77802 MFD"
0073         depends on MFD_MAX77686 || MFD_MAX77620 || COMPILE_TEST
0074         help
0075           This driver supports Maxim 77620/77686/77802 crystal oscillator
0076           clock.
0077 
0078 config COMMON_CLK_MAX9485
0079         tristate "Maxim 9485 Programmable Clock Generator"
0080         depends on I2C
0081         help
0082           This driver supports Maxim 9485 Programmable Audio Clock Generator
0083 
0084 config COMMON_CLK_RK808
0085         tristate "Clock driver for RK805/RK808/RK809/RK817/RK818"
0086         depends on MFD_RK808
0087         help
0088           This driver supports RK805, RK809 and RK817, RK808 and RK818 crystal oscillator clock.
0089           These multi-function devices have two fixed-rate oscillators, clocked at 32KHz each.
0090           Clkout1 is always on, Clkout2 can off by control register.
0091 
0092 config COMMON_CLK_HI655X
0093         tristate "Clock driver for Hi655x" if EXPERT
0094         depends on (MFD_HI655X_PMIC || COMPILE_TEST)
0095         depends on REGMAP
0096         default MFD_HI655X_PMIC
0097         help
0098           This driver supports the hi655x PMIC clock. This
0099           multi-function device has one fixed-rate oscillator, clocked
0100           at 32KHz.
0101 
0102 config COMMON_CLK_SCMI
0103         tristate "Clock driver controlled via SCMI interface"
0104         depends on ARM_SCMI_PROTOCOL || COMPILE_TEST
0105         help
0106           This driver provides support for clocks that are controlled
0107           by firmware that implements the SCMI interface.
0108 
0109           This driver uses SCMI Message Protocol to interact with the
0110           firmware providing all the clock controls.
0111 
0112 config COMMON_CLK_SCPI
0113         tristate "Clock driver controlled via SCPI interface"
0114         depends on ARM_SCPI_PROTOCOL || COMPILE_TEST
0115         help
0116           This driver provides support for clocks that are controlled
0117           by firmware that implements the SCPI interface.
0118 
0119           This driver uses SCPI Message Protocol to interact with the
0120           firmware providing all the clock controls.
0121 
0122 config COMMON_CLK_SI5341
0123         tristate "Clock driver for SiLabs 5341 and 5340 A/B/C/D devices"
0124         depends on I2C
0125         select REGMAP_I2C
0126         help
0127           This driver supports Silicon Labs Si5341 and Si5340 programmable clock
0128           generators. Not all features of these chips are currently supported
0129           by the driver, in particular it only supports XTAL input. The chip can
0130           be pre-programmed to support other configurations and features not yet
0131           implemented in the driver.
0132 
0133 config COMMON_CLK_SI5351
0134         tristate "Clock driver for SiLabs 5351A/B/C"
0135         depends on I2C
0136         select REGMAP_I2C
0137         help
0138           This driver supports Silicon Labs 5351A/B/C programmable clock
0139           generators.
0140 
0141 config COMMON_CLK_SI514
0142         tristate "Clock driver for SiLabs 514 devices"
0143         depends on I2C
0144         depends on OF
0145         select REGMAP_I2C
0146         help
0147           This driver supports the Silicon Labs 514 programmable clock
0148           generator.
0149 
0150 config COMMON_CLK_SI544
0151         tristate "Clock driver for SiLabs 544 devices"
0152         depends on I2C
0153         select REGMAP_I2C
0154         help
0155           This driver supports the Silicon Labs 544 programmable clock
0156           generator.
0157 
0158 config COMMON_CLK_SI570
0159         tristate "Clock driver for SiLabs 570 and compatible devices"
0160         depends on I2C
0161         depends on OF
0162         select REGMAP_I2C
0163         help
0164           This driver supports Silicon Labs 570/571/598/599 programmable
0165           clock generators.
0166 
0167 config COMMON_CLK_BM1880
0168         bool "Clock driver for Bitmain BM1880 SoC"
0169         depends on ARCH_BITMAIN || COMPILE_TEST
0170         default ARCH_BITMAIN
0171         help
0172           This driver supports the clocks on Bitmain BM1880 SoC.
0173 
0174 config COMMON_CLK_CDCE706
0175         tristate "Clock driver for TI CDCE706 clock synthesizer"
0176         depends on I2C
0177         select REGMAP_I2C
0178         help
0179           This driver supports TI CDCE706 programmable 3-PLL clock synthesizer.
0180 
0181 config COMMON_CLK_TPS68470
0182         tristate "Clock Driver for TI TPS68470 PMIC"
0183         depends on I2C
0184         depends on INTEL_SKL_INT3472 || COMPILE_TEST
0185         select REGMAP_I2C
0186         help
0187           This driver supports the clocks provided by the TPS68470 PMIC.
0188 
0189 config COMMON_CLK_CDCE925
0190         tristate "Clock driver for TI CDCE913/925/937/949 devices"
0191         depends on I2C
0192         depends on OF
0193         select REGMAP_I2C
0194         help
0195           This driver supports the TI CDCE913/925/937/949 programmable clock
0196           synthesizer. Each chip has different number of PLLs and outputs.
0197           For example, the CDCE925 contains two PLLs with spread-spectrum
0198           clocking support and five output dividers. The driver only supports
0199           the following setup, and uses a fixed setting for the output muxes.
0200           Y1 is derived from the input clock
0201           Y2 and Y3 derive from PLL1
0202           Y4 and Y5 derive from PLL2
0203           Given a target output frequency, the driver will set the PLL and
0204           divider to best approximate the desired output.
0205 
0206 config COMMON_CLK_CS2000_CP
0207         tristate "Clock driver for CS2000 Fractional-N Clock Synthesizer & Clock Multiplier"
0208         depends on I2C
0209         select REGMAP_I2C
0210         help
0211           If you say yes here you get support for the CS2000 clock multiplier.
0212 
0213 config COMMON_CLK_EN7523
0214         bool "Clock driver for Airoha EN7523 SoC system clocks"
0215         depends on OF
0216         depends on ARCH_AIROHA || COMPILE_TEST
0217         default ARCH_AIROHA
0218         help
0219           This driver provides the fixed clocks and gates present on Airoha
0220           ARM silicon.
0221 
0222 config COMMON_CLK_FSL_FLEXSPI
0223         tristate "Clock driver for FlexSPI on Layerscape SoCs"
0224         depends on ARCH_LAYERSCAPE || COMPILE_TEST
0225         default ARCH_LAYERSCAPE && SPI_NXP_FLEXSPI
0226         help
0227           On Layerscape SoCs there is a special clock for the FlexSPI
0228           interface.
0229 
0230 config COMMON_CLK_FSL_SAI
0231         bool "Clock driver for BCLK of Freescale SAI cores"
0232         depends on ARCH_LAYERSCAPE || COMPILE_TEST
0233         help
0234           This driver supports the Freescale SAI (Synchronous Audio Interface)
0235           to be used as a generic clock output. Some SoCs have restrictions
0236           regarding the possible pin multiplexer settings. Eg. on some SoCs
0237           two SAI interfaces can only be enabled together. If just one is
0238           needed, the BCLK pin of the second one can be used as general
0239           purpose clock output. Ideally, it can be used to drive an audio
0240           codec (sometimes known as MCLK).
0241 
0242 config COMMON_CLK_GEMINI
0243         bool "Clock driver for Cortina Systems Gemini SoC"
0244         depends on ARCH_GEMINI || COMPILE_TEST
0245         select MFD_SYSCON
0246         select RESET_CONTROLLER
0247         help
0248           This driver supports the SoC clocks on the Cortina Systems Gemini
0249           platform, also known as SL3516 or CS3516.
0250 
0251 config COMMON_CLK_LAN966X
0252         bool "Generic Clock Controller driver for LAN966X SoC"
0253         depends on HAS_IOMEM
0254         depends on OF
0255         depends on SOC_LAN966 || COMPILE_TEST
0256         help
0257           This driver provides support for Generic Clock Controller(GCK) on
0258           LAN966X SoC. GCK generates and supplies clock to various peripherals
0259           within the SoC.
0260 
0261 config COMMON_CLK_ASPEED
0262         bool "Clock driver for Aspeed BMC SoCs"
0263         depends on ARCH_ASPEED || COMPILE_TEST
0264         default ARCH_ASPEED
0265         select MFD_SYSCON
0266         select RESET_CONTROLLER
0267         help
0268           This driver supports the SoC clocks on the Aspeed BMC platforms.
0269 
0270           The G4 and G5 series, including the ast2400 and ast2500, are supported
0271           by this driver.
0272 
0273 config COMMON_CLK_S2MPS11
0274         tristate "Clock driver for S2MPS1X/S5M8767 MFD"
0275         depends on MFD_SEC_CORE || COMPILE_TEST
0276         help
0277           This driver supports S2MPS11/S2MPS14/S5M8767 crystal oscillator
0278           clock. These multi-function devices have two (S2MPS14) or three
0279           (S2MPS11, S5M8767) fixed-rate oscillators, clocked at 32KHz each.
0280 
0281 config CLK_TWL6040
0282         tristate "External McPDM functional clock from twl6040"
0283         depends on TWL6040_CORE
0284         help
0285           Enable the external functional clock support on OMAP4+ platforms for
0286           McPDM. McPDM module is using the external bit clock on the McPDM bus
0287           as functional clock.
0288 
0289 config COMMON_CLK_AXI_CLKGEN
0290         tristate "AXI clkgen driver"
0291         depends on HAS_IOMEM || COMPILE_TEST
0292         depends on OF
0293         help
0294           Support for the Analog Devices axi-clkgen pcore clock generator for Xilinx
0295           FPGAs. It is commonly used in Analog Devices' reference designs.
0296 
0297 config CLK_QORIQ
0298         bool "Clock driver for Freescale QorIQ platforms"
0299         depends on OF
0300         depends on PPC_E500MC || SOC_LS1021A || ARCH_LAYERSCAPE || COMPILE_TEST
0301         help
0302           This adds the clock driver support for Freescale QorIQ platforms
0303           using common clock framework.
0304 
0305 config CLK_LS1028A_PLLDIG
0306         tristate "Clock driver for LS1028A Display output"
0307         depends on ARCH_LAYERSCAPE || COMPILE_TEST
0308         default ARCH_LAYERSCAPE
0309         help
0310           This driver support the Display output interfaces(LCD, DPHY) pixel clocks
0311           of the QorIQ Layerscape LS1028A, as implemented TSMC CLN28HPM PLL. Not all
0312           features of the PLL are currently supported by the driver. By default,
0313           configured bypass mode with this PLL.
0314 
0315 config COMMON_CLK_XGENE
0316         bool "Clock driver for APM XGene SoC"
0317         default ARCH_XGENE
0318         depends on ARM64 || COMPILE_TEST
0319         help
0320           Support for the APM X-Gene SoC reference, PLL, and device clocks.
0321 
0322 config COMMON_CLK_LOCHNAGAR
0323         tristate "Cirrus Logic Lochnagar clock driver"
0324         depends on MFD_LOCHNAGAR
0325         help
0326           This driver supports the clocking features of the Cirrus Logic
0327           Lochnagar audio development board.
0328 
0329 config COMMON_CLK_NXP
0330         def_bool COMMON_CLK && (ARCH_LPC18XX || ARCH_LPC32XX)
0331         select REGMAP_MMIO if ARCH_LPC32XX
0332         select MFD_SYSCON if ARCH_LPC18XX
0333         help
0334           Support for clock providers on NXP platforms.
0335 
0336 config COMMON_CLK_PALMAS
0337         tristate "Clock driver for TI Palmas devices"
0338         depends on MFD_PALMAS
0339         help
0340           This driver supports TI Palmas devices 32KHz output KG and KG_AUDIO
0341           using common clock framework.
0342 
0343 config COMMON_CLK_PWM
0344         tristate "Clock driver for PWMs used as clock outputs"
0345         depends on PWM
0346         help
0347           Adapter driver so that any PWM output can be (mis)used as clock signal
0348           at 50% duty cycle.
0349 
0350 config COMMON_CLK_PXA
0351         def_bool COMMON_CLK && ARCH_PXA
0352         help
0353           Support for the Marvell PXA SoC.
0354 
0355 config COMMON_CLK_OXNAS
0356         bool "Clock driver for the OXNAS SoC Family"
0357         depends on ARCH_OXNAS || COMPILE_TEST
0358         select MFD_SYSCON
0359         help
0360           Support for the OXNAS SoC Family clocks.
0361 
0362 config COMMON_CLK_RS9_PCIE
0363         tristate "Clock driver for Renesas 9-series PCIe clock generators"
0364         depends on I2C
0365         depends on OF
0366         select REGMAP_I2C
0367         help
0368           This driver supports the Renesas 9-series PCIe clock generator
0369           models 9FGV/9DBV/9DMV/9FGL/9DML/9QXL/9SQ.
0370 
0371 config COMMON_CLK_VC5
0372         tristate "Clock driver for IDT VersaClock 5,6 devices"
0373         depends on I2C
0374         depends on OF
0375         select REGMAP_I2C
0376         help
0377           This driver supports the IDT VersaClock 5 and VersaClock 6
0378           programmable clock generators.
0379 
0380 config COMMON_CLK_STM32MP135
0381         def_bool COMMON_CLK && MACH_STM32MP13
0382         help
0383           Support for stm32mp135 SoC family clocks
0384 
0385 config COMMON_CLK_STM32MP157
0386         def_bool COMMON_CLK && MACH_STM32MP157
0387         help
0388           Support for stm32mp157 SoC family clocks
0389 
0390 config COMMON_CLK_STM32F
0391         def_bool COMMON_CLK && (MACH_STM32F429 || MACH_STM32F469 || MACH_STM32F746)
0392         help
0393           Support for stm32f4 and stm32f7 SoC families clocks
0394 
0395 config COMMON_CLK_STM32H7
0396         def_bool COMMON_CLK && MACH_STM32H743
0397         help
0398           Support for stm32h7 SoC family clocks
0399 
0400 config COMMON_CLK_MMP2
0401         def_bool COMMON_CLK && (MACH_MMP2_DT || MACH_MMP3_DT)
0402         help
0403           Support for Marvell MMP2 and MMP3 SoC clocks
0404 
0405 config COMMON_CLK_MMP2_AUDIO
0406         tristate "Clock driver for MMP2 Audio subsystem"
0407         depends on COMMON_CLK_MMP2 || COMPILE_TEST
0408         help
0409           This driver supports clocks for Audio subsystem on MMP2 SoC.
0410 
0411 config COMMON_CLK_BD718XX
0412         tristate "Clock driver for 32K clk gates on ROHM PMICs"
0413         depends on MFD_ROHM_BD718XX || MFD_ROHM_BD71828
0414         help
0415           This driver supports ROHM BD71837, BD71847, BD71850, BD71815
0416           and BD71828 PMICs clock gates.
0417 
0418 config COMMON_CLK_FIXED_MMIO
0419         bool "Clock driver for Memory Mapped Fixed values"
0420         depends on COMMON_CLK && OF
0421         help
0422           Support for Memory Mapped IO Fixed clocks
0423 
0424 config COMMON_CLK_K210
0425         bool "Clock driver for the Canaan Kendryte K210 SoC"
0426         depends on OF && RISCV && SOC_CANAAN
0427         default SOC_CANAAN
0428         help
0429           Support for the Canaan Kendryte K210 RISC-V SoC clocks.
0430 
0431 source "drivers/clk/actions/Kconfig"
0432 source "drivers/clk/analogbits/Kconfig"
0433 source "drivers/clk/baikal-t1/Kconfig"
0434 source "drivers/clk/bcm/Kconfig"
0435 source "drivers/clk/hisilicon/Kconfig"
0436 source "drivers/clk/imgtec/Kconfig"
0437 source "drivers/clk/imx/Kconfig"
0438 source "drivers/clk/ingenic/Kconfig"
0439 source "drivers/clk/keystone/Kconfig"
0440 source "drivers/clk/mediatek/Kconfig"
0441 source "drivers/clk/meson/Kconfig"
0442 source "drivers/clk/mstar/Kconfig"
0443 source "drivers/clk/microchip/Kconfig"
0444 source "drivers/clk/mvebu/Kconfig"
0445 source "drivers/clk/pistachio/Kconfig"
0446 source "drivers/clk/qcom/Kconfig"
0447 source "drivers/clk/ralink/Kconfig"
0448 source "drivers/clk/renesas/Kconfig"
0449 source "drivers/clk/rockchip/Kconfig"
0450 source "drivers/clk/samsung/Kconfig"
0451 source "drivers/clk/sifive/Kconfig"
0452 source "drivers/clk/socfpga/Kconfig"
0453 source "drivers/clk/sprd/Kconfig"
0454 source "drivers/clk/starfive/Kconfig"
0455 source "drivers/clk/sunxi/Kconfig"
0456 source "drivers/clk/sunxi-ng/Kconfig"
0457 source "drivers/clk/tegra/Kconfig"
0458 source "drivers/clk/ti/Kconfig"
0459 source "drivers/clk/uniphier/Kconfig"
0460 source "drivers/clk/visconti/Kconfig"
0461 source "drivers/clk/x86/Kconfig"
0462 source "drivers/clk/xilinx/Kconfig"
0463 source "drivers/clk/zynqmp/Kconfig"
0464 
0465 # Kunit test cases
0466 config CLK_KUNIT_TEST
0467         tristate "Basic Clock Framework Kunit Tests" if !KUNIT_ALL_TESTS
0468         depends on KUNIT
0469         default KUNIT_ALL_TESTS
0470         help
0471           Kunit tests for the common clock framework.
0472 
0473 config CLK_GATE_KUNIT_TEST
0474         tristate "Basic gate type Kunit test" if !KUNIT_ALL_TESTS
0475         depends on KUNIT
0476         default KUNIT_ALL_TESTS
0477         help
0478           Kunit test for the basic clk gate type.
0479 
0480 endif