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 related settings for
	  Zynq platform.

config CLK_XLNX_CLKWZRD
	bool "Xilinx Clocking Wizard"
	depends on CLK
	help
	  Support for the Xilinx Clocking Wizard IP core clock generator.
	  The wizard support for dynamically reconfiguring the clocking
	  primitives for Multiply, Divide, Phase Shift/Offset, or Duty
	  Cycle. Limited by U-Boot clk uclass without set_phase API and
	  set_duty_cycle API, this driver only supports set_rate to modify
	  the frequency.

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.

config CLK_K210
	bool "Clock support for Kendryte K210"
	depends on CLK
	help
	  This enables support clock driver for Kendryte K210 platforms.

config CLK_K210_SET_RATE
	bool "Enable setting the Kendryte K210 PLL rate"
	depends on CLK_K210
	help
	  Add functionality to calculate new rates for K210 PLLs. Enabling this
	  feature adds around 1K to U-Boot's final size.

source "drivers/clk/analogbits/Kconfig"
source "drivers/clk/at91/Kconfig"
source "drivers/clk/exynos/Kconfig"
source "drivers/clk/imx/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
