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