mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-23 18:48:01 +07:00
bbd7ffdbef
Enable build testing and configuration control of the common clk framework so that more code coverage and testing can be done on the common clk framework across various architectures. This also nicely removes the requirement that architectures must select the framework when they don't use it in architecture code. There's one snag with doing this, and that's making sure that randconfig builds don't select this option when some architecture or platform implements 'struct clk' outside of the common clk framework. Introduce a new config option 'HAVE_LEGACY_CLK' to indicate those platforms that haven't migrated to the common clk framework and therefore shouldn't be allowed to select this new config option. Also add a note that we hope one day to remove this config entirely. Based on a patch by Mark Brown <broonie@kernel.org>. Cc: Mark Brown <broonie@kernel.org> Cc: Geert Uytterhoeven <geert@linux-m68k.org> Cc: Mark Salter <msalter@redhat.com> Cc: Aurelien Jacquiot <jacquiot.aurelien@gmail.com> Cc: Jiaxun Yang <jiaxun.yang@flygoat.com> Cc: Guan Xuetao <gxt@pku.edu.cn> Cc: Russell King <linux@armlinux.org.uk> Cc: Arnd Bergmann <arnd@arndb.de> Cc: Yoshinori Sato <ysato@users.sourceforge.jp> Cc: Rich Felker <dalias@libc.org> Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de> Cc: <linux-mips@vger.kernel.org> Cc: <linux-c6x-dev@linux-c6x.org> Cc: <linux-m68k@lists.linux-m68k.org> Cc: <linux-arm-kernel@lists.infradead.org> Cc: <linux-sh@vger.kernel.org> Link: https://lore.kernel.org/r/1470915049-15249-1-git-send-email-broonie@kernel.org Signed-off-by: Stephen Boyd <sboyd@kernel.org> Link: https://lkml.kernel.org/r/20200409064416.83340-8-sboyd@kernel.org Reviewed-by: Mark Brown <broonie@kernel.org> Reviewed-by: Arnd Bergmann <arnd@arndb.de>
375 lines
12 KiB
Plaintext
375 lines
12 KiB
Plaintext
# SPDX-License-Identifier: GPL-2.0
|
|
|
|
config CLKDEV_LOOKUP
|
|
bool
|
|
select HAVE_CLK
|
|
|
|
config HAVE_CLK_PREPARE
|
|
bool
|
|
|
|
config HAVE_LEGACY_CLK # TODO: Remove once all legacy users are migrated
|
|
bool
|
|
select HAVE_CLK
|
|
help
|
|
Select this option when the clock API in <linux/clk.h> is implemented
|
|
by platform/architecture code. This method is deprecated. Modern
|
|
code should select COMMON_CLK instead and not define a custom
|
|
'struct clk'.
|
|
|
|
menuconfig COMMON_CLK
|
|
bool "Common Clock Framework"
|
|
depends on !HAVE_LEGACY_CLK
|
|
select HAVE_CLK_PREPARE
|
|
select CLKDEV_LOOKUP
|
|
select SRCU
|
|
select RATIONAL
|
|
---help---
|
|
The common clock framework is a single definition of struct
|
|
clk, useful across many platforms, as well as an
|
|
implementation of the clock API in include/linux/clk.h.
|
|
Architectures utilizing the common struct clk should select
|
|
this option.
|
|
|
|
if COMMON_CLK
|
|
|
|
config COMMON_CLK_WM831X
|
|
tristate "Clock driver for WM831x/2x PMICs"
|
|
depends on MFD_WM831X
|
|
---help---
|
|
Supports the clocking subsystem of the WM831x/2x series of
|
|
PMICs from Wolfson Microelectronics.
|
|
|
|
source "drivers/clk/versatile/Kconfig"
|
|
|
|
config CLK_HSDK
|
|
bool "PLL Driver for HSDK platform"
|
|
depends on OF || COMPILE_TEST
|
|
---help---
|
|
This driver supports the HSDK core, system, ddr, tunnel and hdmi PLLs
|
|
control.
|
|
|
|
config COMMON_CLK_MAX77686
|
|
tristate "Clock driver for Maxim 77620/77686/77802 MFD"
|
|
depends on MFD_MAX77686 || MFD_MAX77620 || COMPILE_TEST
|
|
---help---
|
|
This driver supports Maxim 77620/77686/77802 crystal oscillator
|
|
clock.
|
|
|
|
config COMMON_CLK_MAX9485
|
|
tristate "Maxim 9485 Programmable Clock Generator"
|
|
depends on I2C
|
|
help
|
|
This driver supports Maxim 9485 Programmable Audio Clock Generator
|
|
|
|
config COMMON_CLK_RK808
|
|
tristate "Clock driver for RK805/RK808/RK809/RK817/RK818"
|
|
depends on MFD_RK808
|
|
---help---
|
|
This driver supports RK805, RK809 and RK817, RK808 and RK818 crystal oscillator clock.
|
|
These multi-function devices have two fixed-rate oscillators, clocked at 32KHz each.
|
|
Clkout1 is always on, Clkout2 can off by control register.
|
|
|
|
config COMMON_CLK_HI655X
|
|
tristate "Clock driver for Hi655x" if EXPERT
|
|
depends on (MFD_HI655X_PMIC || COMPILE_TEST)
|
|
depends on REGMAP
|
|
default MFD_HI655X_PMIC
|
|
---help---
|
|
This driver supports the hi655x PMIC clock. This
|
|
multi-function device has one fixed-rate oscillator, clocked
|
|
at 32KHz.
|
|
|
|
config COMMON_CLK_SCMI
|
|
tristate "Clock driver controlled via SCMI interface"
|
|
depends on ARM_SCMI_PROTOCOL || COMPILE_TEST
|
|
---help---
|
|
This driver provides support for clocks that are controlled
|
|
by firmware that implements the SCMI interface.
|
|
|
|
This driver uses SCMI Message Protocol to interact with the
|
|
firmware providing all the clock controls.
|
|
|
|
config COMMON_CLK_SCPI
|
|
tristate "Clock driver controlled via SCPI interface"
|
|
depends on ARM_SCPI_PROTOCOL || COMPILE_TEST
|
|
---help---
|
|
This driver provides support for clocks that are controlled
|
|
by firmware that implements the SCPI interface.
|
|
|
|
This driver uses SCPI Message Protocol to interact with the
|
|
firmware providing all the clock controls.
|
|
|
|
config COMMON_CLK_SI5341
|
|
tristate "Clock driver for SiLabs 5341 and 5340 A/B/C/D devices"
|
|
depends on I2C
|
|
select REGMAP_I2C
|
|
help
|
|
This driver supports Silicon Labs Si5341 and Si5340 programmable clock
|
|
generators. Not all features of these chips are currently supported
|
|
by the driver, in particular it only supports XTAL input. The chip can
|
|
be pre-programmed to support other configurations and features not yet
|
|
implemented in the driver.
|
|
|
|
config COMMON_CLK_SI5351
|
|
tristate "Clock driver for SiLabs 5351A/B/C"
|
|
depends on I2C
|
|
select REGMAP_I2C
|
|
select RATIONAL
|
|
---help---
|
|
This driver supports Silicon Labs 5351A/B/C programmable clock
|
|
generators.
|
|
|
|
config COMMON_CLK_SI514
|
|
tristate "Clock driver for SiLabs 514 devices"
|
|
depends on I2C
|
|
depends on OF
|
|
select REGMAP_I2C
|
|
help
|
|
This driver supports the Silicon Labs 514 programmable clock
|
|
generator.
|
|
|
|
config COMMON_CLK_SI544
|
|
tristate "Clock driver for SiLabs 544 devices"
|
|
depends on I2C
|
|
select REGMAP_I2C
|
|
help
|
|
This driver supports the Silicon Labs 544 programmable clock
|
|
generator.
|
|
|
|
config COMMON_CLK_SI570
|
|
tristate "Clock driver for SiLabs 570 and compatible devices"
|
|
depends on I2C
|
|
depends on OF
|
|
select REGMAP_I2C
|
|
help
|
|
This driver supports Silicon Labs 570/571/598/599 programmable
|
|
clock generators.
|
|
|
|
config COMMON_CLK_BM1880
|
|
bool "Clock driver for Bitmain BM1880 SoC"
|
|
depends on ARCH_BITMAIN || COMPILE_TEST
|
|
default ARCH_BITMAIN
|
|
help
|
|
This driver supports the clocks on Bitmain BM1880 SoC.
|
|
|
|
config COMMON_CLK_CDCE706
|
|
tristate "Clock driver for TI CDCE706 clock synthesizer"
|
|
depends on I2C
|
|
select REGMAP_I2C
|
|
select RATIONAL
|
|
---help---
|
|
This driver supports TI CDCE706 programmable 3-PLL clock synthesizer.
|
|
|
|
config COMMON_CLK_CDCE925
|
|
tristate "Clock driver for TI CDCE913/925/937/949 devices"
|
|
depends on I2C
|
|
depends on OF
|
|
select REGMAP_I2C
|
|
help
|
|
This driver supports the TI CDCE913/925/937/949 programmable clock
|
|
synthesizer. Each chip has different number of PLLs and outputs.
|
|
For example, the CDCE925 contains two PLLs with spread-spectrum
|
|
clocking support and five output dividers. The driver only supports
|
|
the following setup, and uses a fixed setting for the output muxes.
|
|
Y1 is derived from the input clock
|
|
Y2 and Y3 derive from PLL1
|
|
Y4 and Y5 derive from PLL2
|
|
Given a target output frequency, the driver will set the PLL and
|
|
divider to best approximate the desired output.
|
|
|
|
config COMMON_CLK_CS2000_CP
|
|
tristate "Clock driver for CS2000 Fractional-N Clock Synthesizer & Clock Multiplier"
|
|
depends on I2C
|
|
help
|
|
If you say yes here you get support for the CS2000 clock multiplier.
|
|
|
|
config COMMON_CLK_FSL_SAI
|
|
bool "Clock driver for BCLK of Freescale SAI cores"
|
|
depends on ARCH_LAYERSCAPE || COMPILE_TEST
|
|
help
|
|
This driver supports the Freescale SAI (Synchronous Audio Interface)
|
|
to be used as a generic clock output. Some SoCs have restrictions
|
|
regarding the possible pin multiplexer settings. Eg. on some SoCs
|
|
two SAI interfaces can only be enabled together. If just one is
|
|
needed, the BCLK pin of the second one can be used as general
|
|
purpose clock output. Ideally, it can be used to drive an audio
|
|
codec (sometimes known as MCLK).
|
|
|
|
config COMMON_CLK_GEMINI
|
|
bool "Clock driver for Cortina Systems Gemini SoC"
|
|
depends on ARCH_GEMINI || COMPILE_TEST
|
|
select MFD_SYSCON
|
|
select RESET_CONTROLLER
|
|
---help---
|
|
This driver supports the SoC clocks on the Cortina Systems Gemini
|
|
platform, also known as SL3516 or CS3516.
|
|
|
|
config COMMON_CLK_ASPEED
|
|
bool "Clock driver for Aspeed BMC SoCs"
|
|
depends on ARCH_ASPEED || COMPILE_TEST
|
|
default ARCH_ASPEED
|
|
select MFD_SYSCON
|
|
select RESET_CONTROLLER
|
|
---help---
|
|
This driver supports the SoC clocks on the Aspeed BMC platforms.
|
|
|
|
The G4 and G5 series, including the ast2400 and ast2500, are supported
|
|
by this driver.
|
|
|
|
config COMMON_CLK_S2MPS11
|
|
tristate "Clock driver for S2MPS1X/S5M8767 MFD"
|
|
depends on MFD_SEC_CORE || COMPILE_TEST
|
|
---help---
|
|
This driver supports S2MPS11/S2MPS14/S5M8767 crystal oscillator
|
|
clock. These multi-function devices have two (S2MPS14) or three
|
|
(S2MPS11, S5M8767) fixed-rate oscillators, clocked at 32KHz each.
|
|
|
|
config CLK_TWL6040
|
|
tristate "External McPDM functional clock from twl6040"
|
|
depends on TWL6040_CORE
|
|
---help---
|
|
Enable the external functional clock support on OMAP4+ platforms for
|
|
McPDM. McPDM module is using the external bit clock on the McPDM bus
|
|
as functional clock.
|
|
|
|
config COMMON_CLK_AXI_CLKGEN
|
|
tristate "AXI clkgen driver"
|
|
depends on ARCH_ZYNQ || MICROBLAZE || COMPILE_TEST
|
|
help
|
|
Support for the Analog Devices axi-clkgen pcore clock generator for Xilinx
|
|
FPGAs. It is commonly used in Analog Devices' reference designs.
|
|
|
|
config CLK_QORIQ
|
|
bool "Clock driver for Freescale QorIQ platforms"
|
|
depends on (PPC_E500MC || ARM || ARM64 || COMPILE_TEST) && OF
|
|
---help---
|
|
This adds the clock driver support for Freescale QorIQ platforms
|
|
using common clock framework.
|
|
|
|
config CLK_LS1028A_PLLDIG
|
|
tristate "Clock driver for LS1028A Display output"
|
|
depends on ARCH_LAYERSCAPE || COMPILE_TEST
|
|
default ARCH_LAYERSCAPE
|
|
help
|
|
This driver support the Display output interfaces(LCD, DPHY) pixel clocks
|
|
of the QorIQ Layerscape LS1028A, as implemented TSMC CLN28HPM PLL. Not all
|
|
features of the PLL are currently supported by the driver. By default,
|
|
configured bypass mode with this PLL.
|
|
|
|
config COMMON_CLK_XGENE
|
|
bool "Clock driver for APM XGene SoC"
|
|
default ARCH_XGENE
|
|
depends on ARM64 || COMPILE_TEST
|
|
---help---
|
|
Sypport for the APM X-Gene SoC reference, PLL, and device clocks.
|
|
|
|
config COMMON_CLK_LOCHNAGAR
|
|
tristate "Cirrus Logic Lochnagar clock driver"
|
|
depends on MFD_LOCHNAGAR
|
|
help
|
|
This driver supports the clocking features of the Cirrus Logic
|
|
Lochnagar audio development board.
|
|
|
|
config COMMON_CLK_NXP
|
|
def_bool COMMON_CLK && (ARCH_LPC18XX || ARCH_LPC32XX)
|
|
select REGMAP_MMIO if ARCH_LPC32XX
|
|
select MFD_SYSCON if ARCH_LPC18XX
|
|
---help---
|
|
Support for clock providers on NXP platforms.
|
|
|
|
config COMMON_CLK_PALMAS
|
|
tristate "Clock driver for TI Palmas devices"
|
|
depends on MFD_PALMAS
|
|
---help---
|
|
This driver supports TI Palmas devices 32KHz output KG and KG_AUDIO
|
|
using common clock framework.
|
|
|
|
config COMMON_CLK_PWM
|
|
tristate "Clock driver for PWMs used as clock outputs"
|
|
depends on PWM
|
|
---help---
|
|
Adapter driver so that any PWM output can be (mis)used as clock signal
|
|
at 50% duty cycle.
|
|
|
|
config COMMON_CLK_PXA
|
|
def_bool COMMON_CLK && ARCH_PXA
|
|
---help---
|
|
Support for the Marvell PXA SoC.
|
|
|
|
config COMMON_CLK_PIC32
|
|
def_bool COMMON_CLK && MACH_PIC32
|
|
|
|
config COMMON_CLK_OXNAS
|
|
bool "Clock driver for the OXNAS SoC Family"
|
|
depends on ARCH_OXNAS || COMPILE_TEST
|
|
select MFD_SYSCON
|
|
---help---
|
|
Support for the OXNAS SoC Family clocks.
|
|
|
|
config COMMON_CLK_VC5
|
|
tristate "Clock driver for IDT VersaClock 5,6 devices"
|
|
depends on I2C
|
|
depends on OF
|
|
select REGMAP_I2C
|
|
help
|
|
This driver supports the IDT VersaClock 5 and VersaClock 6
|
|
programmable clock generators.
|
|
|
|
config COMMON_CLK_STM32MP157
|
|
def_bool COMMON_CLK && MACH_STM32MP157
|
|
help
|
|
Support for stm32mp157 SoC family clocks
|
|
|
|
config COMMON_CLK_STM32F
|
|
def_bool COMMON_CLK && (MACH_STM32F429 || MACH_STM32F469 || MACH_STM32F746)
|
|
help
|
|
Support for stm32f4 and stm32f7 SoC families clocks
|
|
|
|
config COMMON_CLK_STM32H7
|
|
def_bool COMMON_CLK && MACH_STM32H743
|
|
help
|
|
Support for stm32h7 SoC family clocks
|
|
|
|
config COMMON_CLK_MMP2
|
|
def_bool COMMON_CLK && (MACH_MMP2_DT || MACH_MMP3_DT)
|
|
help
|
|
Support for Marvell MMP2 and MMP3 SoC clocks
|
|
|
|
config COMMON_CLK_BD718XX
|
|
tristate "Clock driver for 32K clk gates on ROHM PMICs"
|
|
depends on MFD_ROHM_BD718XX || MFD_ROHM_BD70528 || MFD_ROHM_BD71828
|
|
help
|
|
This driver supports ROHM BD71837, ROHM BD71847, ROHM BD71828 and
|
|
ROHM BD70528 PMICs clock gates.
|
|
|
|
config COMMON_CLK_FIXED_MMIO
|
|
bool "Clock driver for Memory Mapped Fixed values"
|
|
depends on COMMON_CLK && OF
|
|
help
|
|
Support for Memory Mapped IO Fixed clocks
|
|
|
|
source "drivers/clk/actions/Kconfig"
|
|
source "drivers/clk/analogbits/Kconfig"
|
|
source "drivers/clk/bcm/Kconfig"
|
|
source "drivers/clk/hisilicon/Kconfig"
|
|
source "drivers/clk/imgtec/Kconfig"
|
|
source "drivers/clk/imx/Kconfig"
|
|
source "drivers/clk/ingenic/Kconfig"
|
|
source "drivers/clk/keystone/Kconfig"
|
|
source "drivers/clk/mediatek/Kconfig"
|
|
source "drivers/clk/meson/Kconfig"
|
|
source "drivers/clk/mvebu/Kconfig"
|
|
source "drivers/clk/qcom/Kconfig"
|
|
source "drivers/clk/renesas/Kconfig"
|
|
source "drivers/clk/samsung/Kconfig"
|
|
source "drivers/clk/sifive/Kconfig"
|
|
source "drivers/clk/sprd/Kconfig"
|
|
source "drivers/clk/sunxi/Kconfig"
|
|
source "drivers/clk/sunxi-ng/Kconfig"
|
|
source "drivers/clk/tegra/Kconfig"
|
|
source "drivers/clk/ti/Kconfig"
|
|
source "drivers/clk/uniphier/Kconfig"
|
|
source "drivers/clk/zynqmp/Kconfig"
|
|
|
|
endif
|