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