xref: /linux/drivers/clocksource/Kconfig (revision 2246464821e2820572e6feefca2029f17629cc50)
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_SYSTIMER
26	bool
27	select TIMER_OF
28
29config CLKBLD_I8253
30	def_bool y if CLKSRC_I8253 || CLKEVT_I8253 || I8253_LOCK
31
32config CLKSRC_MMIO
33	bool
34
35config BCM2835_TIMER
36	bool "BCM2835 timer driver" if COMPILE_TEST
37	select CLKSRC_MMIO
38	help
39	  Enables the support for the BCM2835 timer driver.
40
41config BCM_KONA_TIMER
42	bool "BCM mobile timer driver" if COMPILE_TEST
43	select CLKSRC_MMIO
44	help
45	  Enables the support for the BCM Kona mobile timer driver.
46
47config DAVINCI_TIMER
48	bool "Texas Instruments DaVinci timer driver" if COMPILE_TEST
49	help
50	  Enables the support for the TI DaVinci timer driver.
51
52config DIGICOLOR_TIMER
53	bool "Digicolor timer driver" if COMPILE_TEST
54	select CLKSRC_MMIO
55	depends on HAS_IOMEM
56	help
57	  Enables the support for the digicolor timer driver.
58
59config OMAP_DM_TIMER
60	bool "OMAP dual-mode timer driver" if ARCH_K3 || COMPILE_TEST
61	default y if ARCH_K3
62	select TIMER_OF
63	help
64	  Enables the support for the TI dual-mode timer driver.
65
66config DW_APB_TIMER
67	bool "DW APB timer driver" if COMPILE_TEST
68	help
69	  Enables the support for the dw_apb timer.
70
71config DW_APB_TIMER_OF
72	bool
73	select DW_APB_TIMER
74	select TIMER_OF
75
76config ECONET_EN751221_TIMER
77	bool "EcoNet EN751221 High Precision Timer" if COMPILE_TEST
78	depends on HAS_IOMEM
79	select CLKSRC_MMIO
80	select TIMER_OF
81	help
82	  Support for CPU timer found on EcoNet MIPS based SoCs.
83
84config FTTMR010_TIMER
85	bool "Faraday Technology timer driver" if COMPILE_TEST
86	depends on HAS_IOMEM
87	select CLKSRC_MMIO
88	select TIMER_OF
89	select MFD_SYSCON
90	help
91	  Enables support for the Faraday Technology timer block
92	  FTTMR010.
93
94config IXP4XX_TIMER
95	bool "Intel XScale IXP4xx timer driver" if COMPILE_TEST
96	depends on HAS_IOMEM
97	select CLKSRC_MMIO
98	select TIMER_OF
99	help
100	  Enables support for the Intel XScale IXP4xx SoC timer.
101
102config ROCKCHIP_TIMER
103	bool "Rockchip timer driver" if COMPILE_TEST
104	depends on ARM || ARM64
105	select TIMER_OF
106	select CLKSRC_MMIO
107	help
108	  Enables the support for the Rockchip timer driver.
109
110config ARMADA_370_XP_TIMER
111	bool "Armada 370 and XP timer driver" if COMPILE_TEST
112	depends on ARM
113	select TIMER_OF
114	select CLKSRC_MMIO
115	help
116	  Enables the support for the Armada 370 and XP timer driver.
117
118config MESON6_TIMER
119	bool "Meson6 timer driver" if COMPILE_TEST
120	select CLKSRC_MMIO
121	help
122	  Enables the support for the Meson6 timer driver.
123
124config ORION_TIMER
125	bool "Orion timer driver" if COMPILE_TEST
126	depends on ARM
127	select TIMER_OF
128	select CLKSRC_MMIO
129	help
130	  Enables the support for the Orion timer driver
131
132config OWL_TIMER
133	bool "Owl timer driver" if COMPILE_TEST
134	select CLKSRC_MMIO
135	help
136	  Enables the support for the Actions Semi Owl timer driver.
137
138config RDA_TIMER
139	bool "RDA timer driver" if COMPILE_TEST
140	select CLKSRC_MMIO
141	select TIMER_OF
142	help
143	  Enables the support for the RDA Micro timer driver.
144
145config REALTEK_OTTO_TIMER
146	bool "Clocksource/timer for the Realtek Otto platform" if COMPILE_TEST
147	select TIMER_OF
148	help
149	  This driver adds support for the timers found in the Realtek RTL83xx
150	  and RTL93xx SoCs series. This includes chips such as RTL8380, RTL8381
151	  and RTL832, as well as chips from the RTL839x series, such as RTL8390
152	  RT8391, RTL8392, RTL8393 and RTL8396 and chips of the RTL930x series
153	  such as RTL9301, RTL9302 or RTL9303.
154
155config SUN4I_TIMER
156	bool "Sun4i timer driver" if COMPILE_TEST
157	depends on HAS_IOMEM
158	select CLKSRC_MMIO
159	select TIMER_OF
160	help
161	  Enables support for the Sun4i timer.
162
163config SUN5I_HSTIMER
164	bool "Sun5i timer driver" if COMPILE_TEST
165	select CLKSRC_MMIO
166	depends on COMMON_CLK
167	help
168	  Enables support the Sun5i timer.
169
170config TEGRA_TIMER
171	bool "Tegra timer driver" if COMPILE_TEST
172	select CLKSRC_MMIO
173	select TIMER_OF
174	depends on ARCH_TEGRA || COMPILE_TEST
175	help
176	  Enables support for the Tegra driver.
177
178config TEGRA186_TIMER
179	bool "NVIDIA Tegra186 timer driver"
180	depends on ARCH_TEGRA || COMPILE_TEST
181	depends on WATCHDOG && WATCHDOG_CORE
182	help
183	  Enables support for the timers and watchdogs found on NVIDIA
184	  Tegra186 and later SoCs.
185
186config VT8500_TIMER
187	bool "VT8500 timer driver" if COMPILE_TEST
188	depends on HAS_IOMEM
189	help
190	  Enables support for the VT8500 driver.
191
192config NPCM7XX_TIMER
193	bool "NPCM7xx timer driver" if COMPILE_TEST
194	depends on HAS_IOMEM
195	select TIMER_OF
196	select CLKSRC_MMIO
197	help
198	  Enable 24-bit TIMER0 and TIMER1 counters in the NPCM7xx architecture,
199	  where TIMER0 serves as clockevent and TIMER1 serves as clocksource.
200
201config CADENCE_TTC_TIMER
202	bool "Cadence TTC timer driver" if COMPILE_TEST
203	depends on COMMON_CLK
204	help
205	  Enables support for the Cadence TTC driver.
206
207config ASM9260_TIMER
208	bool "ASM9260 timer driver" if COMPILE_TEST
209	select CLKSRC_MMIO
210	select TIMER_OF
211	help
212	  Enables support for the ASM9260 timer.
213
214config CLKSRC_NOMADIK_MTU
215	bool "Nomakdik clocksource driver" if COMPILE_TEST
216	depends on ARM
217	select CLKSRC_MMIO
218	help
219	  Support for Multi Timer Unit. MTU provides access
220	  to multiple interrupt generating programmable
221	  32-bit free running decrementing counters.
222
223config CLKSRC_DBX500_PRCMU
224	bool "Clocksource PRCMU Timer" if COMPILE_TEST
225	depends on HAS_IOMEM
226	help
227	  Use the always on PRCMU Timer as clocksource.
228
229config CLPS711X_TIMER
230	bool "Cirrus Logic timer driver" if COMPILE_TEST
231	select CLKSRC_MMIO
232	help
233	  Enables support for the Cirrus Logic PS711 timer.
234
235config MXS_TIMER
236	bool "MXS timer driver" if COMPILE_TEST
237	select CLKSRC_MMIO
238	select STMP_DEVICE
239	help
240	  Enables support for the MXS timer.
241
242config NSPIRE_TIMER
243	bool "NSpire timer driver" if COMPILE_TEST
244	select CLKSRC_MMIO
245	help
246	  Enables support for the Nspire timer.
247
248config KEYSTONE_TIMER
249	bool "Keystone timer driver" if COMPILE_TEST
250	depends on ARM || ARM64
251	select CLKSRC_MMIO
252	help
253	  Enables support for the Keystone timer.
254
255config INTEGRATOR_AP_TIMER
256	bool "Integrator-AP timer driver" if COMPILE_TEST
257	depends on OF
258	select CLKSRC_MMIO
259	help
260	  Enables support for the Integrator-AP timer.
261
262config CLKSRC_LPC32XX
263	bool "Clocksource for LPC32XX" if COMPILE_TEST
264	depends on HAS_IOMEM
265	depends on ARM
266	select CLKSRC_MMIO
267	select TIMER_OF
268	help
269	  Support for the LPC32XX clocksource.
270
271config CLKSRC_PISTACHIO
272	bool "Clocksource for Pistachio SoC"
273	depends on HAS_IOMEM
274	depends on MIPS || COMPILE_TEST
275	select TIMER_OF
276	help
277	  Enables the clocksource for the Pistachio SoC.
278
279config CLKSRC_TI_32K
280	bool "Texas Instruments 32.768 Hz Clocksource" if COMPILE_TEST
281	depends on GENERIC_SCHED_CLOCK
282	select TIMER_OF if OF
283	help
284	  This option enables support for Texas Instruments 32.768 Hz clocksource
285	  available on many OMAP-like platforms.
286
287config CLKSRC_STM32
288	bool "Clocksource for STM32 SoCs" if !ARCH_STM32
289	depends on OF && ARM && (ARCH_STM32 || COMPILE_TEST)
290	select CLKSRC_MMIO
291	select TIMER_OF
292
293config CLKSRC_STM32_LP
294	bool "Low power clocksource for STM32 SoCs"
295	depends on MFD_STM32_LPTIMER || COMPILE_TEST
296
297config CLKSRC_MPS2
298	bool "Clocksource for MPS2 SoCs" if COMPILE_TEST
299	depends on GENERIC_SCHED_CLOCK
300	select CLKSRC_MMIO
301	select TIMER_OF
302
303config ARC_TIMERS
304	bool "Support for 32-bit TIMERn counters in ARC Cores" if COMPILE_TEST
305	depends on GENERIC_SCHED_CLOCK
306	select TIMER_OF
307	help
308	  These are legacy 32-bit TIMER0 and TIMER1 counters found on all ARC cores
309	  (ARC700 as well as ARC HS38).
310	  TIMER0 serves as clockevent while TIMER1 provides clocksource.
311
312config ARC_TIMERS_64BIT
313	bool "Support for 64-bit counters in ARC HS38 cores" if COMPILE_TEST
314	depends on ARC_TIMERS
315	select TIMER_OF
316	help
317	  This enables 2 different 64-bit timers: RTC (for UP) and GFRC (for SMP).
318	  RTC is implemented inside the core, while GFRC sits outside the core in
319	  ARConnect IP block. Driver automatically picks one of them for clocksource
320	  as appropriate.
321
322config ARM_ARCH_TIMER
323	bool
324	select TIMER_OF if OF
325	select TIMER_ACPI if ACPI
326
327config ARM_ARCH_TIMER_EVTSTREAM
328	bool "Enable ARM architected timer event stream generation by default"
329	default y if ARM_ARCH_TIMER
330	depends on ARM_ARCH_TIMER
331	help
332	  This option enables support by default for event stream generation
333	  based on the ARM architected timer. It is used for waking up CPUs
334	  executing the wfe instruction at a frequency represented as a
335	  power-of-2 divisor of the clock rate. The behaviour can also be
336	  overridden on the command line using the
337	  clocksource.arm_arch_timer.evtstream parameter.
338	  The main use of the event stream is wfe-based timeouts of userspace
339	  locking implementations. It might also be useful for imposing timeout
340	  on wfe to safeguard against any programming errors in case an expected
341	  event is not generated.
342	  This must be disabled for hardware validation purposes to detect any
343	  hardware anomalies of missing events.
344
345config ARM_ARCH_TIMER_OOL_WORKAROUND
346	bool
347
348config FSL_ERRATUM_A008585
349	bool "Workaround for Freescale/NXP Erratum A-008585"
350	default y
351	depends on ARM_ARCH_TIMER && ARM64
352	select ARM_ARCH_TIMER_OOL_WORKAROUND
353	help
354	  This option enables a workaround for Freescale/NXP Erratum
355	  A-008585 ("ARM generic timer may contain an erroneous
356	  value").  The workaround will only be active if the
357	  fsl,erratum-a008585 property is found in the timer node.
358
359config HISILICON_ERRATUM_161010101
360	bool "Workaround for Hisilicon Erratum 161010101"
361	default y
362	select ARM_ARCH_TIMER_OOL_WORKAROUND
363	depends on ARM_ARCH_TIMER && ARM64
364	help
365	  This option enables a workaround for Hisilicon Erratum
366	  161010101. The workaround will be active if the hisilicon,erratum-161010101
367	  property is found in the timer node.
368
369config ARM64_ERRATUM_858921
370	bool "Workaround for Cortex-A73 erratum 858921"
371	default y
372	select ARM_ARCH_TIMER_OOL_WORKAROUND
373	depends on ARM_ARCH_TIMER && ARM64
374	help
375	  This option enables a workaround applicable to Cortex-A73
376	  (all versions), whose counter may return incorrect values.
377	  The workaround will be dynamically enabled when an affected
378	  core is detected.
379
380config SUN50I_ERRATUM_UNKNOWN1
381	bool "Workaround for Allwinner A64 erratum UNKNOWN1"
382	default y
383	depends on ARM_ARCH_TIMER && ARM64 && ARCH_SUNXI
384	select ARM_ARCH_TIMER_OOL_WORKAROUND
385	help
386	  This option enables a workaround for instability in the timer on
387	  the Allwinner A64 SoC. The workaround will only be active if the
388	  allwinner,erratum-unknown1 property is found in the timer node.
389
390config ARM_GLOBAL_TIMER
391	bool "Support for the ARM global timer" if COMPILE_TEST
392	select TIMER_OF if OF
393	depends on ARM
394	help
395	  This option enables support for the ARM global timer unit.
396
397config ARM_GT_INITIAL_PRESCALER_VAL
398	int "ARM global timer initial prescaler value"
399	default 0
400	depends on ARM_GLOBAL_TIMER
401	help
402	  When the ARM global timer initializes, its current rate is declared
403	  to the kernel and maintained forever. Should its parent clock
404	  change, the driver tries to fix the timer's internal prescaler.
405	  On some machs (i.e. Zynq) the initial prescaler value thus poses
406	  bounds about how much the parent clock is allowed to decrease or
407	  increase wrt the initial clock value.
408	  This affects CPU_FREQ max delta from the initial frequency.
409	  Use 0 to use auto-detection in the driver.
410
411config ARM_TIMER_SP804
412	bool "Support for Dual Timer SP804 module"
413	depends on ARM || ARM64 || COMPILE_TEST
414	depends on GENERIC_SCHED_CLOCK && HAVE_CLK
415	select CLKSRC_MMIO
416	select TIMER_OF if OF
417
418config CLKSRC_ARM_GLOBAL_TIMER_SCHED_CLOCK
419	bool
420	depends on ARM_GLOBAL_TIMER
421	default y
422	help
423	  Use ARM global timer clock source as sched_clock.
424
425config ARMV7M_SYSTICK
426	bool "Support for the ARMv7M system time" if COMPILE_TEST
427	select TIMER_OF if OF
428	select CLKSRC_MMIO
429	help
430	  This option enables support for the ARMv7M system timer unit.
431
432config ATMEL_PIT
433	bool "Atmel PIT support" if COMPILE_TEST
434	depends on HAS_IOMEM
435	select TIMER_OF if OF
436	help
437	  Support for the Periodic Interval Timer found on Atmel SoCs.
438
439config ATMEL_ST
440	bool "Atmel ST timer support" if COMPILE_TEST
441	depends on HAS_IOMEM
442	select TIMER_OF
443	select MFD_SYSCON
444	help
445	  Support for the Atmel ST timer.
446
447config ATMEL_TCB_CLKSRC
448	bool "Atmel TC Block timer driver" if COMPILE_TEST
449	depends on ARM && OF && HAS_IOMEM
450	select TIMER_OF
451	help
452	  Support for Timer Counter Blocks on Atmel SoCs.
453
454config CLKSRC_EXYNOS_MCT
455	bool "Exynos multi core timer driver" if COMPILE_TEST
456	depends on ARM || ARM64
457	depends on ARCH_ARTPEC || ARCH_EXYNOS || COMPILE_TEST
458	help
459	  Support for Multi Core Timer controller on Exynos SoCs.
460
461config CLKSRC_SAMSUNG_PWM
462	bool "PWM timer driver for Samsung S3C, S5P" if COMPILE_TEST
463	depends on HAS_IOMEM
464	depends on ARCH_EXYNOS || ARCH_S3C64XX || ARCH_S5PV210 || COMPILE_TEST
465	help
466	  This is a new clocksource driver for the PWM timer found in
467	  Samsung S3C, S5P and Exynos SoCs, replacing an earlier driver
468	  for all devicetree enabled platforms. This driver will be
469	  needed only on systems that do not have the Exynos MCT available.
470
471config FSL_FTM_TIMER
472	bool "Freescale FlexTimer Module driver" if COMPILE_TEST
473	depends on HAS_IOMEM
474	select CLKSRC_MMIO
475	help
476	  Support for Freescale FlexTimer Module (FTM) timer.
477
478config NXP_PIT_TIMER
479	bool "NXP Periodic Interrupt Timer" if COMPILE_TEST
480	select CLKSRC_MMIO
481	help
482	  Support for Periodic Interrupt Timer on Freescale / NXP
483	  SoCs. This periodic timer is found on the Vybrid Family and
484	  the Automotive S32G2/3 platforms. It contains 4 channels
485	  where two can be coupled to form a 64 bits channel.
486
487config SYS_SUPPORTS_SH_CMT
488	bool
489
490config MTK_TIMER
491	bool "Mediatek timer driver" if COMPILE_TEST
492	depends on HAS_IOMEM
493	select TIMER_OF
494	select CLKSRC_MMIO
495	help
496	  Support for Mediatek timer driver.
497
498config MTK_CPUX_TIMER
499	bool "MediaTek CPUX timer driver" if COMPILE_TEST
500	depends on HAS_IOMEM
501	default ARCH_MEDIATEK
502	select TIMER_OF
503	select CLKSRC_MMIO
504	help
505	  Support for MediaTek CPUXGPT timer driver.
506
507config SPRD_TIMER
508	bool "Spreadtrum timer driver" if EXPERT
509	depends on HAS_IOMEM
510	depends on (ARCH_SPRD || COMPILE_TEST)
511	default ARCH_SPRD
512	select TIMER_OF
513	help
514	  Enables support for the Spreadtrum timer driver.
515
516config SYS_SUPPORTS_SH_MTU2
517	bool
518
519config SYS_SUPPORTS_SH_TMU
520	bool
521
522config SYS_SUPPORTS_EM_STI
523	bool
524
525config CLKSRC_JCORE_PIT
526	bool "J-Core PIT timer driver" if COMPILE_TEST
527	depends on OF
528	depends on HAS_IOMEM
529	select CLKSRC_MMIO
530	help
531	  This enables build of clocksource and clockevent driver for
532	  the integrated PIT in the J-Core synthesizable, open source SoC.
533
534config SH_TIMER_CMT
535	bool "Renesas CMT timer driver" if COMPILE_TEST
536	depends on HAS_IOMEM
537	default SYS_SUPPORTS_SH_CMT
538	help
539	  This enables build of a clocksource and clockevent driver for
540	  the Compare Match Timer (CMT) hardware available in 16/32/48-bit
541	  variants on a wide range of Mobile and Automotive SoCs from Renesas.
542
543config SH_TIMER_MTU2
544	bool "Renesas MTU2 timer driver" if COMPILE_TEST
545	depends on HAS_IOMEM
546	default SYS_SUPPORTS_SH_MTU2
547	help
548	  This enables build of a clockevent driver for the Multi-Function
549	  Timer Pulse Unit 2 (MTU2) hardware available on SoCs from Renesas.
550	  This hardware comes with 16-bit timer registers.
551
552config RENESAS_OSTM
553	bool "Renesas OSTM timer driver"
554	depends on ARCH_RENESAS || COMPILE_TEST
555	select CLKSRC_MMIO
556	select TIMER_OF
557	help
558	  Enables the support for the Renesas OSTM.
559
560config SH_TIMER_TMU
561	bool "Renesas TMU timer driver" if COMPILE_TEST
562	depends on HAS_IOMEM
563	default SYS_SUPPORTS_SH_TMU
564	help
565	  This enables build of a clocksource and clockevent driver for
566	  the 32-bit Timer Unit (TMU) hardware available on a wide range
567	  SoCs from Renesas.
568
569config EM_TIMER_STI
570	bool "Renesas STI timer driver" if COMPILE_TEST
571	depends on HAS_IOMEM
572	default SYS_SUPPORTS_EM_STI
573	help
574	  This enables build of a clocksource and clockevent driver for
575	  the 48-bit System Timer (STI) hardware available on a SoCs
576	  such as EMEV2 from former NEC Electronics.
577
578config CLKSRC_QCOM
579	bool "Qualcomm MSM timer" if COMPILE_TEST
580	depends on ARM
581	select TIMER_OF
582	help
583	  This enables the clocksource and the per CPU clockevent driver for the
584	  Qualcomm SoCs.
585
586config CLKSRC_VERSATILE
587	bool "ARM Versatile (Express) reference platforms clock source" if COMPILE_TEST
588	depends on GENERIC_SCHED_CLOCK
589	select TIMER_OF
590	default y if (ARCH_VEXPRESS || ARCH_VERSATILE) && ARM
591	help
592	  This option enables clock source based on free running
593	  counter available in the "System Registers" block of
594	  ARM Versatile and Versatile Express reference platforms.
595
596config CLKSRC_MIPS_GIC
597	bool
598	depends on MIPS_GIC
599	select CLOCKSOURCE_WATCHDOG
600	select TIMER_OF
601
602config CLKSRC_PXA
603	bool "Clocksource for PXA or SA-11x0 platform" if COMPILE_TEST
604	depends on HAS_IOMEM
605	select CLKSRC_MMIO
606	help
607	  This enables OST0 support available on PXA and SA-11x0
608	  platforms.
609
610config CLKSRC_IMX_GPT
611	bool "Clocksource using i.MX GPT" if COMPILE_TEST
612	depends on (ARM || ARM64) && HAVE_CLK
613	select CLKSRC_MMIO
614
615config CLKSRC_IMX_TPM
616	bool "Clocksource using i.MX TPM" if COMPILE_TEST
617	depends on (ARM || ARM64) && HAVE_CLK
618	select CLKSRC_MMIO
619	select TIMER_OF
620	help
621	  Enable this option to use IMX Timer/PWM Module (TPM) timer as
622	  clocksource.
623
624config TIMER_IMX_SYS_CTR
625	bool "i.MX system counter timer" if COMPILE_TEST
626	select TIMER_OF
627	help
628	  Enable this option to use i.MX system counter timer as a
629	  clockevent.
630
631config CLKSRC_LOONGSON1_PWM
632	bool "Clocksource using Loongson1 PWM"
633	depends on MACH_LOONGSON32 || COMPILE_TEST
634	select MIPS_EXTERNAL_TIMER
635	select TIMER_OF
636	help
637	  Enable this option to use Loongson1 PWM timer as clocksource
638	  instead of the performance counter.
639
640config CLKSRC_ST_LPC
641	bool "Low power clocksource found in the LPC" if COMPILE_TEST
642	select TIMER_OF if OF
643	depends on HAS_IOMEM
644	select CLKSRC_MMIO
645	help
646	  Enable this option to use the Low Power controller timer
647	  as clocksource.
648
649config GXP_TIMER
650	bool "GXP timer driver" if COMPILE_TEST && !ARCH_HPE
651	default ARCH_HPE
652	select TIMER_OF if OF
653	help
654	  Provides a driver for the timer control found on HPE
655	  GXP SOCs. This is required for all GXP SOCs.
656
657config RISCV_TIMER
658	bool "Timer for the RISC-V platform" if COMPILE_TEST
659	depends on GENERIC_SCHED_CLOCK && RISCV && RISCV_SBI
660	select TIMER_PROBE
661	select TIMER_OF
662	help
663	  This enables the per-hart timer built into all RISC-V systems, which
664	  is accessed via both the SBI and the rdcycle instruction.  This is
665	  required for all RISC-V systems.
666
667config CLINT_TIMER
668	bool "CLINT Timer for the RISC-V platform" if COMPILE_TEST
669	depends on GENERIC_SCHED_CLOCK && RISCV
670	select TIMER_PROBE
671	select TIMER_OF
672	help
673	  This option enables the CLINT timer for RISC-V systems.  The CLINT
674	  driver is usually used for NoMMU RISC-V systems.
675
676config CSKY_MP_TIMER
677	bool "SMP Timer for the C-SKY platform" if COMPILE_TEST
678	depends on CSKY
679	select TIMER_OF
680	help
681	  Say yes here to enable C-SKY SMP timer driver used for C-SKY SMP
682	  system.
683	  csky,mptimer is not only used in SMP system, it also could be used in
684	  single core system. It's not a mmio reg and it uses mtcr/mfcr instruction.
685
686config GX6605S_TIMER
687	bool "Gx6605s SOC system timer driver" if COMPILE_TEST
688	depends on CSKY
689	select CLKSRC_MMIO
690	select TIMER_OF
691	help
692	  This option enables support for gx6605s SOC's timer.
693
694config MILBEAUT_TIMER
695	bool "Milbeaut timer driver" if COMPILE_TEST
696	depends on OF
697	depends on ARM
698	select TIMER_OF
699	select CLKSRC_MMIO
700	help
701	  Enables the support for Milbeaut timer driver.
702
703config MSC313E_TIMER
704	bool "MSC313E timer driver" if COMPILE_TEST
705	select TIMER_OF
706	select CLKSRC_MMIO
707	help
708	  Enables support for the MStar MSC313E timer driver.
709	  This provides access to multiple interrupt generating
710	  programmable 32-bit free running incrementing counters.
711
712config INGENIC_TIMER
713	bool "Clocksource/timer using the TCU in Ingenic JZ SoCs"
714	default MACH_INGENIC
715	depends on MIPS || COMPILE_TEST
716	depends on COMMON_CLK
717	select MFD_SYSCON
718	select TIMER_OF
719	select IRQ_DOMAIN
720	help
721	  Support for the timer/counter unit of the Ingenic JZ SoCs.
722
723config INGENIC_SYSOST
724	bool "Clocksource/timer using the SYSOST in Ingenic X SoCs"
725	depends on MIPS || COMPILE_TEST
726	depends on COMMON_CLK
727	select MFD_SYSCON
728	select TIMER_OF
729	select IRQ_DOMAIN
730	help
731	  Support for the SYSOST of the Ingenic X Series SoCs.
732
733config INGENIC_OST
734	bool "Clocksource using the OST in Ingenic JZ SoCs"
735	depends on MIPS || COMPILE_TEST
736	depends on COMMON_CLK
737	select MFD_SYSCON
738	help
739	  Support for the Operating System Timer of the Ingenic JZ SoCs.
740
741config MICROCHIP_PIT64B
742	bool "Microchip PIT64B support"
743	depends on OF && ARM
744	select TIMER_OF
745	help
746	  This option enables Microchip PIT64B timer for Atmel
747	  based system. It supports the oneshot, the periodic
748	  modes and high resolution. It is used as a clocksource
749	  and a clockevent.
750
751config GOLDFISH_TIMER
752	bool "Clocksource using goldfish-rtc"
753	depends on M68K || COMPILE_TEST
754	depends on RTC_DRV_GOLDFISH
755	help
756	  Support for the timer/counter of goldfish-rtc
757
758config EP93XX_TIMER
759	bool "Cirrus Logic ep93xx timer driver" if COMPILE_TEST
760	depends on ARCH_EP93XX
761	depends on GENERIC_CLOCKEVENTS
762	depends on HAS_IOMEM
763	select CLKSRC_MMIO
764	select TIMER_OF
765	help
766	  Enables support for the Cirrus Logic timer block
767	  EP93XX.
768
769config RALINK_TIMER
770	bool "Ralink System Tick Counter"
771	depends on SOC_RT305X || SOC_MT7620 || COMPILE_TEST
772	select CLKSRC_MMIO
773	select TIMER_OF
774	help
775	  Enables support for system tick counter present on
776	  Ralink SoCs RT3352 and MT7620.
777
778config NXP_STM_TIMER
779	bool "NXP System Timer Module driver"
780	depends on ARCH_S32 || COMPILE_TEST
781	select CLKSRC_MMIO
782	help
783          Enables the support for NXP System Timer Module found in the
784          s32g NXP platform series.
785
786config RTK_SYSTIMER
787	bool "Realtek SYSTIMER support"
788	depends on ARM || ARM64
789	depends on ARCH_REALTEK || COMPILE_TEST
790	select TIMER_OF
791	help
792	  This option enables the driver that registers the global 1 MHz hardware
793	  counter as a clock event device on Realtek SoCs. Make sure to enable
794	  this option only when building for a Realtek platform or for compilation
795	  testing.
796
797endmenu
798