xref: /openbmc/linux/drivers/clocksource/Kconfig (revision 4f6cce39)
1menu "Clock Source drivers"
2	depends on !ARCH_USES_GETTIMEOFFSET
3
4config CLKSRC_OF
5	bool
6	select CLKSRC_PROBE
7
8config CLKEVT_OF
9	bool
10	select CLKEVT_PROBE
11
12config CLKSRC_ACPI
13	bool
14	select CLKSRC_PROBE
15
16config CLKSRC_PROBE
17	bool
18
19config CLKEVT_PROBE
20	bool
21
22config CLKSRC_I8253
23	bool
24
25config CLKEVT_I8253
26	bool
27
28config I8253_LOCK
29	bool
30
31config CLKBLD_I8253
32	def_bool y if CLKSRC_I8253 || CLKEVT_I8253 || I8253_LOCK
33
34config CLKSRC_MMIO
35	bool
36
37config BCM2835_TIMER
38	bool "BCM2835 timer driver" if COMPILE_TEST
39	depends on GENERIC_CLOCKEVENTS
40	select CLKSRC_MMIO
41	help
42	  Enables the support for the BCM2835 timer driver.
43
44config BCM_KONA_TIMER
45	bool "BCM mobile timer driver" if COMPILE_TEST
46	depends on GENERIC_CLOCKEVENTS
47	select CLKSRC_MMIO
48	help
49	  Enables the support for the BCM Kona mobile timer driver.
50
51config DIGICOLOR_TIMER
52	bool "Digicolor timer driver" if COMPILE_TEST
53	depends on GENERIC_CLOCKEVENTS
54	select CLKSRC_MMIO
55	depends on HAS_IOMEM
56	help
57	  Enables the support for the digicolor timer driver.
58
59config DW_APB_TIMER
60	bool "DW APB timer driver" if COMPILE_TEST
61	depends on GENERIC_CLOCKEVENTS
62	help
63	  Enables the support for the dw_apb timer.
64
65config DW_APB_TIMER_OF
66	bool
67	select DW_APB_TIMER
68	select CLKSRC_OF
69
70config GEMINI_TIMER
71	bool "Cortina Gemini timer driver" if COMPILE_TEST
72	depends on GENERIC_CLOCKEVENTS
73	depends on HAS_IOMEM
74	select CLKSRC_MMIO
75	select CLKSRC_OF
76	select MFD_SYSCON
77	help
78	  Enables support for the Gemini timer
79
80config ROCKCHIP_TIMER
81	bool "Rockchip timer driver" if COMPILE_TEST
82	depends on ARM || ARM64
83	select CLKSRC_OF
84	help
85	  Enables the support for the rockchip timer driver.
86
87config ARMADA_370_XP_TIMER
88	bool "Armada 370 and XP timer driver" if COMPILE_TEST
89	depends on ARM
90	select CLKSRC_OF
91	select CLKSRC_MMIO
92	help
93	  Enables the support for the Armada 370 and XP timer driver.
94
95config MESON6_TIMER
96	bool "Meson6 timer driver" if COMPILE_TEST
97	depends on GENERIC_CLOCKEVENTS
98	select CLKSRC_MMIO
99	help
100	  Enables the support for the Meson6 timer driver.
101
102config ORION_TIMER
103	bool "Orion timer driver" if COMPILE_TEST
104	depends on ARM
105	select CLKSRC_OF
106	select CLKSRC_MMIO
107	help
108	  Enables the support for the Orion timer driver
109
110config SUN4I_TIMER
111	bool "Sun4i timer driver" if COMPILE_TEST
112	depends on GENERIC_CLOCKEVENTS
113	depends on HAS_IOMEM
114	select CLKSRC_MMIO
115	help
116	  Enables support for the Sun4i timer.
117
118config SUN5I_HSTIMER
119	bool "Sun5i timer driver" if COMPILE_TEST
120	select CLKSRC_MMIO
121	depends on COMMON_CLK
122	help
123	  Enables support the Sun5i timer.
124
125config TEGRA_TIMER
126	bool "Tegra timer driver" if COMPILE_TEST
127	select CLKSRC_MMIO
128	depends on ARM
129	help
130	  Enables support for the Tegra driver.
131
132config VT8500_TIMER
133	bool "VT8500 timer driver" if COMPILE_TEST
134	depends on GENERIC_CLOCKEVENTS
135	depends on HAS_IOMEM
136	help
137	  Enables support for the VT8500 driver.
138
139config CADENCE_TTC_TIMER
140	bool "Cadence TTC timer driver" if COMPILE_TEST
141	depends on COMMON_CLK
142	help
143	  Enables support for the cadence ttc driver.
144
145config ASM9260_TIMER
146	bool "ASM9260 timer driver" if COMPILE_TEST
147	depends on GENERIC_CLOCKEVENTS
148	select CLKSRC_MMIO
149	select CLKSRC_OF
150	help
151	  Enables support for the ASM9260 timer.
152
153config CLKSRC_NOMADIK_MTU
154	bool "Nomakdik clocksource driver" if COMPILE_TEST
155	depends on ARM
156	select CLKSRC_MMIO
157	help
158	  Support for Multi Timer Unit. MTU provides access
159	  to multiple interrupt generating programmable
160	  32-bit free running decrementing counters.
161
162config CLKSRC_NOMADIK_MTU_SCHED_CLOCK
163	bool
164	depends on CLKSRC_NOMADIK_MTU
165	help
166	  Use the Multi Timer Unit as the sched_clock.
167
168config CLKSRC_DBX500_PRCMU
169	bool "Clocksource PRCMU Timer" if COMPILE_TEST
170	depends on GENERIC_CLOCKEVENTS
171	depends on HAS_IOMEM
172	help
173	  Use the always on PRCMU Timer as clocksource
174
175config CLPS711X_TIMER
176	bool "Cirrus logic timer driver" if COMPILE_TEST
177	depends on GENERIC_CLOCKEVENTS
178	select CLKSRC_MMIO
179	help
180	  Enables support for the Cirrus Logic PS711 timer.
181
182config ATLAS7_TIMER
183	bool "Atlas7 timer driver" if COMPILE_TEST
184	depends on GENERIC_CLOCKEVENTS
185	select CLKSRC_MMIO
186	help
187	  Enables support for the Atlas7 timer.
188
189config MOXART_TIMER
190	bool "Moxart timer driver" if COMPILE_TEST
191	depends on GENERIC_CLOCKEVENTS
192	select CLKSRC_MMIO
193	help
194	  Enables support for the Moxart timer.
195
196config MXS_TIMER
197	bool "Mxs timer driver" if COMPILE_TEST
198	depends on GENERIC_CLOCKEVENTS
199	select CLKSRC_MMIO
200	select STMP_DEVICE
201	help
202	  Enables support for the Mxs timer.
203
204config PRIMA2_TIMER
205	bool "Prima2 timer driver" if COMPILE_TEST
206	depends on GENERIC_CLOCKEVENTS
207	select CLKSRC_MMIO
208	help
209	  Enables support for the Prima2 timer.
210
211config U300_TIMER
212	bool "U300 timer driver" if COMPILE_TEST
213	depends on GENERIC_CLOCKEVENTS
214	depends on ARM
215	select CLKSRC_MMIO
216	help
217	  Enables support for the U300 timer.
218
219config NSPIRE_TIMER
220	bool "NSpire timer driver" if COMPILE_TEST
221	depends on GENERIC_CLOCKEVENTS
222	select CLKSRC_MMIO
223	help
224	  Enables support for the Nspire timer.
225
226config KEYSTONE_TIMER
227	bool "Keystone timer driver" if COMPILE_TEST
228	depends on GENERIC_CLOCKEVENTS
229	depends on ARM || ARM64
230	select CLKSRC_MMIO
231	help
232	  Enables support for the Keystone timer.
233
234config INTEGRATOR_AP_TIMER
235	bool "Integrator-ap timer driver" if COMPILE_TEST
236	depends on GENERIC_CLOCKEVENTS
237	select CLKSRC_MMIO
238	help
239	  Enables support for the Integrator-ap timer.
240
241config CLKSRC_DBX500_PRCMU_SCHED_CLOCK
242	bool "Clocksource PRCMU Timer sched_clock"
243	depends on (CLKSRC_DBX500_PRCMU && !CLKSRC_NOMADIK_MTU_SCHED_CLOCK)
244	default y
245	help
246	  Use the always on PRCMU Timer as sched_clock
247
248config CLKSRC_EFM32
249	bool "Clocksource for Energy Micro's EFM32 SoCs" if !ARCH_EFM32
250	depends on OF && ARM && (ARCH_EFM32 || COMPILE_TEST)
251	select CLKSRC_MMIO
252	default ARCH_EFM32
253	help
254	  Support to use the timers of EFM32 SoCs as clock source and clock
255	  event device.
256
257config CLKSRC_LPC32XX
258	bool "Clocksource for LPC32XX" if COMPILE_TEST
259	depends on GENERIC_CLOCKEVENTS && HAS_IOMEM
260	depends on ARM
261	select CLKSRC_MMIO
262	select CLKSRC_OF
263	help
264	  Support for the LPC32XX clocksource.
265
266config CLKSRC_PISTACHIO
267	bool "Clocksource for Pistachio SoC" if COMPILE_TEST
268	depends on HAS_IOMEM
269	select CLKSRC_OF
270	help
271	  Enables the clocksource for the Pistachio SoC.
272
273config CLKSRC_TI_32K
274	bool "Texas Instruments 32.768 Hz Clocksource" if COMPILE_TEST
275	depends on GENERIC_SCHED_CLOCK
276	select CLKSRC_OF if OF
277	help
278	  This option enables support for Texas Instruments 32.768 Hz clocksource
279	  available on many OMAP-like platforms.
280
281config CLKSRC_NPS
282	bool "NPS400 clocksource driver" if COMPILE_TEST
283	depends on !PHYS_ADDR_T_64BIT
284	select CLKSRC_MMIO
285	select CLKSRC_OF if OF
286	help
287	  NPS400 clocksource support.
288	  Got 64 bit counter with update rate up to 1000MHz.
289	  This counter is accessed via couple of 32 bit memory mapped registers.
290
291config CLKSRC_STM32
292	bool "Clocksource for STM32 SoCs" if !ARCH_STM32
293	depends on OF && ARM && (ARCH_STM32 || COMPILE_TEST)
294	select CLKSRC_MMIO
295
296config CLKSRC_MPS2
297	bool "Clocksource for MPS2 SoCs" if COMPILE_TEST
298	depends on GENERIC_SCHED_CLOCK
299	select CLKSRC_MMIO
300	select CLKSRC_OF
301
302config ARC_TIMERS
303	bool "Support for 32-bit TIMERn counters in ARC Cores" if COMPILE_TEST
304	depends on GENERIC_CLOCKEVENTS
305	select CLKSRC_OF
306	help
307	  These are legacy 32-bit TIMER0 and TIMER1 counters found on all ARC cores
308	  (ARC700 as well as ARC HS38).
309	  TIMER0 serves as clockevent while TIMER1 provides clocksource
310
311config ARC_TIMERS_64BIT
312	bool "Support for 64-bit counters in ARC HS38 cores" if COMPILE_TEST
313	depends on GENERIC_CLOCKEVENTS
314	depends on ARC_TIMERS
315	select CLKSRC_OF
316	help
317	  This enables 2 different 64-bit timers: RTC (for UP) and GFRC (for SMP)
318	  RTC is implemented inside the core, while GFRC sits outside the core in
319	  ARConnect IP block. Driver automatically picks one of them for clocksource
320	  as appropriate.
321
322config ARM_ARCH_TIMER
323	bool
324	select CLKSRC_OF if OF
325	select CLKSRC_ACPI if ACPI
326
327config ARM_ARCH_TIMER_EVTSTREAM
328	bool "Enable ARM architected timer event stream generation by default"
329	default y if ARM_ARCH_TIMER
330	depends on ARM_ARCH_TIMER
331	help
332	  This option enables support by default for event stream generation
333	  based on the ARM architected timer. It is used for waking up CPUs
334	  executing the wfe instruction at a frequency represented as a
335	  power-of-2 divisor of the clock rate. The behaviour can also be
336	  overridden on the command line using the
337	  clocksource.arm_arch_timer.evtstream parameter.
338	  The main use of the event stream is wfe-based timeouts of userspace
339	  locking implementations. It might also be useful for imposing timeout
340	  on wfe to safeguard against any programming errors in case an expected
341	  event is not generated.
342	  This must be disabled for hardware validation purposes to detect any
343	  hardware anomalies of missing events.
344
345config ARM_ARCH_TIMER_OOL_WORKAROUND
346	bool
347
348config FSL_ERRATUM_A008585
349	bool "Workaround for Freescale/NXP Erratum A-008585"
350	default y
351	depends on ARM_ARCH_TIMER && ARM64
352	select ARM_ARCH_TIMER_OOL_WORKAROUND
353	help
354	  This option enables a workaround for Freescale/NXP Erratum
355	  A-008585 ("ARM generic timer may contain an erroneous
356	  value").  The workaround will only be active if the
357	  fsl,erratum-a008585 property is found in the timer node.
358
359config HISILICON_ERRATUM_161010101
360	bool "Workaround for Hisilicon Erratum 161010101"
361	default y
362	select ARM_ARCH_TIMER_OOL_WORKAROUND
363	depends on ARM_ARCH_TIMER && ARM64
364	help
365	  This option enables a workaround for Hisilicon Erratum
366	  161010101. The workaround will be active if the hisilicon,erratum-161010101
367	  property is found in the timer node.
368
369config ARM_GLOBAL_TIMER
370	bool "Support for the ARM global timer" if COMPILE_TEST
371	select CLKSRC_OF if OF
372	depends on ARM
373	help
374	  This options enables support for the ARM global timer unit
375
376config ARM_TIMER_SP804
377	bool "Support for Dual Timer SP804 module"
378	depends on GENERIC_SCHED_CLOCK && CLKDEV_LOOKUP
379	select CLKSRC_MMIO
380	select CLKSRC_OF if OF
381
382config CLKSRC_ARM_GLOBAL_TIMER_SCHED_CLOCK
383	bool
384	depends on ARM_GLOBAL_TIMER
385	default y
386	help
387	 Use ARM global timer clock source as sched_clock
388
389config ARMV7M_SYSTICK
390	bool "Support for the ARMv7M system time" if COMPILE_TEST
391	select CLKSRC_OF if OF
392	select CLKSRC_MMIO
393	help
394	  This options enables support for the ARMv7M system timer unit
395
396config ATMEL_PIT
397	select CLKSRC_OF if OF
398	def_bool SOC_AT91SAM9 || SOC_SAMA5
399
400config ATMEL_ST
401	bool "Atmel ST timer support" if COMPILE_TEST
402	depends on GENERIC_CLOCKEVENTS
403	select CLKSRC_OF
404	select MFD_SYSCON
405	help
406	  Support for the Atmel ST timer.
407
408config CLKSRC_METAG_GENERIC
409	def_bool y if METAG
410	help
411	  This option enables support for the Meta per-thread timers.
412
413config CLKSRC_EXYNOS_MCT
414	bool "Exynos multi core timer driver" if COMPILE_TEST
415	depends on ARM || ARM64
416	help
417	  Support for Multi Core Timer controller on Exynos SoCs.
418
419config CLKSRC_SAMSUNG_PWM
420	bool "PWM timer driver for Samsung S3C, S5P" if COMPILE_TEST
421	depends on GENERIC_CLOCKEVENTS
422	depends on HAS_IOMEM
423	help
424	  This is a new clocksource driver for the PWM timer found in
425	  Samsung S3C, S5P and Exynos SoCs, replacing an earlier driver
426	  for all devicetree enabled platforms. This driver will be
427	  needed only on systems that do not have the Exynos MCT available.
428
429config FSL_FTM_TIMER
430	bool "Freescale FlexTimer Module driver" if COMPILE_TEST
431	depends on GENERIC_CLOCKEVENTS
432	depends on HAS_IOMEM
433	select CLKSRC_MMIO
434	help
435	  Support for Freescale FlexTimer Module (FTM) timer.
436
437config VF_PIT_TIMER
438	bool
439	select CLKSRC_MMIO
440	help
441	  Support for Period Interrupt Timer on Freescale Vybrid Family SoCs.
442
443config OXNAS_RPS_TIMER
444	bool "Oxford Semiconductor OXNAS RPS Timers driver" if COMPILE_TEST
445	depends on GENERIC_CLOCKEVENTS
446	select CLKSRC_OF
447	select CLKSRC_MMIO
448	help
449	  This enables support for the Oxford Semiconductor OXNAS RPS timers.
450
451config SYS_SUPPORTS_SH_CMT
452        bool
453
454config MTK_TIMER
455	bool "Mediatek timer driver" if COMPILE_TEST
456	depends on GENERIC_CLOCKEVENTS && HAS_IOMEM
457	select CLKSRC_OF
458	select CLKSRC_MMIO
459	help
460	  Support for Mediatek timer driver.
461
462config SYS_SUPPORTS_SH_MTU2
463        bool
464
465config SYS_SUPPORTS_SH_TMU
466        bool
467
468config SYS_SUPPORTS_EM_STI
469        bool
470
471config CLKSRC_JCORE_PIT
472	bool "J-Core PIT timer driver" if COMPILE_TEST
473	depends on OF
474	depends on GENERIC_CLOCKEVENTS
475	depends on HAS_IOMEM
476	select CLKSRC_MMIO
477	help
478	  This enables build of clocksource and clockevent driver for
479	  the integrated PIT in the J-Core synthesizable, open source SoC.
480
481config SH_TIMER_CMT
482	bool "Renesas CMT timer driver" if COMPILE_TEST
483	depends on GENERIC_CLOCKEVENTS
484	depends on HAS_IOMEM
485	default SYS_SUPPORTS_SH_CMT
486	help
487	  This enables build of a clocksource and clockevent driver for
488	  the Compare Match Timer (CMT) hardware available in 16/32/48-bit
489	  variants on a wide range of Mobile and Automotive SoCs from Renesas.
490
491config SH_TIMER_MTU2
492	bool "Renesas MTU2 timer driver" if COMPILE_TEST
493	depends on GENERIC_CLOCKEVENTS
494	depends on HAS_IOMEM
495	default SYS_SUPPORTS_SH_MTU2
496	help
497	  This enables build of a clockevent driver for the Multi-Function
498	  Timer Pulse Unit 2 (MTU2) hardware available on SoCs from Renesas.
499	  This hardware comes with 16 bit-timer registers.
500
501config RENESAS_OSTM
502	bool "Renesas OSTM timer driver" if COMPILE_TEST
503	depends on GENERIC_CLOCKEVENTS
504	select CLKSRC_MMIO
505	help
506	  Enables the support for the Renesas OSTM.
507
508config SH_TIMER_TMU
509	bool "Renesas TMU timer driver" if COMPILE_TEST
510	depends on GENERIC_CLOCKEVENTS
511	depends on HAS_IOMEM
512	default SYS_SUPPORTS_SH_TMU
513	help
514	  This enables build of a clocksource and clockevent driver for
515	  the 32-bit Timer Unit (TMU) hardware available on a wide range
516	  SoCs from Renesas.
517
518config EM_TIMER_STI
519	bool "Renesas STI timer driver" if COMPILE_TEST
520	depends on GENERIC_CLOCKEVENTS && HAS_IOMEM
521	default SYS_SUPPORTS_EM_STI
522	help
523	  This enables build of a clocksource and clockevent driver for
524	  the 48-bit System Timer (STI) hardware available on a SoCs
525	  such as EMEV2 from former NEC Electronics.
526
527config CLKSRC_QCOM
528	bool "Qualcomm MSM timer" if COMPILE_TEST
529	depends on ARM
530	select CLKSRC_OF
531	help
532	  This enables the clocksource and the per CPU clockevent driver for the
533	  Qualcomm SoCs.
534
535config CLKSRC_VERSATILE
536	bool "ARM Versatile (Express) reference platforms clock source" if COMPILE_TEST
537	depends on GENERIC_SCHED_CLOCK && !ARCH_USES_GETTIMEOFFSET
538	select CLKSRC_OF
539	default y if MFD_VEXPRESS_SYSREG
540	help
541	  This option enables clock source based on free running
542	  counter available in the "System Registers" block of
543	  ARM Versatile, RealView and Versatile Express reference
544	  platforms.
545
546config CLKSRC_MIPS_GIC
547	bool
548	depends on MIPS_GIC
549	select CLKSRC_OF
550
551config CLKSRC_TANGO_XTAL
552	bool "Clocksource for Tango SoC" if COMPILE_TEST
553	depends on ARM
554	select CLKSRC_OF
555	select CLKSRC_MMIO
556	help
557	  This enables the clocksource for Tango SoC
558
559config CLKSRC_PXA
560	bool "Clocksource for PXA or SA-11x0 platform" if COMPILE_TEST
561	depends on GENERIC_CLOCKEVENTS
562	depends on HAS_IOMEM
563	select CLKSRC_MMIO
564	help
565	  This enables OST0 support available on PXA and SA-11x0
566	  platforms.
567
568config H8300_TMR8
569        bool "Clockevent timer for the H8300 platform" if COMPILE_TEST
570        depends on GENERIC_CLOCKEVENTS && HAS_IOMEM
571	help
572	  This enables the 8 bits timer for the H8300 platform.
573
574config H8300_TMR16
575        bool "Clockevent timer for the H83069 platform" if COMPILE_TEST
576        depends on GENERIC_CLOCKEVENTS && HAS_IOMEM
577	help
578	  This enables the 16 bits timer for the H8300 platform with the
579	  H83069 cpu.
580
581config H8300_TPU
582        bool "Clocksource for the H8300 platform" if COMPILE_TEST
583        depends on GENERIC_CLOCKEVENTS && HAS_IOMEM
584	help
585	  This enables the clocksource for the H8300 platform with the
586	  H8S2678 cpu.
587
588config CLKSRC_IMX_GPT
589	bool "Clocksource using i.MX GPT" if COMPILE_TEST
590	depends on ARM && CLKDEV_LOOKUP
591	select CLKSRC_MMIO
592
593config CLKSRC_ST_LPC
594	bool "Low power clocksource found in the LPC" if COMPILE_TEST
595	select CLKSRC_OF if OF
596	depends on HAS_IOMEM
597	select CLKSRC_MMIO
598	help
599	  Enable this option to use the Low Power controller timer
600	  as clocksource.
601
602endmenu
603