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