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