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