menu "Clock"

config CLK
	bool "Enable clock driver support"
	depends on DM
	help
	  This allows drivers to be provided for clock generators, including
	  oscillators and PLLs. Devices can use a common clock API to request
	  a particular clock rate and check on available clocks. Clocks can
	  feed into other clocks in a tree structure, with multiplexers to
	  choose the source for each clock.

config SPL_CLK
	bool "Enable clock support in SPL"
	depends on CLK && SPL && SPL_DM
	help
	  The clock subsystem adds a small amount of overhead to the image.
	  If this is acceptable and you have a need to use clock drivers in
	  SPL, enable this option. It might provide a cleaner interface to
	  setting up clocks within SPL, and allows the same drivers to be
	  used as U-Boot proper.

config TPL_CLK
	bool "Enable clock support in TPL"
	depends on CLK && TPL_DM
	help
	  The clock subsystem adds a small amount of overhead to the image.
	  If this is acceptable and you have a need to use clock drivers in
	  SPL, enable this option. It might provide a cleaner interface to
	  setting up clocks within TPL, and allows the same drivers to be
	  used as U-Boot proper.

config CLK_BCM6345
	bool "Clock controller driver for BCM6345"
	depends on CLK && ARCH_BMIPS
	default y
	help
	  This clock driver adds support for enabling and disabling peripheral
	  clocks on BCM6345 SoCs. HW has no rate changing capabilities.

config CLK_BOSTON
	def_bool y if TARGET_BOSTON
	depends on CLK
	select REGMAP
	select SYSCON
	help
	  Enable this to support the clocks

config SPL_CLK_CCF
	bool "SPL Common Clock Framework [CCF] support "
	depends on SPL
	help
	  Enable this option if you want to (re-)use the Linux kernel's Common
	  Clock Framework [CCF] code in U-Boot's SPL.

config SPL_CLK_COMPOSITE_CCF
	bool "SPL Common Clock Framework [CCF] composite clk support "
	depends on SPL_CLK_CCF
	help
	  Enable this option if you want to (re-)use the Linux kernel's Common
	  Clock Framework [CCF] composite code in U-Boot's SPL.

config CLK_CCF
	bool "Common Clock Framework [CCF] support "
	help
	  Enable this option if you want to (re-)use the Linux kernel's Common
	  Clock Framework [CCF] code in U-Boot's clock driver.

config CLK_COMPOSITE_CCF
	bool "Common Clock Framework [CCF] composite clk support "
	depends on CLK_CCF
	help
	  Enable this option if you want to (re-)use the Linux kernel's Common
	  Clock Framework [CCF] composite code in U-Boot's clock driver.

config CLK_INTEL
	bool "Enable clock driver for Intel x86"
	depends on CLK && X86
	help
	  This provides very basic support for clocks on Intel SoCs. The driver
	  is barely used at present but could be expanded as needs arise.
	  Much clock configuration in U-Boot is either set up by the FSP, or
	  set up by U-Boot itself but only statically. Thus the driver does not
	  support changing clock rates, only querying them.

config CLK_OCTEON
	bool "Clock controller driver for Marvell MIPS Octeon"
	depends on CLK && ARCH_OCTEON
	default y
	help
	  Enable this to support the clocks on Octeon MIPS platforms.

config CLK_STM32F
	bool "Enable clock driver support for STM32F family"
	depends on CLK && (STM32F7 || STM32F4)
	default y
	help
	  This clock driver adds support for RCC clock management
	  for STM32F4 and STM32F7 SoCs.

config CLK_HSDK
	bool "Enable cgu clock driver for HSDK boards"
	depends on CLK && TARGET_HSDK
	help
	  Enable this to support the cgu clocks on Synopsys ARC HSDK and
	  Synopsys ARC HSDK-4xD boards

config CLK_VERSAL
	bool "Enable clock driver support for Versal"
	depends on ARCH_VERSAL
	select ZYNQMP_FIRMWARE
	help
	  This clock driver adds support for clock realted settings for
	  Versal platform.

config CLK_VEXPRESS_OSC
	bool "Enable driver for Arm Versatile Express OSC clock generators"
	depends on CLK && VEXPRESS_CONFIG
	help
	  This clock driver adds support for clock generators present on
	  Arm Versatile Express platforms.

config CLK_ZYNQ
	bool "Enable clock driver support for Zynq"
	depends on CLK && ARCH_ZYNQ
	default y
	help
	  This clock driver adds support for clock realted settings for
	  Zynq platform.

config CLK_ZYNQMP
	bool "Enable clock driver support for ZynqMP"
	depends on ARCH_ZYNQMP
	select ZYNQMP_FIRMWARE
	help
	  This clock driver adds support for clock realted settings for
	  ZynqMP platform.

config CLK_STM32MP1
	bool "Enable RCC clock driver for STM32MP1"
	depends on ARCH_STM32MP && CLK
	default y
	help
	  Enable the STM32 clock (RCC) driver. Enable support for
	  manipulating STM32MP1's on-SoC clocks.

config CLK_CDCE9XX
	bool "Enable CDCD9XX clock driver"
	depends on CLK
	help
	   Enable the clock synthesizer driver for CDCE913/925/937/949
	   series of chips.

config CLK_SCMI
	bool "Enable SCMI clock driver"
	depends on SCMI_FIRMWARE
	help
	  Enable this option if you want to support clock devices exposed
	  by a SCMI agent based on SCMI clock protocol communication
	  with a SCMI server.

source "drivers/clk/analogbits/Kconfig"
source "drivers/clk/at91/Kconfig"
source "drivers/clk/exynos/Kconfig"
source "drivers/clk/imx/Kconfig"
source "drivers/clk/kendryte/Kconfig"
source "drivers/clk/meson/Kconfig"
source "drivers/clk/microchip/Kconfig"
source "drivers/clk/mvebu/Kconfig"
source "drivers/clk/owl/Kconfig"
source "drivers/clk/renesas/Kconfig"
source "drivers/clk/sunxi/Kconfig"
source "drivers/clk/sifive/Kconfig"
source "drivers/clk/tegra/Kconfig"
source "drivers/clk/ti/Kconfig"
source "drivers/clk/uniphier/Kconfig"

config ICS8N3QV01
	bool "Enable ICS8N3QV01 VCXO driver"
	depends on CLK
	help
	  Support for the ICS8N3QV01 Quad-Frequency VCXO (Voltage-Controlled
	  Crystal Oscillator). The output frequency can be programmed via an
	  I2C interface.

config CLK_MPC83XX
	bool "Enable MPC83xx clock driver"
	depends on CLK
	help
	  Support for the clock driver of the MPC83xx series of SoCs.

config SANDBOX_CLK_CCF
	bool "Sandbox Common Clock Framework [CCF] support "
	depends on SANDBOX
	select CLK_CCF
	help
	  Enable this option if you want to test the Linux kernel's Common
	  Clock Framework [CCF] code in U-Boot's Sandbox clock driver.

endmenu
