menu "Clock Source drivers"
	depends on !ARCH_USES_GETTIMEOFFSET

config CLKSRC_OF
	bool
	select CLKSRC_PROBE

config CLKSRC_ACPI
	bool
	select CLKSRC_PROBE

config CLKSRC_PROBE
	bool

config CLKSRC_I8253
	bool

config CLKEVT_I8253
	bool

config I8253_LOCK
	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
	depends on GENERIC_CLOCKEVENTS
	select CLKSRC_MMIO
	help
	  Enables the support for the BCM2835 timer driver.

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

config DIGICOLOR_TIMER
	bool "Digicolor timer driver" if COMPILE_TEST
	depends on GENERIC_CLOCKEVENTS
	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
	depends on GENERIC_CLOCKEVENTS
	help
	  Enables the support for the dw_apb timer.

config DW_APB_TIMER_OF
	bool
	select DW_APB_TIMER
	select CLKSRC_OF

config ROCKCHIP_TIMER
	bool "Rockchip timer driver" if COMPILE_TEST
	depends on ARM || ARM64
	select CLKSRC_OF
	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 CLKSRC_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
	depends on GENERIC_CLOCKEVENTS
	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 CLKSRC_OF
	select CLKSRC_MMIO
	help
	  Enables the support for the Orion timer driver

config SUN4I_TIMER
	bool "Sun4i timer driver" if COMPILE_TEST
	depends on GENERIC_CLOCKEVENTS
	depends on HAS_IOMEM
	select CLKSRC_MMIO
	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 GENERIC_CLOCKEVENTS
	depends on HAS_IOMEM
	help
	  Enables support for the VT8500 driver.

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
	depends on GENERIC_CLOCKEVENTS
	select CLKSRC_MMIO
	select CLKSRC_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_NOMADIK_MTU_SCHED_CLOCK
	bool
	depends on CLKSRC_NOMADIK_MTU
	help
	  Use the Multi Timer Unit as the sched_clock.

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

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

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

config MOXART_TIMER
	bool "Moxart timer driver" if COMPILE_TEST
	depends on GENERIC_CLOCKEVENTS
	select CLKSRC_MMIO
	help
	  Enables support for the Moxart timer.

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

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

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

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

config KEYSTONE_TIMER
	bool "Keystone timer driver" if COMPILE_TEST
	depends on GENERIC_CLOCKEVENTS
	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
	depends on GENERIC_CLOCKEVENTS
	select CLKSRC_MMIO
	help
	  Enables support for the Integrator-ap timer.

config CLKSRC_DBX500_PRCMU_SCHED_CLOCK
	bool "Clocksource PRCMU Timer sched_clock"
	depends on (CLKSRC_DBX500_PRCMU && !CLKSRC_NOMADIK_MTU_SCHED_CLOCK)
	default y
	help
	  Use the always on PRCMU Timer as sched_clock

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 GENERIC_CLOCKEVENTS && HAS_IOMEM
	depends on ARM
	select CLKSRC_MMIO
	select CLKSRC_OF
	help
	  Support for the LPC32XX clocksource.

config CLKSRC_PISTACHIO
	bool "Clocksource for Pistachio SoC" if COMPILE_TEST
	depends on HAS_IOMEM
	select CLKSRC_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 CLKSRC_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 CLKSRC_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

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

config ARM_ARCH_TIMER
	bool
	select CLKSRC_OF if OF
	select CLKSRC_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_VCT_ACCESS
	bool "Support for ARM architected timer virtual counter access in userspace"
	default !ARM64
	depends on ARM_ARCH_TIMER
	help
	  This option enables support for reading the ARM architected timer's
	  virtual counter in userspace.

config FSL_ERRATUM_A008585
	bool "Workaround for Freescale/NXP Erratum A-008585"
	default y
	depends on ARM_ARCH_TIMER && ARM64
	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 ARM_GLOBAL_TIMER
	bool "Support for the ARM global timer" if COMPILE_TEST
	select CLKSRC_OF if OF
	depends on ARM
	help
	  This options enables support for the ARM global timer unit

config ARM_TIMER_SP804
	bool "Support for Dual Timer SP804 module"
	depends on GENERIC_SCHED_CLOCK && CLKDEV_LOOKUP
	select CLKSRC_MMIO
	select CLKSRC_OF if OF

config CLKSRC_ARM_GLOBAL_TIMER_SCHED_CLOCK
	bool
	depends on ARM_GLOBAL_TIMER
	default y
	help
	 Use ARM global timer clock source as sched_clock

config ARMV7M_SYSTICK
	bool "Support for the ARMv7M system time" if COMPILE_TEST
	select CLKSRC_OF if OF
	select CLKSRC_MMIO
	help
	  This options enables support for the ARMv7M system timer unit

config ATMEL_PIT
	select CLKSRC_OF if OF
	def_bool SOC_AT91SAM9 || SOC_SAMA5

config ATMEL_ST
	bool "Atmel ST timer support" if COMPILE_TEST
	depends on GENERIC_CLOCKEVENTS
	select CLKSRC_OF
	select MFD_SYSCON
	help
	  Support for the Atmel ST timer.

config CLKSRC_METAG_GENERIC
	def_bool y if METAG
	help
	  This option enables support for the Meta per-thread timers.

config CLKSRC_EXYNOS_MCT
	bool "Exynos multi core timer driver" if COMPILE_TEST
	depends on ARM || ARM64
	help
	  Support for Multi Core Timer controller on Exynos SoCs.

config CLKSRC_SAMSUNG_PWM
	bool "PWM timer driver for Samsung S3C, S5P" if COMPILE_TEST
	depends on GENERIC_CLOCKEVENTS
	depends on HAS_IOMEM
	help
	  This is a new clocksource driver for the PWM timer found in
	  Samsung S3C, S5P and Exynos SoCs, replacing an earlier driver
	  for all devicetree enabled platforms. This driver will be
	  needed only on systems that do not have the Exynos MCT available.

config FSL_FTM_TIMER
	bool "Freescale FlexTimer Module driver" if COMPILE_TEST
	depends on GENERIC_CLOCKEVENTS
	depends on HAS_IOMEM
	select CLKSRC_MMIO
	help
	  Support for Freescale FlexTimer Module (FTM) timer.

config VF_PIT_TIMER
	bool
	select CLKSRC_MMIO
	help
	  Support for Period Interrupt Timer on Freescale Vybrid Family SoCs.

config OXNAS_RPS_TIMER
	bool "Oxford Semiconductor OXNAS RPS Timers driver" if COMPILE_TEST
	depends on GENERIC_CLOCKEVENTS
	select CLKSRC_OF
	select CLKSRC_MMIO
	help
	  This enables support for the Oxford Semiconductor OXNAS RPS timers.

config SYS_SUPPORTS_SH_CMT
        bool

config MTK_TIMER
	bool "Mediatek timer driver" if COMPILE_TEST
	depends on GENERIC_CLOCKEVENTS && HAS_IOMEM
	select CLKSRC_OF
	select CLKSRC_MMIO
	help
	  Support for Mediatek timer driver.

config SYS_SUPPORTS_SH_MTU2
        bool

config SYS_SUPPORTS_SH_TMU
        bool

config SYS_SUPPORTS_EM_STI
        bool

config CLKSRC_JCORE_PIT
	bool "J-Core PIT timer driver" if COMPILE_TEST
	depends on OF
	depends on GENERIC_CLOCKEVENTS
	depends on HAS_IOMEM
	select CLKSRC_MMIO
	help
	  This enables build of clocksource and clockevent driver for
	  the integrated PIT in the J-Core synthesizable, open source SoC.

config SH_TIMER_CMT
	bool "Renesas CMT timer driver" if COMPILE_TEST
	depends on GENERIC_CLOCKEVENTS
	depends on HAS_IOMEM
	default SYS_SUPPORTS_SH_CMT
	help
	  This enables build of a clocksource and clockevent driver for
	  the Compare Match Timer (CMT) hardware available in 16/32/48-bit
	  variants on a wide range of Mobile and Automotive SoCs from Renesas.

config SH_TIMER_MTU2
	bool "Renesas MTU2 timer driver" if COMPILE_TEST
	depends on GENERIC_CLOCKEVENTS
	depends on HAS_IOMEM
	default SYS_SUPPORTS_SH_MTU2
	help
	  This enables build of a clockevent driver for the Multi-Function
	  Timer Pulse Unit 2 (MTU2) hardware available on SoCs from Renesas.
	  This hardware comes with 16 bit-timer registers.

config SH_TIMER_TMU
	bool "Renesas TMU timer driver" if COMPILE_TEST
	depends on GENERIC_CLOCKEVENTS
	depends on HAS_IOMEM
	default SYS_SUPPORTS_SH_TMU
	help
	  This enables build of a clocksource and clockevent driver for
	  the 32-bit Timer Unit (TMU) hardware available on a wide range
	  SoCs from Renesas.

config EM_TIMER_STI
	bool "Renesas STI timer driver" if COMPILE_TEST
	depends on GENERIC_CLOCKEVENTS && HAS_IOMEM
	default SYS_SUPPORTS_EM_STI
	help
	  This enables build of a clocksource and clockevent driver for
	  the 48-bit System Timer (STI) hardware available on a SoCs
	  such as EMEV2 from former NEC Electronics.

config CLKSRC_QCOM
	bool "Qualcomm MSM timer" if COMPILE_TEST
	depends on ARM
	select CLKSRC_OF
	help
	  This enables the clocksource and the per CPU clockevent driver for the
	  Qualcomm SoCs.

config CLKSRC_VERSATILE
	bool "ARM Versatile (Express) reference platforms clock source" if COMPILE_TEST
	depends on GENERIC_SCHED_CLOCK && !ARCH_USES_GETTIMEOFFSET
	select CLKSRC_OF
	default y if MFD_VEXPRESS_SYSREG
	help
	  This option enables clock source based on free running
	  counter available in the "System Registers" block of
	  ARM Versatile, RealView and Versatile Express reference
	  platforms.

config CLKSRC_MIPS_GIC
	bool
	depends on MIPS_GIC
	select CLKSRC_OF

config CLKSRC_TANGO_XTAL
	bool "Clocksource for Tango SoC" if COMPILE_TEST
	depends on ARM
	select CLKSRC_OF
	select CLKSRC_MMIO
	help
	  This enables the clocksource for Tango SoC

config CLKSRC_PXA
	bool "Clocksource for PXA or SA-11x0 platform" if COMPILE_TEST
	depends on GENERIC_CLOCKEVENTS
	depends on HAS_IOMEM
	select CLKSRC_MMIO
	help
	  This enables OST0 support available on PXA and SA-11x0
	  platforms.

config H8300_TMR8
        bool "Clockevent timer for the H8300 platform" if COMPILE_TEST
        depends on GENERIC_CLOCKEVENTS && HAS_IOMEM
	help
	  This enables the 8 bits timer for the H8300 platform.

config H8300_TMR16
        bool "Clockevent timer for the H83069 platform" if COMPILE_TEST
        depends on GENERIC_CLOCKEVENTS && HAS_IOMEM
	help
	  This enables the 16 bits timer for the H8300 platform with the
	  H83069 cpu.

config H8300_TPU
        bool "Clocksource for the H8300 platform" if COMPILE_TEST
        depends on GENERIC_CLOCKEVENTS && HAS_IOMEM
	help
	  This enables the clocksource for the H8300 platform with the
	  H8S2678 cpu.

config CLKSRC_IMX_GPT
	bool "Clocksource using i.MX GPT" if COMPILE_TEST
	depends on ARM && CLKDEV_LOOKUP
	select CLKSRC_MMIO

config CLKSRC_ST_LPC
	bool "Low power clocksource found in the LPC" if COMPILE_TEST
	select CLKSRC_OF if OF
	depends on HAS_IOMEM
	select CLKSRC_MMIO
	help
	  Enable this option to use the Low Power controller timer
	  as clocksource.

endmenu
