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