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