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