1menu "Clock Source drivers"
2
3config CLKSRC_OF
4	bool
5
6config CLKSRC_I8253
7	bool
8
9config CLKEVT_I8253
10	bool
11
12config I8253_LOCK
13	bool
14
15config CLKBLD_I8253
16	def_bool y if CLKSRC_I8253 || CLKEVT_I8253 || I8253_LOCK
17
18config CLKSRC_MMIO
19	bool
20
21config DIGICOLOR_TIMER
22	bool
23
24config DW_APB_TIMER
25	bool
26
27config DW_APB_TIMER_OF
28	bool
29	select DW_APB_TIMER
30	select CLKSRC_OF
31
32config ROCKCHIP_TIMER
33	bool
34	select CLKSRC_OF
35
36config ARMADA_370_XP_TIMER
37	bool
38	select CLKSRC_OF
39
40config MESON6_TIMER
41	bool
42	select CLKSRC_MMIO
43
44config ORION_TIMER
45	select CLKSRC_OF
46	select CLKSRC_MMIO
47	bool
48
49config SUN4I_TIMER
50	select CLKSRC_MMIO
51	bool
52
53config SUN5I_HSTIMER
54	select CLKSRC_MMIO
55	bool
56
57config TEGRA_TIMER
58	bool
59
60config VT8500_TIMER
61	bool
62
63config CADENCE_TTC_TIMER
64	bool
65
66config ASM9260_TIMER
67	bool
68	select CLKSRC_MMIO
69	select CLKSRC_OF
70
71config CLKSRC_NOMADIK_MTU
72	bool
73	depends on (ARCH_NOMADIK || ARCH_U8500)
74	select CLKSRC_MMIO
75	help
76	  Support for Multi Timer Unit. MTU provides access
77	  to multiple interrupt generating programmable
78	  32-bit free running decrementing counters.
79
80config CLKSRC_NOMADIK_MTU_SCHED_CLOCK
81	bool
82	depends on CLKSRC_NOMADIK_MTU
83	help
84	  Use the Multi Timer Unit as the sched_clock.
85
86config CLKSRC_DBX500_PRCMU
87	bool "Clocksource PRCMU Timer"
88	depends on UX500_SOC_DB8500
89	default y
90	help
91	  Use the always on PRCMU Timer as clocksource
92
93config CLKSRC_DBX500_PRCMU_SCHED_CLOCK
94	bool "Clocksource PRCMU Timer sched_clock"
95	depends on (CLKSRC_DBX500_PRCMU && !CLKSRC_NOMADIK_MTU_SCHED_CLOCK)
96	default y
97	help
98	  Use the always on PRCMU Timer as sched_clock
99
100config CLKSRC_EFM32
101	bool "Clocksource for Energy Micro's EFM32 SoCs" if !ARCH_EFM32
102	depends on OF && ARM && (ARCH_EFM32 || COMPILE_TEST)
103	select CLKSRC_MMIO
104	default ARCH_EFM32
105	help
106	  Support to use the timers of EFM32 SoCs as clock source and clock
107	  event device.
108
109config ARM_ARCH_TIMER
110	bool
111	select CLKSRC_OF if OF
112
113config ARM_ARCH_TIMER_EVTSTREAM
114	bool "Support for ARM architected timer event stream generation"
115	default y if ARM_ARCH_TIMER
116	depends on ARM_ARCH_TIMER
117	help
118	  This option enables support for event stream generation based on
119	  the ARM architected timer. It is used for waking up CPUs executing
120	  the wfe instruction at a frequency represented as a power-of-2
121	  divisor of the clock rate.
122	  The main use of the event stream is wfe-based timeouts of userspace
123	  locking implementations. It might also be useful for imposing timeout
124	  on wfe to safeguard against any programming errors in case an expected
125	  event is not generated.
126	  This must be disabled for hardware validation purposes to detect any
127	  hardware anomalies of missing events.
128
129config ARM_GLOBAL_TIMER
130	bool
131	select CLKSRC_OF if OF
132	help
133	  This options enables support for the ARM global timer unit
134
135config CLKSRC_ARM_GLOBAL_TIMER_SCHED_CLOCK
136	bool
137	depends on ARM_GLOBAL_TIMER
138	default y
139	help
140	 Use ARM global timer clock source as sched_clock
141
142config ATMEL_PIT
143	select CLKSRC_OF if OF
144	def_bool SOC_AT91SAM9 || SOC_SAMA5
145
146config ATMEL_ST
147	bool
148	select CLKSRC_OF
149	select MFD_SYSCON
150
151config CLKSRC_METAG_GENERIC
152	def_bool y if METAG
153	help
154	  This option enables support for the Meta per-thread timers.
155
156config CLKSRC_EXYNOS_MCT
157	def_bool y if ARCH_EXYNOS
158	depends on !ARM64
159	help
160	  Support for Multi Core Timer controller on Exynos SoCs.
161
162config CLKSRC_SAMSUNG_PWM
163	bool
164	help
165	  This is a new clocksource driver for the PWM timer found in
166	  Samsung S3C, S5P and Exynos SoCs, replacing an earlier driver
167	  for all devicetree enabled platforms. This driver will be
168	  needed only on systems that do not have the Exynos MCT available.
169
170config FSL_FTM_TIMER
171	bool
172	help
173	  Support for Freescale FlexTimer Module (FTM) timer.
174
175config VF_PIT_TIMER
176	bool
177	help
178	  Support for Period Interrupt Timer on Freescale Vybrid Family SoCs.
179
180config SYS_SUPPORTS_SH_CMT
181        bool
182
183config MTK_TIMER
184	select CLKSRC_OF
185	select CLKSRC_MMIO
186	bool
187
188config SYS_SUPPORTS_SH_MTU2
189        bool
190
191config SYS_SUPPORTS_SH_TMU
192        bool
193
194config SYS_SUPPORTS_EM_STI
195        bool
196
197config SH_TIMER_CMT
198	bool "Renesas CMT timer driver" if COMPILE_TEST
199	depends on GENERIC_CLOCKEVENTS
200	depends on HAS_IOMEM
201	default SYS_SUPPORTS_SH_CMT
202	help
203	  This enables build of a clocksource and clockevent driver for
204	  the Compare Match Timer (CMT) hardware available in 16/32/48-bit
205	  variants on a wide range of Mobile and Automotive SoCs from Renesas.
206
207config SH_TIMER_MTU2
208	bool "Renesas MTU2 timer driver" if COMPILE_TEST
209	depends on GENERIC_CLOCKEVENTS
210	depends on HAS_IOMEM
211	default SYS_SUPPORTS_SH_MTU2
212	help
213	  This enables build of a clockevent driver for the Multi-Function
214	  Timer Pulse Unit 2 (MTU2) hardware available on SoCs from Renesas.
215	  This hardware comes with 16 bit-timer registers.
216
217config SH_TIMER_TMU
218	bool "Renesas TMU timer driver" if COMPILE_TEST
219	depends on GENERIC_CLOCKEVENTS
220	depends on HAS_IOMEM
221	default SYS_SUPPORTS_SH_TMU
222	help
223	  This enables build of a clocksource and clockevent driver for
224	  the 32-bit Timer Unit (TMU) hardware available on a wide range
225	  SoCs from Renesas.
226
227config EM_TIMER_STI
228	bool "Renesas STI timer driver" if COMPILE_TEST
229	depends on GENERIC_CLOCKEVENTS && HAS_IOMEM
230	default SYS_SUPPORTS_EM_STI
231	help
232	  This enables build of a clocksource and clockevent driver for
233	  the 48-bit System Timer (STI) hardware available on a SoCs
234	  such as EMEV2 from former NEC Electronics.
235
236config CLKSRC_QCOM
237	bool
238
239config CLKSRC_VERSATILE
240	bool "ARM Versatile (Express) reference platforms clock source"
241	depends on PLAT_VERSATILE && GENERIC_SCHED_CLOCK && !ARCH_USES_GETTIMEOFFSET
242	select CLKSRC_OF
243	default y if MFD_VEXPRESS_SYSREG
244	help
245	  This option enables clock source based on free running
246	  counter available in the "System Registers" block of
247	  ARM Versatile, RealView and Versatile Express reference
248	  platforms.
249
250config CLKSRC_MIPS_GIC
251	bool
252	depends on MIPS_GIC
253	select CLKSRC_OF
254
255config CLKSRC_PXA
256	def_bool y if ARCH_PXA || ARCH_SA1100
257	select CLKSRC_OF if USE_OF
258	help
259	  This enables OST0 support available on PXA and SA-11x0
260	  platforms.
261endmenu
262