1menu "Clock"
2
3config CLK
4	bool "Enable clock driver support"
5	depends on DM
6	help
7	  This allows drivers to be provided for clock generators, including
8	  oscillators and PLLs. Devices can use a common clock API to request
9	  a particular clock rate and check on available clocks. Clocks can
10	  feed into other clocks in a tree structure, with multiplexers to
11	  choose the source for each clock.
12
13config SPL_CLK
14	bool "Enable clock support in SPL"
15	depends on CLK && SPL && SPL_DM
16	help
17	  The clock subsystem adds a small amount of overhead to the image.
18	  If this is acceptable and you have a need to use clock drivers in
19	  SPL, enable this option. It might provide a cleaner interface to
20	  setting up clocks within SPL, and allows the same drivers to be
21	  used as U-Boot proper.
22
23config TPL_CLK
24	bool "Enable clock support in TPL"
25	depends on CLK && TPL_DM
26	help
27	  The clock subsystem adds a small amount of overhead to the image.
28	  If this is acceptable and you have a need to use clock drivers in
29	  SPL, enable this option. It might provide a cleaner interface to
30	  setting up clocks within TPL, and allows the same drivers to be
31	  used as U-Boot proper.
32
33config CLK_BCM6345
34	bool "Clock controller driver for BCM6345"
35	depends on CLK && ARCH_BMIPS
36	default y
37	help
38	  This clock driver adds support for enabling and disabling peripheral
39	  clocks on BCM6345 SoCs. HW has no rate changing capabilities.
40
41config CLK_BOSTON
42	def_bool y if TARGET_BOSTON
43	depends on CLK
44	select REGMAP
45	select SYSCON
46	help
47	  Enable this to support the clocks
48
49config SPL_CLK_CCF
50	bool "SPL Common Clock Framework [CCF] support "
51	depends on SPL
52	help
53	  Enable this option if you want to (re-)use the Linux kernel's Common
54	  Clock Framework [CCF] code in U-Boot's SPL.
55
56config SPL_CLK_COMPOSITE_CCF
57	bool "SPL Common Clock Framework [CCF] composite clk support "
58	depends on SPL_CLK_CCF
59	help
60	  Enable this option if you want to (re-)use the Linux kernel's Common
61	  Clock Framework [CCF] composite code in U-Boot's SPL.
62
63config CLK_CCF
64	bool "Common Clock Framework [CCF] support "
65	help
66	  Enable this option if you want to (re-)use the Linux kernel's Common
67	  Clock Framework [CCF] code in U-Boot's clock driver.
68
69config CLK_COMPOSITE_CCF
70	bool "Common Clock Framework [CCF] composite clk support "
71	depends on CLK_CCF
72	help
73	  Enable this option if you want to (re-)use the Linux kernel's Common
74	  Clock Framework [CCF] composite code in U-Boot's clock driver.
75
76config CLK_INTEL
77	bool "Enable clock driver for Intel x86"
78	depends on CLK && X86
79	help
80	  This provides very basic support for clocks on Intel SoCs. The driver
81	  is barely used at present but could be expanded as needs arise.
82	  Much clock configuration in U-Boot is either set up by the FSP, or
83	  set up by U-Boot itself but only statically. Thus the driver does not
84	  support changing clock rates, only querying them.
85
86config CLK_OCTEON
87	bool "Clock controller driver for Marvell MIPS Octeon"
88	depends on CLK && ARCH_OCTEON
89	default y
90	help
91	  Enable this to support the clocks on Octeon MIPS platforms.
92
93config CLK_STM32F
94	bool "Enable clock driver support for STM32F family"
95	depends on CLK && (STM32F7 || STM32F4)
96	default y
97	help
98	  This clock driver adds support for RCC clock management
99	  for STM32F4 and STM32F7 SoCs.
100
101config CLK_HSDK
102	bool "Enable cgu clock driver for HSDK boards"
103	depends on CLK && TARGET_HSDK
104	help
105	  Enable this to support the cgu clocks on Synopsys ARC HSDK and
106	  Synopsys ARC HSDK-4xD boards
107
108config CLK_VERSAL
109	bool "Enable clock driver support for Versal"
110	depends on ARCH_VERSAL
111	select ZYNQMP_FIRMWARE
112	help
113	  This clock driver adds support for clock realted settings for
114	  Versal platform.
115
116config CLK_VEXPRESS_OSC
117	bool "Enable driver for Arm Versatile Express OSC clock generators"
118	depends on CLK && VEXPRESS_CONFIG
119	help
120	  This clock driver adds support for clock generators present on
121	  Arm Versatile Express platforms.
122
123config CLK_ZYNQ
124	bool "Enable clock driver support for Zynq"
125	depends on CLK && ARCH_ZYNQ
126	default y
127	help
128	  This clock driver adds support for clock related settings for
129	  Zynq platform.
130
131config CLK_XLNX_CLKWZRD
132	bool "Xilinx Clocking Wizard"
133	depends on CLK
134	help
135	  Support for the Xilinx Clocking Wizard IP core clock generator.
136	  The wizard support for dynamically reconfiguring the clocking
137	  primitives for Multiply, Divide, Phase Shift/Offset, or Duty
138	  Cycle. Limited by U-Boot clk uclass without set_phase API and
139	  set_duty_cycle API, this driver only supports set_rate to modify
140	  the frequency.
141
142config CLK_ZYNQMP
143	bool "Enable clock driver support for ZynqMP"
144	depends on ARCH_ZYNQMP
145	select ZYNQMP_FIRMWARE
146	help
147	  This clock driver adds support for clock realted settings for
148	  ZynqMP platform.
149
150config CLK_STM32MP1
151	bool "Enable RCC clock driver for STM32MP1"
152	depends on ARCH_STM32MP && CLK
153	default y
154	help
155	  Enable the STM32 clock (RCC) driver. Enable support for
156	  manipulating STM32MP1's on-SoC clocks.
157
158config CLK_CDCE9XX
159	bool "Enable CDCD9XX clock driver"
160	depends on CLK
161	help
162	   Enable the clock synthesizer driver for CDCE913/925/937/949
163	   series of chips.
164
165config CLK_SCMI
166	bool "Enable SCMI clock driver"
167	depends on SCMI_FIRMWARE
168	help
169	  Enable this option if you want to support clock devices exposed
170	  by a SCMI agent based on SCMI clock protocol communication
171	  with a SCMI server.
172
173config CLK_K210
174	bool "Clock support for Kendryte K210"
175	depends on CLK
176	help
177	  This enables support clock driver for Kendryte K210 platforms.
178
179config CLK_K210_SET_RATE
180	bool "Enable setting the Kendryte K210 PLL rate"
181	depends on CLK_K210
182	help
183	  Add functionality to calculate new rates for K210 PLLs. Enabling this
184	  feature adds around 1K to U-Boot's final size.
185
186source "drivers/clk/analogbits/Kconfig"
187source "drivers/clk/at91/Kconfig"
188source "drivers/clk/exynos/Kconfig"
189source "drivers/clk/imx/Kconfig"
190source "drivers/clk/meson/Kconfig"
191source "drivers/clk/microchip/Kconfig"
192source "drivers/clk/mvebu/Kconfig"
193source "drivers/clk/owl/Kconfig"
194source "drivers/clk/renesas/Kconfig"
195source "drivers/clk/sunxi/Kconfig"
196source "drivers/clk/sifive/Kconfig"
197source "drivers/clk/tegra/Kconfig"
198source "drivers/clk/ti/Kconfig"
199source "drivers/clk/uniphier/Kconfig"
200
201config ICS8N3QV01
202	bool "Enable ICS8N3QV01 VCXO driver"
203	depends on CLK
204	help
205	  Support for the ICS8N3QV01 Quad-Frequency VCXO (Voltage-Controlled
206	  Crystal Oscillator). The output frequency can be programmed via an
207	  I2C interface.
208
209config CLK_MPC83XX
210	bool "Enable MPC83xx clock driver"
211	depends on CLK
212	help
213	  Support for the clock driver of the MPC83xx series of SoCs.
214
215config SANDBOX_CLK_CCF
216	bool "Sandbox Common Clock Framework [CCF] support "
217	depends on SANDBOX
218	select CLK_CCF
219	help
220	  Enable this option if you want to test the Linux kernel's Common
221	  Clock Framework [CCF] code in U-Boot's Sandbox clock driver.
222
223config CLK_VERSACLOCK
224	tristate "Enable VersaClock 5/6 devices"
225	depends on CLK
226	depends on CLK_CCF
227	depends on OF_CONTROL
228	help
229	  This driver supports the IDT VersaClock 5 and VersaClock 6
230	  programmable clock generators.
231
232endmenu
233