]> asedeno.scripts.mit.edu Git - linux.git/blob - drivers/clocksource/Kconfig
clocksource/drivers/arm_arch_timer: Introduce generic errata handling infrastructure
[linux.git] / drivers / clocksource / Kconfig
1 menu "Clock Source drivers"
2         depends on !ARCH_USES_GETTIMEOFFSET
3
4 config CLKSRC_OF
5         bool
6         select CLKSRC_PROBE
7
8 config CLKEVT_OF
9         bool
10         select CLKEVT_PROBE
11
12 config CLKSRC_ACPI
13         bool
14         select CLKSRC_PROBE
15
16 config CLKSRC_PROBE
17         bool
18
19 config CLKEVT_PROBE
20         bool
21
22 config CLKSRC_I8253
23         bool
24
25 config CLKEVT_I8253
26         bool
27
28 config I8253_LOCK
29         bool
30
31 config CLKBLD_I8253
32         def_bool y if CLKSRC_I8253 || CLKEVT_I8253 || I8253_LOCK
33
34 config CLKSRC_MMIO
35         bool
36
37 config BCM2835_TIMER
38         bool "BCM2835 timer driver" if COMPILE_TEST
39         depends on GENERIC_CLOCKEVENTS
40         select CLKSRC_MMIO
41         help
42           Enables the support for the BCM2835 timer driver.
43
44 config BCM_KONA_TIMER
45         bool "BCM mobile timer driver" if COMPILE_TEST
46         depends on GENERIC_CLOCKEVENTS
47         select CLKSRC_MMIO
48         help
49           Enables the support for the BCM Kona mobile timer driver.
50
51 config DIGICOLOR_TIMER
52         bool "Digicolor timer driver" if COMPILE_TEST
53         depends on GENERIC_CLOCKEVENTS
54         select CLKSRC_MMIO
55         depends on HAS_IOMEM
56         help
57           Enables the support for the digicolor timer driver.
58
59 config DW_APB_TIMER
60         bool "DW APB timer driver" if COMPILE_TEST
61         depends on GENERIC_CLOCKEVENTS
62         help
63           Enables the support for the dw_apb timer.
64
65 config DW_APB_TIMER_OF
66         bool
67         select DW_APB_TIMER
68         select CLKSRC_OF
69
70 config GEMINI_TIMER
71         bool "Cortina Gemini timer driver" if COMPILE_TEST
72         depends on GENERIC_CLOCKEVENTS
73         depends on HAS_IOMEM
74         select CLKSRC_MMIO
75         select CLKSRC_OF
76         select MFD_SYSCON
77         help
78           Enables support for the Gemini timer
79
80 config ROCKCHIP_TIMER
81         bool "Rockchip timer driver" if COMPILE_TEST
82         depends on ARM || ARM64
83         select CLKSRC_OF
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 CLKSRC_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         depends on GENERIC_CLOCKEVENTS
98         select CLKSRC_MMIO
99         help
100           Enables the support for the Meson6 timer driver.
101
102 config ORION_TIMER
103         bool "Orion timer driver" if COMPILE_TEST
104         depends on ARM
105         select CLKSRC_OF
106         select CLKSRC_MMIO
107         help
108           Enables the support for the Orion timer driver
109
110 config SUN4I_TIMER
111         bool "Sun4i timer driver" if COMPILE_TEST
112         depends on GENERIC_CLOCKEVENTS
113         depends on HAS_IOMEM
114         select CLKSRC_MMIO
115         help
116           Enables support for the Sun4i timer.
117
118 config SUN5I_HSTIMER
119         bool "Sun5i timer driver" if COMPILE_TEST
120         select CLKSRC_MMIO
121         depends on COMMON_CLK
122         help
123           Enables support the Sun5i timer.
124
125 config TEGRA_TIMER
126         bool "Tegra timer driver" if COMPILE_TEST
127         select CLKSRC_MMIO
128         depends on ARM
129         help
130           Enables support for the Tegra driver.
131
132 config VT8500_TIMER
133         bool "VT8500 timer driver" if COMPILE_TEST
134         depends on GENERIC_CLOCKEVENTS
135         depends on HAS_IOMEM
136         help
137           Enables support for the VT8500 driver.
138
139 config CADENCE_TTC_TIMER
140         bool "Cadence TTC timer driver" if COMPILE_TEST
141         depends on COMMON_CLK
142         help
143           Enables support for the cadence ttc driver.
144
145 config ASM9260_TIMER
146         bool "ASM9260 timer driver" if COMPILE_TEST
147         depends on GENERIC_CLOCKEVENTS
148         select CLKSRC_MMIO
149         select CLKSRC_OF
150         help
151           Enables support for the ASM9260 timer.
152
153 config CLKSRC_NOMADIK_MTU
154         bool "Nomakdik clocksource driver" if COMPILE_TEST
155         depends on ARM
156         select CLKSRC_MMIO
157         help
158           Support for Multi Timer Unit. MTU provides access
159           to multiple interrupt generating programmable
160           32-bit free running decrementing counters.
161
162 config CLKSRC_NOMADIK_MTU_SCHED_CLOCK
163         bool
164         depends on CLKSRC_NOMADIK_MTU
165         help
166           Use the Multi Timer Unit as the sched_clock.
167
168 config CLKSRC_DBX500_PRCMU
169         bool "Clocksource PRCMU Timer" if COMPILE_TEST
170         depends on GENERIC_CLOCKEVENTS
171         depends on HAS_IOMEM
172         help
173           Use the always on PRCMU Timer as clocksource
174
175 config CLPS711X_TIMER
176         bool "Cirrus logic timer driver" if COMPILE_TEST
177         depends on GENERIC_CLOCKEVENTS
178         select CLKSRC_MMIO
179         help
180           Enables support for the Cirrus Logic PS711 timer.
181
182 config ATLAS7_TIMER
183         bool "Atlas7 timer driver" if COMPILE_TEST
184         depends on GENERIC_CLOCKEVENTS
185         select CLKSRC_MMIO
186         help
187           Enables support for the Atlas7 timer.
188
189 config MOXART_TIMER
190         bool "Moxart timer driver" if COMPILE_TEST
191         depends on GENERIC_CLOCKEVENTS
192         select CLKSRC_MMIO
193         help
194           Enables support for the Moxart timer.
195
196 config MXS_TIMER
197         bool "Mxs timer driver" if COMPILE_TEST
198         depends on GENERIC_CLOCKEVENTS
199         select CLKSRC_MMIO
200         select STMP_DEVICE
201         help
202           Enables support for the Mxs timer.
203
204 config PRIMA2_TIMER
205         bool "Prima2 timer driver" if COMPILE_TEST
206         depends on GENERIC_CLOCKEVENTS
207         select CLKSRC_MMIO
208         help
209           Enables support for the Prima2 timer.
210
211 config U300_TIMER
212         bool "U300 timer driver" if COMPILE_TEST
213         depends on GENERIC_CLOCKEVENTS
214         depends on ARM
215         select CLKSRC_MMIO
216         help
217           Enables support for the U300 timer.
218
219 config NSPIRE_TIMER
220         bool "NSpire timer driver" if COMPILE_TEST
221         depends on GENERIC_CLOCKEVENTS
222         select CLKSRC_MMIO
223         help
224           Enables support for the Nspire timer.
225
226 config KEYSTONE_TIMER
227         bool "Keystone timer driver" if COMPILE_TEST
228         depends on GENERIC_CLOCKEVENTS
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         depends on GENERIC_CLOCKEVENTS
237         select CLKSRC_MMIO
238         help
239           Enables support for the Integrator-ap timer.
240
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)
244         default y
245         help
246           Use the always on PRCMU Timer as sched_clock
247
248 config CLKSRC_EFM32
249         bool "Clocksource for Energy Micro's EFM32 SoCs" if !ARCH_EFM32
250         depends on OF && ARM && (ARCH_EFM32 || COMPILE_TEST)
251         select CLKSRC_MMIO
252         default ARCH_EFM32
253         help
254           Support to use the timers of EFM32 SoCs as clock source and clock
255           event device.
256
257 config CLKSRC_LPC32XX
258         bool "Clocksource for LPC32XX" if COMPILE_TEST
259         depends on GENERIC_CLOCKEVENTS && HAS_IOMEM
260         depends on ARM
261         select CLKSRC_MMIO
262         select CLKSRC_OF
263         help
264           Support for the LPC32XX clocksource.
265
266 config CLKSRC_PISTACHIO
267         bool "Clocksource for Pistachio SoC" if COMPILE_TEST
268         depends on HAS_IOMEM
269         select CLKSRC_OF
270         help
271           Enables the clocksource for the Pistachio SoC.
272
273 config CLKSRC_TI_32K
274         bool "Texas Instruments 32.768 Hz Clocksource" if COMPILE_TEST
275         depends on GENERIC_SCHED_CLOCK
276         select CLKSRC_OF if OF
277         help
278           This option enables support for Texas Instruments 32.768 Hz clocksource
279           available on many OMAP-like platforms.
280
281 config CLKSRC_NPS
282         bool "NPS400 clocksource driver" if COMPILE_TEST
283         depends on !PHYS_ADDR_T_64BIT
284         select CLKSRC_MMIO
285         select CLKSRC_OF if OF
286         help
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.
290
291 config CLKSRC_STM32
292         bool "Clocksource for STM32 SoCs" if !ARCH_STM32
293         depends on OF && ARM && (ARCH_STM32 || COMPILE_TEST)
294         select CLKSRC_MMIO
295
296 config CLKSRC_MPS2
297         bool "Clocksource for MPS2 SoCs" if COMPILE_TEST
298         depends on GENERIC_SCHED_CLOCK
299         select CLKSRC_MMIO
300         select CLKSRC_OF
301
302 config ARC_TIMERS
303         bool "Support for 32-bit TIMERn counters in ARC Cores" if COMPILE_TEST
304         depends on GENERIC_CLOCKEVENTS
305         select CLKSRC_OF
306         help
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
310
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
315         select CLKSRC_OF
316         help
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
320           as appropriate.
321
322 config ARM_ARCH_TIMER
323         bool
324         select CLKSRC_OF if OF
325         select CLKSRC_ACPI if ACPI
326
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
331         help
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.
344
345 config ARM_ARCH_TIMER_OOL_WORKAROUND
346         bool
347
348 config FSL_ERRATUM_A008585
349         bool "Workaround for Freescale/NXP Erratum A-008585"
350         default y
351         depends on ARM_ARCH_TIMER && ARM64
352         select ARM_ARCH_TIMER_OOL_WORKAROUND
353         help
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.
358
359 config ARM_GLOBAL_TIMER
360         bool "Support for the ARM global timer" if COMPILE_TEST
361         select CLKSRC_OF if OF
362         depends on ARM
363         help
364           This options enables support for the ARM global timer unit
365
366 config ARM_TIMER_SP804
367         bool "Support for Dual Timer SP804 module"
368         depends on GENERIC_SCHED_CLOCK && CLKDEV_LOOKUP
369         select CLKSRC_MMIO
370         select CLKSRC_OF if OF
371
372 config CLKSRC_ARM_GLOBAL_TIMER_SCHED_CLOCK
373         bool
374         depends on ARM_GLOBAL_TIMER
375         default y
376         help
377          Use ARM global timer clock source as sched_clock
378
379 config ARMV7M_SYSTICK
380         bool "Support for the ARMv7M system time" if COMPILE_TEST
381         select CLKSRC_OF if OF
382         select CLKSRC_MMIO
383         help
384           This options enables support for the ARMv7M system timer unit
385
386 config ATMEL_PIT
387         select CLKSRC_OF if OF
388         def_bool SOC_AT91SAM9 || SOC_SAMA5
389
390 config ATMEL_ST
391         bool "Atmel ST timer support" if COMPILE_TEST
392         depends on GENERIC_CLOCKEVENTS
393         select CLKSRC_OF
394         select MFD_SYSCON
395         help
396           Support for the Atmel ST timer.
397
398 config CLKSRC_METAG_GENERIC
399         def_bool y if METAG
400         help
401           This option enables support for the Meta per-thread timers.
402
403 config CLKSRC_EXYNOS_MCT
404         bool "Exynos multi core timer driver" if COMPILE_TEST
405         depends on ARM || ARM64
406         help
407           Support for Multi Core Timer controller on Exynos SoCs.
408
409 config CLKSRC_SAMSUNG_PWM
410         bool "PWM timer driver for Samsung S3C, S5P" if COMPILE_TEST
411         depends on GENERIC_CLOCKEVENTS
412         depends on HAS_IOMEM
413         help
414           This is a new clocksource driver for the PWM timer found in
415           Samsung S3C, S5P and Exynos SoCs, replacing an earlier driver
416           for all devicetree enabled platforms. This driver will be
417           needed only on systems that do not have the Exynos MCT available.
418
419 config FSL_FTM_TIMER
420         bool "Freescale FlexTimer Module driver" if COMPILE_TEST
421         depends on GENERIC_CLOCKEVENTS
422         depends on HAS_IOMEM
423         select CLKSRC_MMIO
424         help
425           Support for Freescale FlexTimer Module (FTM) timer.
426
427 config VF_PIT_TIMER
428         bool
429         select CLKSRC_MMIO
430         help
431           Support for Period Interrupt Timer on Freescale Vybrid Family SoCs.
432
433 config OXNAS_RPS_TIMER
434         bool "Oxford Semiconductor OXNAS RPS Timers driver" if COMPILE_TEST
435         depends on GENERIC_CLOCKEVENTS
436         select CLKSRC_OF
437         select CLKSRC_MMIO
438         help
439           This enables support for the Oxford Semiconductor OXNAS RPS timers.
440
441 config SYS_SUPPORTS_SH_CMT
442         bool
443
444 config MTK_TIMER
445         bool "Mediatek timer driver" if COMPILE_TEST
446         depends on GENERIC_CLOCKEVENTS && HAS_IOMEM
447         select CLKSRC_OF
448         select CLKSRC_MMIO
449         help
450           Support for Mediatek timer driver.
451
452 config SYS_SUPPORTS_SH_MTU2
453         bool
454
455 config SYS_SUPPORTS_SH_TMU
456         bool
457
458 config SYS_SUPPORTS_EM_STI
459         bool
460
461 config CLKSRC_JCORE_PIT
462         bool "J-Core PIT timer driver" if COMPILE_TEST
463         depends on OF
464         depends on GENERIC_CLOCKEVENTS
465         depends on HAS_IOMEM
466         select CLKSRC_MMIO
467         help
468           This enables build of clocksource and clockevent driver for
469           the integrated PIT in the J-Core synthesizable, open source SoC.
470
471 config SH_TIMER_CMT
472         bool "Renesas CMT timer driver" if COMPILE_TEST
473         depends on GENERIC_CLOCKEVENTS
474         depends on HAS_IOMEM
475         default SYS_SUPPORTS_SH_CMT
476         help
477           This enables build of a clocksource and clockevent driver for
478           the Compare Match Timer (CMT) hardware available in 16/32/48-bit
479           variants on a wide range of Mobile and Automotive SoCs from Renesas.
480
481 config SH_TIMER_MTU2
482         bool "Renesas MTU2 timer driver" if COMPILE_TEST
483         depends on GENERIC_CLOCKEVENTS
484         depends on HAS_IOMEM
485         default SYS_SUPPORTS_SH_MTU2
486         help
487           This enables build of a clockevent driver for the Multi-Function
488           Timer Pulse Unit 2 (MTU2) hardware available on SoCs from Renesas.
489           This hardware comes with 16 bit-timer registers.
490
491 config RENESAS_OSTM
492         bool "Renesas OSTM timer driver" if COMPILE_TEST
493         depends on GENERIC_CLOCKEVENTS
494         select CLKSRC_MMIO
495         help
496           Enables the support for the Renesas OSTM.
497
498 config SH_TIMER_TMU
499         bool "Renesas TMU timer driver" if COMPILE_TEST
500         depends on GENERIC_CLOCKEVENTS
501         depends on HAS_IOMEM
502         default SYS_SUPPORTS_SH_TMU
503         help
504           This enables build of a clocksource and clockevent driver for
505           the 32-bit Timer Unit (TMU) hardware available on a wide range
506           SoCs from Renesas.
507
508 config EM_TIMER_STI
509         bool "Renesas STI timer driver" if COMPILE_TEST
510         depends on GENERIC_CLOCKEVENTS && HAS_IOMEM
511         default SYS_SUPPORTS_EM_STI
512         help
513           This enables build of a clocksource and clockevent driver for
514           the 48-bit System Timer (STI) hardware available on a SoCs
515           such as EMEV2 from former NEC Electronics.
516
517 config CLKSRC_QCOM
518         bool "Qualcomm MSM timer" if COMPILE_TEST
519         depends on ARM
520         select CLKSRC_OF
521         help
522           This enables the clocksource and the per CPU clockevent driver for the
523           Qualcomm SoCs.
524
525 config CLKSRC_VERSATILE
526         bool "ARM Versatile (Express) reference platforms clock source" if COMPILE_TEST
527         depends on GENERIC_SCHED_CLOCK && !ARCH_USES_GETTIMEOFFSET
528         select CLKSRC_OF
529         default y if MFD_VEXPRESS_SYSREG
530         help
531           This option enables clock source based on free running
532           counter available in the "System Registers" block of
533           ARM Versatile, RealView and Versatile Express reference
534           platforms.
535
536 config CLKSRC_MIPS_GIC
537         bool
538         depends on MIPS_GIC
539         select CLKSRC_OF
540
541 config CLKSRC_TANGO_XTAL
542         bool "Clocksource for Tango SoC" if COMPILE_TEST
543         depends on ARM
544         select CLKSRC_OF
545         select CLKSRC_MMIO
546         help
547           This enables the clocksource for Tango SoC
548
549 config CLKSRC_PXA
550         bool "Clocksource for PXA or SA-11x0 platform" if COMPILE_TEST
551         depends on GENERIC_CLOCKEVENTS
552         depends on HAS_IOMEM
553         select CLKSRC_MMIO
554         help
555           This enables OST0 support available on PXA and SA-11x0
556           platforms.
557
558 config H8300_TMR8
559         bool "Clockevent timer for the H8300 platform" if COMPILE_TEST
560         depends on GENERIC_CLOCKEVENTS && HAS_IOMEM
561         help
562           This enables the 8 bits timer for the H8300 platform.
563
564 config H8300_TMR16
565         bool "Clockevent timer for the H83069 platform" if COMPILE_TEST
566         depends on GENERIC_CLOCKEVENTS && HAS_IOMEM
567         help
568           This enables the 16 bits timer for the H8300 platform with the
569           H83069 cpu.
570
571 config H8300_TPU
572         bool "Clocksource for the H8300 platform" if COMPILE_TEST
573         depends on GENERIC_CLOCKEVENTS && HAS_IOMEM
574         help
575           This enables the clocksource for the H8300 platform with the
576           H8S2678 cpu.
577
578 config CLKSRC_IMX_GPT
579         bool "Clocksource using i.MX GPT" if COMPILE_TEST
580         depends on ARM && CLKDEV_LOOKUP
581         select CLKSRC_MMIO
582
583 config CLKSRC_ST_LPC
584         bool "Low power clocksource found in the LPC" if COMPILE_TEST
585         select CLKSRC_OF if OF
586         depends on HAS_IOMEM
587         select CLKSRC_MMIO
588         help
589           Enable this option to use the Low Power controller timer
590           as clocksource.
591
592 endmenu