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