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