menu "Clock Source drivers"
	depends on GENERIC_CLOCKEVENTS

config TIMER_OF
	bool
	select TIMER_PROBE

config TIMER_ACPI
	bool
	select TIMER_PROBE

config TIMER_PROBE
	bool

config CLKSRC_I8253
	bool

config CLKEVT_I8253
	bool

config I8253_LOCK
	bool

config OMAP_DM_TIMER
	bool

config CLKBLD_I8253
	def_bool y if CLKSRC_I8253 || CLKEVT_I8253 || I8253_LOCK

config CLKSRC_MMIO
	bool

config BCM2835_TIMER
	bool "BCM2835 timer driver" if COMPILE_TEST
	select CLKSRC_MMIO
	help
	  Enables the support for the BCM2835 timer driver.

config BCM_KONA_TIMER
	bool "BCM mobile timer driver" if COMPILE_TEST
	select CLKSRC_MMIO
	help
	  Enables the support for the BCM Kona mobile timer driver.

config DIGICOLOR_TIMER
	bool "Digicolor timer driver" if COMPILE_TEST
	select CLKSRC_MMIO
	depends on HAS_IOMEM
	help
	  Enables the support for the digicolor timer driver.

config DW_APB_TIMER
	bool "DW APB timer driver" if COMPILE_TEST
	help
	  Enables the support for the dw_apb timer.

config DW_APB_TIMER_OF
	bool
	select DW_APB_TIMER
	select TIMER_OF

config FTTMR010_TIMER
	bool "Faraday Technology timer driver" if COMPILE_TEST
	depends on HAS_IOMEM
	select CLKSRC_MMIO
	select TIMER_OF
	select MFD_SYSCON
	help
	  Enables support for the Faraday Technology timer block
	  FTTMR010.

config ROCKCHIP_TIMER
	bool "Rockchip timer driver" if COMPILE_TEST
	depends on ARM || ARM64
	select TIMER_OF
	select CLKSRC_MMIO
	help
	  Enables the support for the rockchip timer driver.

config ARMADA_370_XP_TIMER
	bool "Armada 370 and XP timer driver" if COMPILE_TEST
	depends on ARM
	select TIMER_OF
	select CLKSRC_MMIO
	help
	  Enables the support for the Armada 370 and XP timer driver.

config MESON6_TIMER
	bool "Meson6 timer driver" if COMPILE_TEST
	select CLKSRC_MMIO
	help
	  Enables the support for the Meson6 timer driver.

config ORION_TIMER
	bool "Orion timer driver" if COMPILE_TEST
	depends on ARM
	select TIMER_OF
	select CLKSRC_MMIO
	help
	  Enables the support for the Orion timer driver

config OWL_TIMER
	bool "Owl timer driver" if COMPILE_TEST
	select CLKSRC_MMIO
	help
	  Enables the support for the Actions Semi Owl timer driver.

config RDA_TIMER
	bool "RDA timer driver" if COMPILE_TEST
	depends on GENERIC_CLOCKEVENTS
	select CLKSRC_MMIO
	select TIMER_OF
	help
	  Enables the support for the RDA Micro timer driver.

config SUN4I_TIMER
	bool "Sun4i timer driver" if COMPILE_TEST
	depends on HAS_IOMEM
	select CLKSRC_MMIO
	select TIMER_OF
	help
	  Enables support for the Sun4i timer.

config SUN5I_HSTIMER
	bool "Sun5i timer driver" if COMPILE_TEST
	select CLKSRC_MMIO
	depends on COMMON_CLK
	help
	  Enables support the Sun5i timer.

config TEGRA_TIMER
	bool "Tegra timer driver" if COMPILE_TEST
	select CLKSRC_MMIO
	depends on ARM
	help
	  Enables support for the Tegra driver.

config VT8500_TIMER
	bool "VT8500 timer driver" if COMPILE_TEST
	depends on HAS_IOMEM
	help
	  Enables support for the VT8500 driver.

config NPCM7XX_TIMER
	bool "NPCM7xx timer driver" if COMPILE_TEST
	depends on HAS_IOMEM
	select CLKSRC_MMIO
	help
	  Enable 24-bit TIMER0 and TIMER1 counters in the NPCM7xx architecture,
	  While TIMER0 serves as clockevent and TIMER1 serves as clocksource.

config CADENCE_TTC_TIMER
	bool "Cadence TTC timer driver" if COMPILE_TEST
	depends on COMMON_CLK
	help
	  Enables support for the cadence ttc driver.

config ASM9260_TIMER
	bool "ASM9260 timer driver" if COMPILE_TEST
	select CLKSRC_MMIO
	select TIMER_OF
	help
	  Enables support for the ASM9260 timer.

config CLKSRC_NOMADIK_MTU
	bool "Nomakdik clocksource driver" if COMPILE_TEST
	depends on ARM
	select CLKSRC_MMIO
	help
	  Support for Multi Timer Unit. MTU provides access
	  to multiple interrupt generating programmable
	  32-bit free running decrementing counters.

config CLKSRC_DBX500_PRCMU
	bool "Clocksource PRCMU Timer" if COMPILE_TEST
	depends on HAS_IOMEM
	help
	  Use the always on PRCMU Timer as clocksource

config CLPS711X_TIMER
	bool "Cirrus logic timer driver" if COMPILE_TEST
	select CLKSRC_MMIO
	help
	  Enables support for the Cirrus Logic PS711 timer.

config ATLAS7_TIMER
	bool "Atlas7 timer driver" if COMPILE_TEST
	select CLKSRC_MMIO
	help
	  Enables support for the Atlas7 timer.

config MXS_TIMER
	bool "Mxs timer driver" if COMPILE_TEST
	select CLKSRC_MMIO
	select STMP_DEVICE
	help
	  Enables support for the Mxs timer.

config PRIMA2_TIMER
	bool "Prima2 timer driver" if COMPILE_TEST
	select CLKSRC_MMIO
	help
	  Enables support for the Prima2 timer.

config U300_TIMER
	bool "U300 timer driver" if COMPILE_TEST
	depends on ARM
	select CLKSRC_MMIO
	help
	  Enables support for the U300 timer.

config NSPIRE_TIMER
	bool "NSpire timer driver" if COMPILE_TEST
	select CLKSRC_MMIO
	help
	  Enables support for the Nspire timer.

config KEYSTONE_TIMER
	bool "Keystone timer driver" if COMPILE_TEST
	depends on ARM || ARM64
	select CLKSRC_MMIO
	help
	  Enables support for the Keystone timer.

config INTEGRATOR_AP_TIMER
	bool "Integrator-ap timer driver" if COMPILE_TEST
	select CLKSRC_MMIO
	help
	  Enables support for the Integrator-ap timer.

config CLKSRC_EFM32
	bool "Clocksource for Energy Micro's EFM32 SoCs" if !ARCH_EFM32
	depends on OF && ARM && (ARCH_EFM32 || COMPILE_TEST)
	select CLKSRC_MMIO
	default ARCH_EFM32
	help
	  Support to use the timers of EFM32 SoCs as clock source and clock
	  event device.

config CLKSRC_LPC32XX
	bool "Clocksource for LPC32XX" if COMPILE_TEST
	depends on HAS_IOMEM
	depends on ARM
	select CLKSRC_MMIO
	select TIMER_OF
	help
	  Support for the LPC32XX clocksource.

config CLKSRC_PISTACHIO
	bool "Clocksource for Pistachio SoC" if COMPILE_TEST
	depends on HAS_IOMEM
	select TIMER_OF
	help
	  Enables the clocksource for the Pistachio SoC.

config CLKSRC_TI_32K
	bool "Texas Instruments 32.768 Hz Clocksource" if COMPILE_TEST
	depends on GENERIC_SCHED_CLOCK
	select TIMER_OF if OF
	help
	  This option enables support for Texas Instruments 32.768 Hz clocksource
	  available on many OMAP-like platforms.

config CLKSRC_NPS
	bool "NPS400 clocksource driver" if COMPILE_TEST
	depends on !PHYS_ADDR_T_64BIT
	select CLKSRC_MMIO
	select TIMER_OF if OF
	help
	  NPS400 clocksource support.
	  Got 64 bit counter with update rate up to 1000MHz.
	  This counter is accessed via couple of 32 bit memory mapped registers.

config CLKSRC_STM32
	bool "Clocksource for STM32 SoCs" if !ARCH_STM32
	depends on OF && ARM && (ARCH_STM32 || COMPILE_TEST)
	select CLKSRC_MMIO
	select TIMER_OF

config CLKSRC_MPS2
	bool "Clocksource for MPS2 SoCs" if COMPILE_TEST
	depends on GENERIC_SCHED_CLOCK
	select CLKSRC_MMIO
	select TIMER_OF

config ARC_TIMERS
	bool "Support for 32-bit TIMERn counters in ARC Cores" if COMPILE_TEST
	depends on GENERIC_SCHED_CLOCK
	select TIMER_OF
	help
	  These are legacy 32-bit TIMER0 and TIMER1 counters found on all ARC cores
	  (ARC700 as well as ARC HS38).
	  TIMER0 serves as clockevent while TIMER1 provides clocksource

config ARC_TIMERS_64BIT
	bool "Support for 64-bit counters in ARC HS38 cores" if COMPILE_TEST
	depends on ARC_TIMERS
	select TIMER_OF
	help
	  This enables 2 different 64-bit timers: RTC (for UP) and GFRC (for SMP)
	  RTC is implemented inside the core, while GFRC sits outside the core in
	  ARConnect IP block. Driver automatically picks one of them for clocksource
	  as appropriate.

config ARM_ARCH_TIMER
	bool
	select TIMER_OF if OF
	select TIMER_ACPI if ACPI

config ARM_ARCH_TIMER_EVTSTREAM
	bool "Enable ARM architected timer event stream generation by default"
	default y if ARM_ARCH_TIMER
	depends on ARM_ARCH_TIMER
	help
	  This option enables support by default for event stream generation
	  based on the ARM architected timer. It is used for waking up CPUs
	  executing the wfe instruction at a frequency represented as a
	  power-of-2 divisor of the clock rate. The behaviour can also be
	  overridden on the command line using the
	  clocksource.arm_arch_timer.evtstream parameter.
	  The main use of the event stream is wfe-based timeouts of userspace
	  locking implementations. It might also be useful for imposing timeout
	  on wfe to safeguard against any programming errors in case an expected
	  event is not generated.
	  This must be disabled for hardware validation purposes to detect any
	  hardware anomalies of missing events.

config ARM_ARCH_TIMER_OOL_WORKAROUND
	bool

config FSL_ERRATUM_A008585
	bool "Workaround for Freescale/NXP Erratum A-008585"
	default y
	depends on ARM_ARCH_TIMER && ARM64
	select ARM_ARCH_TIMER_OOL_WORKAROUND
	help
	  This option enables a workaround for Freescale/NXP Erratum
	  A-008585 ("ARM generic timer may contain an erroneous
	  value").  The workaround will only be active if the
	  fsl,erratum-a008585 property is found in the timer node.

config HISILICON_ERRATUM_161010101
	bool "Workaround for Hisilicon Erratum 161010101"
	default y
	select ARM_ARCH_TIMER_OOL_WORKAROUND
	depends on ARM_ARCH_TIMER && ARM64
	help
	  This option enables a workaround for Hisilicon Erratum
	  161010101. The workaround will be active if the hisilicon,erratum-161010101
	  property is found in the timer node.

config ARM64_ERRATUM_858921
	bool "Workaround for Cortex-A73 erratum 858921"
	default y
	select ARM_ARCH_TIMER_OOL_WORKAROUND
	depends on ARM_ARCH_TIMER && ARM64
	help
	  This option enables a workaround applicable to Cortex-A73
	  (all versions), whose counter may return incorrect values.
	  The workaround will be dynamically enabled when an affected
	  core is detected.

config SUN50I_ERRATUM_UNKNOWN1
	bool "Workaround for Allwinner A64 erratum UNKNOWN1"
	default y
	depends on ARM_ARCH_TIMER && ARM64 && ARCH_SUNXI
	select ARM_ARCH_TIMER_OOL_WORKAROUND
	help
	  This option enables a workaround for instability in the timer on
	  the Allwinner A64 SoC. The workaro                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       