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