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 "Cortina Gemini timer driver" if COMPILE_TEST
72 depends on GENERIC_CLOCKEVENTS
78 Enables support for the Gemini timer
81 bool "Rockchip timer driver" if COMPILE_TEST
82 depends on ARM || ARM64
85 Enables the support for the rockchip timer driver.
87 config ARMADA_370_XP_TIMER
88 bool "Armada 370 and XP timer driver" if COMPILE_TEST
93 Enables the support for the Armada 370 and XP timer driver.
96 bool "Meson6 timer driver" if COMPILE_TEST
97 depends on GENERIC_CLOCKEVENTS
100 Enables the support for the Meson6 timer driver.
103 bool "Orion timer driver" if COMPILE_TEST
108 Enables the support for the Orion timer driver
111 bool "Sun4i timer driver" if COMPILE_TEST
112 depends on GENERIC_CLOCKEVENTS
116 Enables support for the Sun4i timer.
119 bool "Sun5i timer driver" if COMPILE_TEST
121 depends on COMMON_CLK
123 Enables support the Sun5i timer.
126 bool "Tegra timer driver" if COMPILE_TEST
130 Enables support for the Tegra driver.
133 bool "VT8500 timer driver" if COMPILE_TEST
134 depends on GENERIC_CLOCKEVENTS
137 Enables support for the VT8500 driver.
139 config CADENCE_TTC_TIMER
140 bool "Cadence TTC timer driver" if COMPILE_TEST
141 depends on COMMON_CLK
143 Enables support for the cadence ttc driver.
146 bool "ASM9260 timer driver" if COMPILE_TEST
147 depends on GENERIC_CLOCKEVENTS
151 Enables support for the ASM9260 timer.
153 config CLKSRC_NOMADIK_MTU
154 bool "Nomakdik clocksource driver" if COMPILE_TEST
158 Support for Multi Timer Unit. MTU provides access
159 to multiple interrupt generating programmable
160 32-bit free running decrementing counters.
162 config CLKSRC_NOMADIK_MTU_SCHED_CLOCK
164 depends on CLKSRC_NOMADIK_MTU
166 Use the Multi Timer Unit as the sched_clock.
168 config CLKSRC_DBX500_PRCMU
169 bool "Clocksource PRCMU Timer" if COMPILE_TEST
170 depends on GENERIC_CLOCKEVENTS
173 Use the always on PRCMU Timer as clocksource
175 config CLPS711X_TIMER
176 bool "Cirrus logic timer driver" if COMPILE_TEST
177 depends on GENERIC_CLOCKEVENTS
180 Enables support for the Cirrus Logic PS711 timer.
183 bool "Atlas7 timer driver" if COMPILE_TEST
184 depends on GENERIC_CLOCKEVENTS
187 Enables support for the Atlas7 timer.
190 bool "Moxart timer driver" if COMPILE_TEST
191 depends on GENERIC_CLOCKEVENTS
194 Enables support for the Moxart timer.
197 bool "Mxs timer driver" if COMPILE_TEST
198 depends on GENERIC_CLOCKEVENTS
202 Enables support for the Mxs timer.
205 bool "Prima2 timer driver" if COMPILE_TEST
206 depends on GENERIC_CLOCKEVENTS
209 Enables support for the Prima2 timer.
212 bool "U300 timer driver" if COMPILE_TEST
213 depends on GENERIC_CLOCKEVENTS
217 Enables support for the U300 timer.
220 bool "NSpire timer driver" if COMPILE_TEST
221 depends on GENERIC_CLOCKEVENTS
224 Enables support for the Nspire timer.
226 config KEYSTONE_TIMER
227 bool "Keystone timer driver" if COMPILE_TEST
228 depends on GENERIC_CLOCKEVENTS
229 depends on ARM || ARM64
232 Enables support for the Keystone timer.
234 config INTEGRATOR_AP_TIMER
235 bool "Integrator-ap timer driver" if COMPILE_TEST
236 depends on GENERIC_CLOCKEVENTS
239 Enables support for the Integrator-ap timer.
241 config CLKSRC_DBX500_PRCMU_SCHED_CLOCK
242 bool "Clocksource PRCMU Timer sched_clock"
243 depends on (CLKSRC_DBX500_PRCMU && !CLKSRC_NOMADIK_MTU_SCHED_CLOCK)
246 Use the always on PRCMU Timer as sched_clock
249 bool "Clocksource for Energy Micro's EFM32 SoCs" if !ARCH_EFM32
250 depends on OF && ARM && (ARCH_EFM32 || COMPILE_TEST)
254 Support to use the timers of EFM32 SoCs as clock source and clock
257 config CLKSRC_LPC32XX
258 bool "Clocksource for LPC32XX" if COMPILE_TEST
259 depends on GENERIC_CLOCKEVENTS && HAS_IOMEM
264 Support for the LPC32XX clocksource.
266 config CLKSRC_PISTACHIO
267 bool "Clocksource for Pistachio SoC" if COMPILE_TEST
271 Enables the clocksource for the Pistachio SoC.
274 bool "Texas Instruments 32.768 Hz Clocksource" if COMPILE_TEST
275 depends on GENERIC_SCHED_CLOCK
276 select CLKSRC_OF if OF
278 This option enables support for Texas Instruments 32.768 Hz clocksource
279 available on many OMAP-like platforms.
282 bool "NPS400 clocksource driver" if COMPILE_TEST
283 depends on !PHYS_ADDR_T_64BIT
285 select CLKSRC_OF if OF
287 NPS400 clocksource support.
288 Got 64 bit counter with update rate up to 1000MHz.
289 This counter is accessed via couple of 32 bit memory mapped registers.
292 bool "Clocksource for STM32 SoCs" if !ARCH_STM32
293 depends on OF && ARM && (ARCH_STM32 || COMPILE_TEST)
297 bool "Clocksource for MPS2 SoCs" if COMPILE_TEST
298 depends on GENERIC_SCHED_CLOCK
303 bool "Support for 32-bit TIMERn counters in ARC Cores" if COMPILE_TEST
304 depends on GENERIC_CLOCKEVENTS
307 These are legacy 32-bit TIMER0 and TIMER1 counters found on all ARC cores
308 (ARC700 as well as ARC HS38).
309 TIMER0 serves as clockevent while TIMER1 provides clocksource
311 config ARC_TIMERS_64BIT
312 bool "Support for 64-bit counters in ARC HS38 cores" if COMPILE_TEST
313 depends on GENERIC_CLOCKEVENTS
314 depends on ARC_TIMERS
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
322 config ARM_ARCH_TIMER
324 select CLKSRC_OF if OF
325 select CLKSRC_ACPI if ACPI
327 config 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
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.
345 config ARM_ARCH_TIMER_OOL_WORKAROUND
348 config FSL_ERRATUM_A008585
349 bool "Workaround for Freescale/NXP Erratum A-008585"
351 depends on ARM_ARCH_TIMER && ARM64
352 select ARM_ARCH_TIMER_OOL_WORKAROUND
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.
359 config HISILICON_ERRATUM_161010101
360 bool "Workaround for Hisilicon Erratum 161010101"
362 select ARM_ARCH_TIMER_OOL_WORKAROUND
363 depends on ARM_ARCH_TIMER && ARM64
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.
369 config ARM_GLOBAL_TIMER
370 bool "Support for the ARM global timer" if COMPILE_TEST
371 select CLKSRC_OF if OF
374 This options enables support for the ARM global timer unit
376 config ARM_TIMER_SP804
377 bool "Support for Dual Timer SP804 module"
378 depends on GENERIC_SCHED_CLOCK && CLKDEV_LOOKUP
380 select CLKSRC_OF if OF
382 config CLKSRC_ARM_GLOBAL_TIMER_SCHED_CLOCK
384 depends on ARM_GLOBAL_TIMER
387 Use ARM global timer clock source as sched_clock
389 config ARMV7M_SYSTICK
390 bool "Support for the ARMv7M system time" if COMPILE_TEST
391 select CLKSRC_OF if OF
394 This options enables support for the ARMv7M system timer unit
397 select CLKSRC_OF if OF
398 def_bool SOC_AT91SAM9 || SOC_SAMA5
401 bool "Atmel ST timer support" if COMPILE_TEST
402 depends on GENERIC_CLOCKEVENTS
406 Support for the Atmel ST timer.
408 config CLKSRC_METAG_GENERIC
411 This option enables support for the Meta per-thread timers.
413 config CLKSRC_EXYNOS_MCT
414 bool "Exynos multi core timer driver" if COMPILE_TEST
415 depends on ARM || ARM64
417 Support for Multi Core Timer controller on Exynos SoCs.
419 config CLKSRC_SAMSUNG_PWM
420 bool "PWM timer driver for Samsung S3C, S5P" if COMPILE_TEST
421 depends on GENERIC_CLOCKEVENTS
424 This is a new clocksource driver for the PWM timer found in
425 Samsung S3C, S5P and Exynos SoCs, replacing an earlier driver
426 for all devicetree enabled platforms. This driver will be
427 needed only on systems that do not have the Exynos MCT available.
430 bool "Freescale FlexTimer Module driver" if COMPILE_TEST
431 depends on GENERIC_CLOCKEVENTS
435 Support for Freescale FlexTimer Module (FTM) timer.
441 Support for Period Interrupt Timer on Freescale Vybrid Family SoCs.
443 config OXNAS_RPS_TIMER
444 bool "Oxford Semiconductor OXNAS RPS Timers driver" if COMPILE_TEST
445 depends on GENERIC_CLOCKEVENTS
449 This enables support for the Oxford Semiconductor OXNAS RPS timers.
451 config SYS_SUPPORTS_SH_CMT
455 bool "Mediatek timer driver" if COMPILE_TEST
456 depends on GENERIC_CLOCKEVENTS && HAS_IOMEM
460 Support for Mediatek timer driver.
462 config SYS_SUPPORTS_SH_MTU2
465 config SYS_SUPPORTS_SH_TMU
468 config SYS_SUPPORTS_EM_STI
471 config CLKSRC_JCORE_PIT
472 bool "J-Core PIT timer driver" if COMPILE_TEST
474 depends on GENERIC_CLOCKEVENTS
478 This enables build of clocksource and clockevent driver for
479 the integrated PIT in the J-Core synthesizable, open source SoC.
482 bool "Renesas CMT timer driver" if COMPILE_TEST
483 depends on GENERIC_CLOCKEVENTS
485 default SYS_SUPPORTS_SH_CMT
487 This enables build of a clocksource and clockevent driver for
488 the Compare Match Timer (CMT) hardware available in 16/32/48-bit
489 variants on a wide range of Mobile and Automotive SoCs from Renesas.
492 bool "Renesas MTU2 timer driver" if COMPILE_TEST
493 depends on GENERIC_CLOCKEVENTS
495 default SYS_SUPPORTS_SH_MTU2
497 This enables build of a clockevent driver for the Multi-Function
498 Timer Pulse Unit 2 (MTU2) hardware available on SoCs from Renesas.
499 This hardware comes with 16 bit-timer registers.
502 bool "Renesas OSTM timer driver" if COMPILE_TEST
503 depends on GENERIC_CLOCKEVENTS
506 Enables the support for the Renesas OSTM.
509 bool "Renesas TMU timer driver" if COMPILE_TEST
510 depends on GENERIC_CLOCKEVENTS
512 default SYS_SUPPORTS_SH_TMU
514 This enables build of a clocksource and clockevent driver for
515 the 32-bit Timer Unit (TMU) hardware available on a wide range
519 bool "Renesas STI timer driver" if COMPILE_TEST
520 depends on GENERIC_CLOCKEVENTS && HAS_IOMEM
521 default SYS_SUPPORTS_EM_STI
523 This enables build of a clocksource and clockevent driver for
524 the 48-bit System Timer (STI) hardware available on a SoCs
525 such as EMEV2 from former NEC Electronics.
528 bool "Qualcomm MSM timer" if COMPILE_TEST
532 This enables the clocksource and the per CPU clockevent driver for the
535 config CLKSRC_VERSATILE
536 bool "ARM Versatile (Express) reference platforms clock source" if COMPILE_TEST
537 depends on GENERIC_SCHED_CLOCK && !ARCH_USES_GETTIMEOFFSET
539 default y if MFD_VEXPRESS_SYSREG
541 This option enables clock source based on free running
542 counter available in the "System Registers" block of
543 ARM Versatile, RealView and Versatile Express reference
546 config CLKSRC_MIPS_GIC
551 config CLKSRC_TANGO_XTAL
552 bool "Clocksource for Tango SoC" if COMPILE_TEST
557 This enables the clocksource for Tango SoC
560 bool "Clocksource for PXA or SA-11x0 platform" if COMPILE_TEST
561 depends on GENERIC_CLOCKEVENTS
565 This enables OST0 support available on PXA and SA-11x0
569 bool "Clockevent timer for the H8300 platform" if COMPILE_TEST
570 depends on GENERIC_CLOCKEVENTS && HAS_IOMEM
572 This enables the 8 bits timer for the H8300 platform.
575 bool "Clockevent timer for the H83069 platform" if COMPILE_TEST
576 depends on GENERIC_CLOCKEVENTS && HAS_IOMEM
578 This enables the 16 bits timer for the H8300 platform with the
582 bool "Clocksource for the H8300 platform" if COMPILE_TEST
583 depends on GENERIC_CLOCKEVENTS && HAS_IOMEM
585 This enables the clocksource for the H8300 platform with the
588 config CLKSRC_IMX_GPT
589 bool "Clocksource using i.MX GPT" if COMPILE_TEST
590 depends on ARM && CLKDEV_LOOKUP
594 bool "Low power clocksource found in the LPC" if COMPILE_TEST
595 select CLKSRC_OF if OF
599 Enable this option to use the Low Power controller timer