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