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