1 menu "Clock Source drivers"
2 depends on !ARCH_USES_GETTIMEOFFSET
32 def_bool y if CLKSRC_I8253 || CLKEVT_I8253 || I8253_LOCK
38 bool "BCM2835 timer driver" if COMPILE_TEST
39 depends on GENERIC_CLOCKEVENTS
42 Enables the support for the BCM2835 timer driver.
45 bool "BCM mobile timer driver" if COMPILE_TEST
46 depends on GENERIC_CLOCKEVENTS
49 Enables the support for the BCM Kona mobile timer driver.
51 config DIGICOLOR_TIMER
52 bool "Digicolor timer driver" if COMPILE_TEST
53 depends on GENERIC_CLOCKEVENTS
57 Enables the support for the digicolor timer driver.
60 bool "DW APB timer driver" if COMPILE_TEST
61 depends on GENERIC_CLOCKEVENTS
63 Enables the support for the dw_apb timer.
65 config DW_APB_TIMER_OF
71 bool "Faraday Technology timer driver" if COMPILE_TEST
72 depends on GENERIC_CLOCKEVENTS
78 Enables support for the Faraday Technology timer block
82 bool "Rockchip timer driver" if COMPILE_TEST
83 depends on ARM || ARM64
87 Enables the support for the rockchip timer driver.
89 config ARMADA_370_XP_TIMER
90 bool "Armada 370 and XP timer driver" if COMPILE_TEST
95 Enables the support for the Armada 370 and XP timer driver.
98 bool "Meson6 timer driver" if COMPILE_TEST
99 depends on GENERIC_CLOCKEVENTS
102 Enables the support for the Meson6 timer driver.
105 bool "Orion timer driver" if COMPILE_TEST
110 Enables the support for the Orion timer driver
113 bool "Sun4i timer driver" if COMPILE_TEST
114 depends on GENERIC_CLOCKEVENTS
118 Enables support for the Sun4i timer.
121 bool "Sun5i timer driver" if COMPILE_TEST
123 depends on COMMON_CLK
125 Enables support the Sun5i timer.
128 bool "Tegra timer driver" if COMPILE_TEST
132 Enables support for the Tegra driver.
135 bool "VT8500 timer driver" if COMPILE_TEST
136 depends on GENERIC_CLOCKEVENTS
139 Enables support for the VT8500 driver.
141 config CADENCE_TTC_TIMER
142 bool "Cadence TTC timer driver" if COMPILE_TEST
143 depends on COMMON_CLK
145 Enables support for the cadence ttc driver.
148 bool "ASM9260 timer driver" if COMPILE_TEST
149 depends on GENERIC_CLOCKEVENTS
153 Enables support for the ASM9260 timer.
155 config CLKSRC_NOMADIK_MTU
156 bool "Nomakdik clocksource driver" if COMPILE_TEST
160 Support for Multi Timer Unit. MTU provides access
161 to multiple interrupt generating programmable
162 32-bit free running decrementing counters.
164 config CLKSRC_NOMADIK_MTU_SCHED_CLOCK
166 depends on CLKSRC_NOMADIK_MTU
168 Use the Multi Timer Unit as the sched_clock.
170 config CLKSRC_DBX500_PRCMU
171 bool "Clocksource PRCMU Timer" if COMPILE_TEST
172 depends on GENERIC_CLOCKEVENTS
175 Use the always on PRCMU Timer as clocksource
177 config CLPS711X_TIMER
178 bool "Cirrus logic timer driver" if COMPILE_TEST
179 depends on GENERIC_CLOCKEVENTS
182 Enables support for the Cirrus Logic PS711 timer.
185 bool "Atlas7 timer driver" if COMPILE_TEST
186 depends on GENERIC_CLOCKEVENTS
189 Enables support for the Atlas7 timer.
192 bool "Moxart timer driver" if COMPILE_TEST
193 depends on GENERIC_CLOCKEVENTS
196 Enables support for the Moxart timer.
199 bool "Mxs timer driver" if COMPILE_TEST
200 depends on GENERIC_CLOCKEVENTS
204 Enables support for the Mxs timer.
207 bool "Prima2 timer driver" if COMPILE_TEST
208 depends on GENERIC_CLOCKEVENTS
211 Enables support for the Prima2 timer.
214 bool "U300 timer driver" if COMPILE_TEST
215 depends on GENERIC_CLOCKEVENTS
219 Enables support for the U300 timer.
222 bool "NSpire timer driver" if COMPILE_TEST
223 depends on GENERIC_CLOCKEVENTS
226 Enables support for the Nspire timer.
228 config KEYSTONE_TIMER
229 bool "Keystone timer driver" if COMPILE_TEST
230 depends on GENERIC_CLOCKEVENTS
231 depends on ARM || ARM64
234 Enables support for the Keystone timer.
236 config INTEGRATOR_AP_TIMER
237 bool "Integrator-ap timer driver" if COMPILE_TEST
238 depends on GENERIC_CLOCKEVENTS
241 Enables support for the Integrator-ap timer.
243 config CLKSRC_DBX500_PRCMU_SCHED_CLOCK
244 bool "Clocksource PRCMU Timer sched_clock"
245 depends on (CLKSRC_DBX500_PRCMU && !CLKSRC_NOMADIK_MTU_SCHED_CLOCK)
248 Use the always on PRCMU Timer as sched_clock
251 bool "Clocksource for Energy Micro's EFM32 SoCs" if !ARCH_EFM32
252 depends on OF && ARM && (ARCH_EFM32 || COMPILE_TEST)
256 Support to use the timers of EFM32 SoCs as clock source and clock
259 config CLKSRC_LPC32XX
260 bool "Clocksource for LPC32XX" if COMPILE_TEST
261 depends on GENERIC_CLOCKEVENTS && HAS_IOMEM
266 Support for the LPC32XX clocksource.
268 config CLKSRC_PISTACHIO
269 bool "Clocksource for Pistachio SoC" if COMPILE_TEST
273 Enables the clocksource for the Pistachio SoC.
276 bool "Texas Instruments 32.768 Hz Clocksource" if COMPILE_TEST
277 depends on GENERIC_SCHED_CLOCK
278 select CLKSRC_OF if OF
280 This option enables support for Texas Instruments 32.768 Hz clocksource
281 available on many OMAP-like platforms.
284 bool "NPS400 clocksource driver" if COMPILE_TEST
285 depends on !PHYS_ADDR_T_64BIT
287 select CLKSRC_OF if OF
289 NPS400 clocksource support.
290 Got 64 bit counter with update rate up to 1000MHz.
291 This counter is accessed via couple of 32 bit memory mapped registers.
294 bool "Clocksource for STM32 SoCs" if !ARCH_STM32
295 depends on OF && ARM && (ARCH_STM32 || COMPILE_TEST)
299 bool "Clocksource for MPS2 SoCs" if COMPILE_TEST
300 depends on GENERIC_SCHED_CLOCK
305 bool "Support for 32-bit TIMERn counters in ARC Cores" if COMPILE_TEST
306 depends on GENERIC_CLOCKEVENTS
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
313 config ARC_TIMERS_64BIT
314 bool "Support for 64-bit counters in ARC HS38 cores" if COMPILE_TEST
315 depends on GENERIC_CLOCKEVENTS
316 depends on ARC_TIMERS
319 This enables 2 different 64-bit timers: RTC (for UP) and GFRC (for SMP)
320 RTC is implemented inside the core, while GFRC sits outside the core in
321 ARConnect IP block. Driver automatically picks one of them for clocksource
324 config ARM_ARCH_TIMER
326 select CLKSRC_OF if OF
327 select CLKSRC_ACPI if ACPI
329 config ARM_ARCH_TIMER_EVTSTREAM
330 bool "Enable ARM architected timer event stream generation by default"
331 default y if ARM_ARCH_TIMER
332 depends on ARM_ARCH_TIMER
334 This option enables support by default for event stream generation
335 based on the ARM architected timer. It is used for waking up CPUs
336 executing the wfe instruction at a frequency represented as a
337 power-of-2 divisor of the clock rate. The behaviour can also be
338 overridden on the command line using the
339 clocksource.arm_arch_timer.evtstream parameter.
340 The main use of the event stream is wfe-based timeouts of userspace
341 locking implementations. It might also be useful for imposing timeout
342 on wfe to safeguard against any programming errors in case an expected
343 event is not generated.
344 This must be disabled for hardware validation purposes to detect any
345 hardware anomalies of missing events.
347 config ARM_ARCH_TIMER_OOL_WORKAROUND
350 config FSL_ERRATUM_A008585
351 bool "Workaround for Freescale/NXP Erratum A-008585"
353 depends on ARM_ARCH_TIMER && ARM64
354 select ARM_ARCH_TIMER_OOL_WORKAROUND
356 This option enables a workaround for Freescale/NXP Erratum
357 A-008585 ("ARM generic timer may contain an erroneous
358 value"). The workaround will only be active if the
359 fsl,erratum-a008585 property is found in the timer node.
361 config HISILICON_ERRATUM_161010101
362 bool "Workaround for Hisilicon Erratum 161010101"
364 select ARM_ARCH_TIMER_OOL_WORKAROUND
365 depends on ARM_ARCH_TIMER && ARM64
367 This option enables a workaround for Hisilicon Erratum
368 161010101. The workaround will be active if the hisilicon,erratum-161010101
369 property is found in the timer node.
371 config ARM64_ERRATUM_858921
372 bool "Workaround for Cortex-A73 erratum 858921"
374 select ARM_ARCH_TIMER_OOL_WORKAROUND
375 depends on ARM_ARCH_TIMER && ARM64
377 This option enables a workaround applicable to Cortex-A73
378 (all versions), whose counter may return incorrect values.
379 The workaround will be dynamically enabled when an affected
382 config ARM_GLOBAL_TIMER
383 bool "Support for the ARM global timer" if COMPILE_TEST
384 select CLKSRC_OF if OF
387 This options enables support for the ARM global timer unit
389 config ARM_TIMER_SP804
390 bool "Support for Dual Timer SP804 module"
391 depends on GENERIC_SCHED_CLOCK && CLKDEV_LOOKUP
393 select CLKSRC_OF if OF
395 config CLKSRC_ARM_GLOBAL_TIMER_SCHED_CLOCK
397 depends on ARM_GLOBAL_TIMER
400 Use ARM global timer clock source as sched_clock
402 config ARMV7M_SYSTICK
403 bool "Support for the ARMv7M system time" if COMPILE_TEST
404 select CLKSRC_OF if OF
407 This options enables support for the ARMv7M system timer unit
410 select CLKSRC_OF if OF
411 def_bool SOC_AT91SAM9 || SOC_SAMA5
414 bool "Atmel ST timer support" if COMPILE_TEST
415 depends on GENERIC_CLOCKEVENTS
419 Support for the Atmel ST timer.
421 config CLKSRC_METAG_GENERIC
424 This option enables support for the Meta per-thread timers.
426 config CLKSRC_EXYNOS_MCT
427 bool "Exynos multi core timer driver" if COMPILE_TEST
428 depends on ARM || ARM64
430 Support for Multi Core Timer controller on Exynos SoCs.
432 config CLKSRC_SAMSUNG_PWM
433 bool "PWM timer driver for Samsung S3C, S5P" if COMPILE_TEST
434 depends on GENERIC_CLOCKEVENTS
437 This is a new clocksource driver for the PWM timer found in
438 Samsung S3C, S5P and Exynos SoCs, replacing an earlier driver
439 for all devicetree enabled platforms. This driver will be
440 needed only on systems that do not have the Exynos MCT available.
443 bool "Freescale FlexTimer Module driver" if COMPILE_TEST
444 depends on GENERIC_CLOCKEVENTS
448 Support for Freescale FlexTimer Module (FTM) timer.
454 Support for Period Interrupt Timer on Freescale Vybrid Family SoCs.
456 config OXNAS_RPS_TIMER
457 bool "Oxford Semiconductor OXNAS RPS Timers driver" if COMPILE_TEST
458 depends on GENERIC_CLOCKEVENTS
462 This enables support for the Oxford Semiconductor OXNAS RPS timers.
464 config SYS_SUPPORTS_SH_CMT
468 bool "Mediatek timer driver" if COMPILE_TEST
469 depends on GENERIC_CLOCKEVENTS && HAS_IOMEM
473 Support for Mediatek timer driver.
475 config SYS_SUPPORTS_SH_MTU2
478 config SYS_SUPPORTS_SH_TMU
481 config SYS_SUPPORTS_EM_STI
484 config CLKSRC_JCORE_PIT
485 bool "J-Core PIT timer driver" if COMPILE_TEST
487 depends on GENERIC_CLOCKEVENTS
491 This enables build of clocksource and clockevent driver for
492 the integrated PIT in the J-Core synthesizable, open source SoC.
495 bool "Renesas CMT timer driver" if COMPILE_TEST
496 depends on GENERIC_CLOCKEVENTS
498 default SYS_SUPPORTS_SH_CMT
500 This enables build of a clocksource and clockevent driver for
501 the Compare Match Timer (CMT) hardware available in 16/32/48-bit
502 variants on a wide range of Mobile and Automotive SoCs from Renesas.
505 bool "Renesas MTU2 timer driver" if COMPILE_TEST
506 depends on GENERIC_CLOCKEVENTS
508 default SYS_SUPPORTS_SH_MTU2
510 This enables build of a clockevent driver for the Multi-Function
511 Timer Pulse Unit 2 (MTU2) hardware available on SoCs from Renesas.
512 This hardware comes with 16 bit-timer registers.
515 bool "Renesas OSTM timer driver" if COMPILE_TEST
516 depends on GENERIC_CLOCKEVENTS
519 Enables the support for the Renesas OSTM.
522 bool "Renesas TMU timer driver" if COMPILE_TEST
523 depends on GENERIC_CLOCKEVENTS
525 default SYS_SUPPORTS_SH_TMU
527 This enables build of a clocksource and clockevent driver for
528 the 32-bit Timer Unit (TMU) hardware available on a wide range
532 bool "Renesas STI timer driver" if COMPILE_TEST
533 depends on GENERIC_CLOCKEVENTS && HAS_IOMEM
534 default SYS_SUPPORTS_EM_STI
536 This enables build of a clocksource and clockevent driver for
537 the 48-bit System Timer (STI) hardware available on a SoCs
538 such as EMEV2 from former NEC Electronics.
541 bool "Qualcomm MSM timer" if COMPILE_TEST
545 This enables the clocksource and the per CPU clockevent driver for the
548 config CLKSRC_VERSATILE
549 bool "ARM Versatile (Express) reference platforms clock source" if COMPILE_TEST
550 depends on GENERIC_SCHED_CLOCK && !ARCH_USES_GETTIMEOFFSET
552 default y if MFD_VEXPRESS_SYSREG
554 This option enables clock source based on free running
555 counter available in the "System Registers" block of
556 ARM Versatile, RealView and Versatile Express reference
559 config CLKSRC_MIPS_GIC
564 config CLKSRC_TANGO_XTAL
565 bool "Clocksource for Tango SoC" if COMPILE_TEST
570 This enables the clocksource for Tango SoC
573 bool "Clocksource for PXA or SA-11x0 platform" if COMPILE_TEST
574 depends on GENERIC_CLOCKEVENTS
578 This enables OST0 support available on PXA and SA-11x0
582 bool "Clockevent timer for the H8300 platform" if COMPILE_TEST
583 depends on GENERIC_CLOCKEVENTS && HAS_IOMEM
585 This enables the 8 bits timer for the H8300 platform.
588 bool "Clockevent timer for the H83069 platform" if COMPILE_TEST
589 depends on GENERIC_CLOCKEVENTS && HAS_IOMEM
591 This enables the 16 bits timer for the H8300 platform with the
595 bool "Clocksource for the H8300 platform" if COMPILE_TEST
596 depends on GENERIC_CLOCKEVENTS && HAS_IOMEM
598 This enables the clocksource for the H8300 platform with the
601 config CLKSRC_IMX_GPT
602 bool "Clocksource using i.MX GPT" if COMPILE_TEST
603 depends on ARM && CLKDEV_LOOKUP
607 bool "Low power clocksource found in the LPC" if COMPILE_TEST
608 select CLKSRC_OF if OF
612 Enable this option to use the Low Power controller timer