xref: /linux/drivers/clocksource/Kconfig (revision 14340de506c9aa08baa9540ee6250c9d978c16b7)
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 IXP4XX_TIMER
73	bool "Intel XScale IXP4xx timer driver" if COMPILE_TEST
74	depends on HAS_IOMEM
75	select CLKSRC_MMIO
76	help
77	  Enables support for the Intel XScale IXP4xx SoC timer.
78
79config ROCKCHIP_TIMER
80	bool "Rockchip timer driver" if COMPILE_TEST
81	depends on ARM || ARM64
82	select TIMER_OF
83	select CLKSRC_MMIO
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 TIMER_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	select CLKSRC_MMIO
98	help
99	  Enables the support for the Meson6 timer driver.
100
101config ORION_TIMER
102	bool "Orion timer driver" if COMPILE_TEST
103	depends on ARM
104	select TIMER_OF
105	select CLKSRC_MMIO
106	help
107	  Enables the support for the Orion timer driver
108
109config OWL_TIMER
110	bool "Owl timer driver" if COMPILE_TEST
111	select CLKSRC_MMIO
112	help
113	  Enables the support for the Actions Semi Owl timer driver.
114
115config RDA_TIMER
116	bool "RDA timer driver" if COMPILE_TEST
117	depends on GENERIC_CLOCKEVENTS
118	select CLKSRC_MMIO
119	select TIMER_OF
120	help
121	  Enables the support for the RDA Micro timer driver.
122
123config SUN4I_TIMER
124	bool "Sun4i timer driver" if COMPILE_TEST
125	depends on HAS_IOMEM
126	select CLKSRC_MMIO
127	select TIMER_OF
128	help
129	  Enables support for the Sun4i timer.
130
131config SUN5I_HSTIMER
132	bool "Sun5i timer driver" if COMPILE_TEST
133	select CLKSRC_MMIO
134	depends on COMMON_CLK
135	help
136	  Enables support the Sun5i timer.
137
138config TEGRA_TIMER
139	bool "Tegra timer driver" if COMPILE_TEST
140	select CLKSRC_MMIO
141	select TIMER_OF
142	depends on ARM || ARM64
143	help
144	  Enables support for the Tegra driver.
145
146config VT8500_TIMER
147	bool "VT8500 timer driver" if COMPILE_TEST
148	depends on HAS_IOMEM
149	help
150	  Enables support for the VT8500 driver.
151
152config NPCM7XX_TIMER
153	bool "NPCM7xx timer driver" if COMPILE_TEST
154	depends on HAS_IOMEM
155	select TIMER_OF
156	select CLKSRC_MMIO
157	help
158	  Enable 24-bit TIMER0 and TIMER1 counters in the NPCM7xx architecture,
159	  While TIMER0 serves as clockevent and TIMER1 serves as clocksource.
160
161config CADENCE_TTC_TIMER
162	bool "Cadence TTC timer driver" if COMPILE_TEST
163	depends on COMMON_CLK
164	help
165	  Enables support for the cadence ttc driver.
166
167config ASM9260_TIMER
168	bool "ASM9260 timer driver" if COMPILE_TEST
169	select CLKSRC_MMIO
170	select TIMER_OF
171	help
172	  Enables support for the ASM9260 timer.
173
174config CLKSRC_NOMADIK_MTU
175	bool "Nomakdik clocksource driver" if COMPILE_TEST
176	depends on ARM
177	select CLKSRC_MMIO
178	help
179	  Support for Multi Timer Unit. MTU provides access
180	  to multiple interrupt generating programmable
181	  32-bit free running decrementing counters.
182
183config CLKSRC_DBX500_PRCMU
184	bool "Clocksource PRCMU Timer" if COMPILE_TEST
185	depends on HAS_IOMEM
186	help
187	  Use the always on PRCMU Timer as clocksource
188
189config CLPS711X_TIMER
190	bool "Cirrus logic timer driver" if COMPILE_TEST
191	select CLKSRC_MMIO
192	help
193	  Enables support for the Cirrus Logic PS711 timer.
194
195config ATLAS7_TIMER
196	bool "Atlas7 timer driver" if COMPILE_TEST
197	select CLKSRC_MMIO
198	help
199	  Enables support for the Atlas7 timer.
200
201config MXS_TIMER
202	bool "Mxs timer driver" if COMPILE_TEST
203	select CLKSRC_MMIO
204	select STMP_DEVICE
205	help
206	  Enables support for the Mxs timer.
207
208config PRIMA2_TIMER
209	bool "Prima2 timer driver" if COMPILE_TEST
210	select CLKSRC_MMIO
211	help
212	  Enables support for the Prima2 timer.
213
214config U300_TIMER
215	bool "U300 timer driver" if COMPILE_TEST
216	depends on ARM
217	select CLKSRC_MMIO
218	help
219	  Enables support for the U300 timer.
220
221config NSPIRE_TIMER
222	bool "NSpire timer driver" if COMPILE_TEST
223	select CLKSRC_MMIO
224	help
225	  Enables support for the Nspire timer.
226
227config KEYSTONE_TIMER
228	bool "Keystone timer driver" if COMPILE_TEST
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	select CLKSRC_MMIO
237	help
238	  Enables support for the Integrator-ap timer.
239
240config CLKSRC_EFM32
241	bool "Clocksource for Energy Micro's EFM32 SoCs" if !ARCH_EFM32
242	depends on OF && ARM && (ARCH_EFM32 || COMPILE_TEST)
243	select CLKSRC_MMIO
244	default ARCH_EFM32
245	help
246	  Support to use the timers of EFM32 SoCs as clock source and clock
247	  event device.
248
249config CLKSRC_LPC32XX
250	bool "Clocksource for LPC32XX" if COMPILE_TEST
251	depends on HAS_IOMEM
252	depends on ARM
253	select CLKSRC_MMIO
254	select TIMER_OF
255	help
256	  Support for the LPC32XX clocksource.
257
258config CLKSRC_PISTACHIO
259	bool "Clocksource for Pistachio SoC" if COMPILE_TEST
260	depends on HAS_IOMEM
261	select TIMER_OF
262	help
263	  Enables the clocksource for the Pistachio SoC.
264
265config CLKSRC_TI_32K
266	bool "Texas Instruments 32.768 Hz Clocksource" if COMPILE_TEST
267	depends on GENERIC_SCHED_CLOCK
268	select TIMER_OF if OF
269	help
270	  This option enables support for Texas Instruments 32.768 Hz clocksource
271	  available on many OMAP-like platforms.
272
273config CLKSRC_NPS
274	bool "NPS400 clocksource driver" if COMPILE_TEST
275	depends on !PHYS_ADDR_T_64BIT
276	select CLKSRC_MMIO
277	select TIMER_OF if OF
278	help
279	  NPS400 clocksource support.
280	  Got 64 bit counter with update rate up to 1000MHz.
281	  This counter is accessed via couple of 32 bit memory mapped registers.
282
283config CLKSRC_STM32
284	bool "Clocksource for STM32 SoCs" if !ARCH_STM32
285	depends on OF && ARM && (ARCH_STM32 || COMPILE_TEST)
286	select CLKSRC_MMIO
287	select TIMER_OF
288
289config CLKSRC_MPS2
290	bool "Clocksource for MPS2 SoCs" if COMPILE_TEST
291	depends on GENERIC_SCHED_CLOCK
292	select CLKSRC_MMIO
293	select TIMER_OF
294
295config ARC_TIMERS
296	bool "Support for 32-bit TIMERn counters in ARC Cores" if COMPILE_TEST
297	depends on GENERIC_SCHED_CLOCK
298	select TIMER_OF
299	help
300	  These are legacy 32-bit TIMER0 and TIMER1 counters found on all ARC cores
301	  (ARC700 as well as ARC HS38).
302	  TIMER0 serves as clockevent while TIMER1 provides clocksource
303
304config ARC_TIMERS_64BIT
305	bool "Support for 64-bit counters in ARC HS38 cores" if COMPILE_TEST
306	depends on ARC_TIMERS
307	select TIMER_OF
308	help
309	  This enables 2 different 64-bit timers: RTC (for UP) and GFRC (for SMP)
310	  RTC is implemented inside the core, while GFRC sits outside the core in
311	  ARConnect IP block. Driver automatically picks one of them for clocksource
312	  as appropriate.
313
314config ARM_ARCH_TIMER
315	bool
316	select TIMER_OF if OF
317	select TIMER_ACPI if ACPI
318
319config ARM_ARCH_TIMER_EVTSTREAM
320	bool "Enable ARM architected timer event stream generation by default"
321	default y if ARM_ARCH_TIMER
322	depends on ARM_ARCH_TIMER
323	help
324	  This option enables support by default for event stream generation
325	  based on the ARM architected timer. It is used for waking up CPUs
326	  executing the wfe instruction at a frequency represented as a
327	  power-of-2 divisor of the clock rate. The behaviour can also be
328	  overridden on the command line using the
329	  clocksource.arm_arch_timer.evtstream parameter.
330	  The main use of the event stream is wfe-based timeouts of userspace
331	  locking implementations. It might also be useful for imposing timeout
332	  on wfe to safeguard against any programming errors in case an expected
333	  event is not generated.
334	  This must be disabled for hardware validation purposes to detect any
335	  hardware anomalies of missing events.
336
337config ARM_ARCH_TIMER_OOL_WORKAROUND
338	bool
339
340config FSL_ERRATUM_A008585
341	bool "Workaround for Freescale/NXP Erratum A-008585"
342	default y
343	depends on ARM_ARCH_TIMER && ARM64
344	select ARM_ARCH_TIMER_OOL_WORKAROUND
345	help
346	  This option enables a workaround for Freescale/NXP Erratum
347	  A-008585 ("ARM generic timer may contain an erroneous
348	  value").  The workaround will only be active if the
349	  fsl,erratum-a008585 property is found in the timer node.
350
351config HISILICON_ERRATUM_161010101
352	bool "Workaround for Hisilicon Erratum 161010101"
353	default y
354	select ARM_ARCH_TIMER_OOL_WORKAROUND
355	depends on ARM_ARCH_TIMER && ARM64
356	help
357	  This option enables a workaround for Hisilicon Erratum
358	  161010101. The workaround will be active if the hisilicon,erratum-161010101
359	  property is found in the timer node.
360
361config ARM64_ERRATUM_858921
362	bool "Workaround for Cortex-A73 erratum 858921"
363	default y
364	select ARM_ARCH_TIMER_OOL_WORKAROUND
365	depends on ARM_ARCH_TIMER && ARM64
366	help
367	  This option enables a workaround applicable to Cortex-A73
368	  (all versions), whose counter may return incorrect values.
369	  The workaround will be dynamically enabled when an affected
370	  core is detected.
371
372config SUN50I_ERRATUM_UNKNOWN1
373	bool "Workaround for Allwinner A64 erratum UNKNOWN1"
374	default y
375	depends on ARM_ARCH_TIMER && ARM64 && ARCH_SUNXI
376	select ARM_ARCH_TIMER_OOL_WORKAROUND
377	help
378	  This option enables a workaround for instability in the timer on
379	  the Allwinner A64 SoC. The workaround will only be active if the
380	  allwinner,erratum-unknown1 property is found in the timer node.
381
382config ARM_GLOBAL_TIMER
383	bool "Support for the ARM global timer" if COMPILE_TEST
384	select TIMER_OF if OF
385	depends on ARM
386	help
387	  This options enables support for the ARM global timer unit
388
389config ARM_TIMER_SP804
390	bool "Support for Dual Timer SP804 module"
391	depends on GENERIC_SCHED_CLOCK && CLKDEV_LOOKUP
392	select CLKSRC_MMIO
393	select TIMER_OF if OF
394
395config CLKSRC_ARM_GLOBAL_TIMER_SCHED_CLOCK
396	bool
397	depends on ARM_GLOBAL_TIMER
398	default y
399	help
400	 Use ARM global timer clock source as sched_clock
401
402config ARMV7M_SYSTICK
403	bool "Support for the ARMv7M system time" if COMPILE_TEST
404	select TIMER_OF if OF
405	select CLKSRC_MMIO
406	help
407	  This options enables support for the ARMv7M system timer unit
408
409config ATMEL_PIT
410	select TIMER_OF if OF
411	def_bool SOC_AT91SAM9 || SOC_SAMA5
412
413config ATMEL_ST
414	bool "Atmel ST timer support" if COMPILE_TEST
415	depends on HAS_IOMEM
416	select TIMER_OF
417	select MFD_SYSCON
418	help
419	  Support for the Atmel ST timer.
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 HAS_IOMEM
430	help
431	  This is a new clocksource driver for the PWM timer found in
432	  Samsung S3C, S5P and Exynos SoCs, replacing an earlier driver
433	  for all devicetree enabled platforms. This driver will be
434	  needed only on systems that do not have the Exynos MCT available.
435
436config FSL_FTM_TIMER
437	bool "Freescale FlexTimer Module driver" if COMPILE_TEST
438	depends on HAS_IOMEM
439	select CLKSRC_MMIO
440	help
441	  Support for Freescale FlexTimer Module (FTM) timer.
442
443config VF_PIT_TIMER
444	bool
445	select CLKSRC_MMIO
446	help
447	  Support for Period Interrupt Timer on Freescale Vybrid Family SoCs.
448
449config OXNAS_RPS_TIMER
450	bool "Oxford Semiconductor OXNAS RPS Timers driver" if COMPILE_TEST
451	select TIMER_OF
452	select CLKSRC_MMIO
453	help
454	  This enables support for the Oxford Semiconductor OXNAS RPS timers.
455
456config SYS_SUPPORTS_SH_CMT
457        bool
458
459config MTK_TIMER
460	bool "Mediatek timer driver" if COMPILE_TEST
461	depends on HAS_IOMEM
462	select TIMER_OF
463	select CLKSRC_MMIO
464	help
465	  Support for Mediatek timer driver.
466
467config SPRD_TIMER
468	bool "Spreadtrum timer driver" if EXPERT
469	depends on HAS_IOMEM
470	depends on (ARCH_SPRD || COMPILE_TEST)
471	default ARCH_SPRD
472	select TIMER_OF
473	help
474	  Enables support for the Spreadtrum timer driver.
475
476config SYS_SUPPORTS_SH_MTU2
477        bool
478
479config SYS_SUPPORTS_SH_TMU
480        bool
481
482config SYS_SUPPORTS_EM_STI
483        bool
484
485config CLKSRC_JCORE_PIT
486	bool "J-Core PIT timer driver" if COMPILE_TEST
487	depends on OF
488	depends on HAS_IOMEM
489	select CLKSRC_MMIO
490	help
491	  This enables build of clocksource and clockevent driver for
492	  the integrated PIT in the J-Core synthesizable, open source SoC.
493
494config SH_TIMER_CMT
495	bool "Renesas CMT timer driver" if COMPILE_TEST
496	depends on HAS_IOMEM
497	default SYS_SUPPORTS_SH_CMT
498	help
499	  This enables build of a clocksource and clockevent driver for
500	  the Compare Match Timer (CMT) hardware available in 16/32/48-bit
501	  variants on a wide range of Mobile and Automotive SoCs from Renesas.
502
503config SH_TIMER_MTU2
504	bool "Renesas MTU2 timer driver" if COMPILE_TEST
505	depends on HAS_IOMEM
506	default SYS_SUPPORTS_SH_MTU2
507	help
508	  This enables build of a clockevent driver for the Multi-Function
509	  Timer Pulse Unit 2 (MTU2) hardware available on SoCs from Renesas.
510	  This hardware comes with 16 bit-timer registers.
511
512config RENESAS_OSTM
513	bool "Renesas OSTM timer driver" if COMPILE_TEST
514	select CLKSRC_MMIO
515	help
516	  Enables the support for the Renesas OSTM.
517
518config SH_TIMER_TMU
519	bool "Renesas TMU timer driver" if COMPILE_TEST
520	depends on HAS_IOMEM
521	default SYS_SUPPORTS_SH_TMU
522	help
523	  This enables build of a clocksource and clockevent driver for
524	  the 32-bit Timer Unit (TMU) hardware available on a wide range
525	  SoCs from Renesas.
526
527config EM_TIMER_STI
528	bool "Renesas STI timer driver" if COMPILE_TEST
529	depends on HAS_IOMEM
530	default SYS_SUPPORTS_EM_STI
531	help
532	  This enables build of a clocksource and clockevent driver for
533	  the 48-bit System Timer (STI) hardware available on a SoCs
534	  such as EMEV2 from former NEC Electronics.
535
536config CLKSRC_QCOM
537	bool "Qualcomm MSM timer" if COMPILE_TEST
538	depends on ARM
539	select TIMER_OF
540	help
541	  This enables the clocksource and the per CPU clockevent driver for the
542	  Qualcomm SoCs.
543
544config CLKSRC_VERSATILE
545	bool "ARM Versatile (Express) reference platforms clock source" if COMPILE_TEST
546	depends on GENERIC_SCHED_CLOCK && !ARCH_USES_GETTIMEOFFSET
547	select TIMER_OF
548	default y if MFD_VEXPRESS_SYSREG
549	help
550	  This option enables clock source based on free running
551	  counter available in the "System Registers" block of
552	  ARM Versatile, RealView and Versatile Express reference
553	  platforms.
554
555config CLKSRC_MIPS_GIC
556	bool
557	depends on MIPS_GIC
558	select TIMER_OF
559
560config CLKSRC_TANGO_XTAL
561	bool "Clocksource for Tango SoC" if COMPILE_TEST
562	depends on ARM
563	select TIMER_OF
564	select CLKSRC_MMIO
565	help
566	  This enables the clocksource for Tango SoC
567
568config CLKSRC_PXA
569	bool "Clocksource for PXA or SA-11x0 platform" if COMPILE_TEST
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 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 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 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 || ARM64) && CLKDEV_LOOKUP
599	select CLKSRC_MMIO
600
601config CLKSRC_IMX_TPM
602	bool "Clocksource using i.MX TPM" if COMPILE_TEST
603	depends on ARM && CLKDEV_LOOKUP
604	select CLKSRC_MMIO
605	help
606	  Enable this option to use IMX Timer/PWM Module (TPM) timer as
607	  clocksource.
608
609config CLKSRC_ST_LPC
610	bool "Low power clocksource found in the LPC" if COMPILE_TEST
611	select TIMER_OF if OF
612	depends on HAS_IOMEM
613	select CLKSRC_MMIO
614	help
615	  Enable this option to use the Low Power controller timer
616	  as clocksource.
617
618config ATCPIT100_TIMER
619	bool "ATCPIT100 timer driver"
620	depends on NDS32 || COMPILE_TEST
621	depends on HAS_IOMEM
622	select TIMER_OF
623	default NDS32
624	help
625	  This option enables support for the Andestech ATCPIT100 timers.
626
627config RISCV_TIMER
628	bool "Timer for the RISC-V platform"
629	depends on GENERIC_SCHED_CLOCK && RISCV
630	default y
631	select TIMER_PROBE
632	select TIMER_OF
633	help
634	  This enables the per-hart timer built into all RISC-V systems, which
635	  is accessed via both the SBI and the rdcycle instruction.  This is
636	  required for all RISC-V systems.
637
638config CSKY_MP_TIMER
639	bool "SMP Timer for the C-SKY platform" if COMPILE_TEST
640	depends on CSKY
641	select TIMER_OF
642	help
643	  Say yes here to enable C-SKY SMP timer driver used for C-SKY SMP
644	  system.
645	  csky,mptimer is not only used in SMP system, it also could be used
646	  single core system. It's not a mmio reg and it use mtcr/mfcr instruction.
647
648config GX6605S_TIMER
649	bool "Gx6605s SOC system timer driver" if COMPILE_TEST
650	depends on CSKY
651	select CLKSRC_MMIO
652	select TIMER_OF
653	help
654	  This option enables support for gx6605s SOC's timer.
655
656config MILBEAUT_TIMER
657	bool "Milbeaut timer driver" if COMPILE_TEST
658	depends on OF
659	depends on ARM
660	select TIMER_OF
661	select CLKSRC_MMIO
662	help
663	  Enables the support for Milbeaut timer driver.
664
665endmenu
666