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 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 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 "Support for ARM architected timer event stream generation"
	default y if ARM_ARCH_TIMER
	depends on ARM_ARCH_TIMER
	help
	  This option enables support 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 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_GLOBAL_TIMER
	bool
	select CLKSRC_OF if OF
	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
	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
	select CLKSRC_OF
	select MFD_SYSCON

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
	help
	  Support for Multi Core Timer controller on Exynos SoCs.

config CLKSRC_SAMSUNG_PWM
	bool "PWM timer drvier 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 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 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"
	depends on PLAT_VERSATILE && 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
