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