# SPDX-License-Identifier: GPL-2.0-only
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_SYSTIMER
	bool
	select TIMER_OF

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 DAVINCI_TIMER
	bool "Texas Instruments DaVinci timer driver" if COMPILE_TEST
	help
	  Enables the support for the TI DaVinci 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 OMAP_DM_TIMER
	bool "OMAP dual-mode timer driver" if ARCH_K3 || COMPILE_TEST
	default y if ARCH_K3
	select TIMER_OF
	help
	  Enables the support for the TI dual-mode 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 IXP4XX_TIMER
	bool "Intel XScale IXP4xx timer driver" if COMPILE_TEST
	depends on HAS_IOMEM
	select CLKSRC_MMIO
	select TIMER_OF
	help
	  Enables support for the Intel XScale IXP4xx SoC timer.

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
	select CLKSRC_MMIO
	select TIMER_OF
	help
	  Enables the support for the RDA Micro timer driver.

config REALTEK_OTTO_TIMER
	bool "Clocksource/timer for the Realtek Otto platform" if COMPILE_TEST
	select TIMER_OF
	help
	  This driver adds support for the timers found in the Realtek RTL83xx
	  and RTL93xx SoCs series. This includes chips such as RTL8380, RTL8381
	  and RTL832, as well as chips from the RTL839x series, such as RTL8390
	  RT8391, RTL8392, RTL8393 and RTL8396 and chips of the RTL930x series
	  such as RTL9301, RTL9302 or RTL9303.

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
	select TIMER_OF
	depends on ARCH_TEGRA || COMPILE_TEST
	help
	  Enables support for the Tegra driver.

config TEGRA186_TIMER
	bool "NVIDIA Tegra186 timer driver"
	depends on ARCH_TEGRA || COMPILE_TEST
	depends on WATCHDOG && WATCHDOG_CORE
	help
	  Enables support for the timers and watchdogs found on NVIDIA
	  Tegra186 and later SoCs.

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 TIMER_OF
	select CLKSRC_MMIO
	help
	  Enable 24-bit TIMER0 and TIMER1 counters in the NPCM7xx architecture,
	  where 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 MXS_TIMER
	bool "MXS timer driver" if COMPILE_TEST
	select CLKSRC_MMIO
	select STMP_DEVICE
	help
	  Enables support for the MXS 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_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"
	depends on HAS_IOMEM
	depends on MIPS || COMPILE_TEST
	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_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_STM32_LP
	bool "Low power clocksource for STM32 SoCs"
	depends on MFD_STM32_LPTIMER || COMPILE_TEST

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 workaround will only be active if the
	  allwinner,erratum-unknown1 property is found in the timer node.

config ARM_GLOBAL_TIMER
	bool "Support for the ARM global timer" if COMPILE_TEST
	select TIMER_OF if OF
	depends on ARM
	help
	  This option enables support for the ARM global timer unit.

config ARM_GT_INITIAL_PRESCALER_VAL
	int "ARM global timer initial prescaler value"
	default 2 if ARCH_ZYNQ
	default 1
	depends on ARM_GLOBAL_TIMER
	help
	  When the ARM global timer initializes, its current rate is declared
	  to the kernel and maintained forever. Should its parent clock
	  change, the driver tries to fix the timer's internal prescaler.
	  On some machs (i.e. Zynq) the initial prescaler value thus poses
	  bounds about how much the parent clock is allowed to decrease or
	  increase wrt the initial clock value.
	  This affects CPU_FREQ max delta from the initial frequency.

config ARM_TIMER_SP804
	bool "Support for Dual Timer SP804 module" if COMPILE_TEST
	depends on GENERIC_SCHED_CLOCK && HAVE_CLK
	select CLKSRC_MMIO
	select TIMER_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 TIMER_OF if OF
	select CLKSRC_MMIO
	help
	  This option enables support for the ARMv7M system timer unit.

config ATMEL_PIT
	bool "Atmel PIT support" if COMPILE_TEST
	depends on HAS_IOMEM
	select TIMER_OF if OF
	help
	  Support for the Periodic Interval Timer found on Atmel SoCs.

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

config ATMEL_TCB_CLKSRC
	bool "Atmel TC Block timer driver" if COMPILE_TEST
	depends on ARM && HAS_IOMEM
	select TIMER_OF if OF
	help
	  Support for Timer Counter Blocks on Atmel SoCs.

config CLKSRC_EXYNOS_MCT
	bool "Exynos multi core timer driver" if COMPILE_TEST
	depends on ARM || ARM64
	depends on ARCH_ARTPEC || ARCH_EXYNOS || COMPILE_TEST
	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 HAS_IOMEM
	depends on ARCH_EXYNOS || ARCH_S3C64XX || ARCH_S5PV210 || COMPILE_TEST
	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 HAS_IOMEM
	select CLKSRC_MMIO
	help
	  Support for Freescale FlexTimer Module (FTM) timer.

config VF_PIT_TIMER
	bool
	select CLKSRC_MMIO
	help
	  Support for Periodic 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 HAS_IOMEM
	select TIMER_OF
	select CLKSRC_MMIO
	help
	  Support for Mediatek timer driver.

config MTK_CPUX_TIMER
	bool "MediaTek CPUX timer driver" if COMPILE_TEST
	depends on HAS_IOMEM
	default ARCH_MEDIATEK
	select TIMER_OF
	select CLKSRC_MMIO
	help
	  Support for MediaTek CPUXGPT timer driver.

config SPRD_TIMER
	bool "Spreadtrum timer driver" if EXPERT
	depends on HAS_IOMEM
	depends on (ARCH_SPRD || COMPILE_TEST)
	default ARCH_SPRD
	select TIMER_OF
	help
	  Enables support for the Spreadtrum 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 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 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 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 RENESAS_OSTM
	bool "Renesas OSTM timer driver"
	depends on ARCH_RENESAS || COMPILE_TEST
	select CLKSRC_MMIO
	select TIMER_OF
	help
	  Enables the support for the Renesas OSTM.

config SH_TIMER_TMU
	bool "Renesas TMU timer driver" if COMPILE_TEST
	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 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 TIMER_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
	select TIMER_OF
	default y if (ARCH_VEXPRESS || ARCH_VERSATILE) && ARM
	help
	  This option enables clock source based on free running
	  counter available in the "System Registers" block of
	  ARM Versatile and Versatile Express reference platforms.

config CLKSRC_MIPS_GIC
	bool
	depends on MIPS_GIC
	select CLOCKSOURCE_WATCHDOG
	select TIMER_OF

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

config CLKSRC_IMX_GPT
	bool "Clocksource using i.MX GPT" if COMPILE_TEST
	depends on (ARM || ARM64) && HAVE_CLK
	select CLKSRC_MMIO

config CLKSRC_IMX_TPM
	bool "Clocksource using i.MX TPM" if COMPILE_TEST
	depends on (ARM || ARM64) && HAVE_CLK
	select CLKSRC_MMIO
	select TIMER_OF
	help
	  Enable this option to use IMX Timer/PWM Module (TPM) timer as
	  clocksource.

config TIMER_IMX_SYS_CTR
	bool "i.MX system counter timer" if COMPILE_TEST
	select TIMER_OF
	help
	  Enable this option to use i.MX system counter timer as a
	  clockevent.

config CLKSRC_LOONGSON1_PWM
	bool "Clocksource using Loongson1 PWM"
	depends on MACH_LOONGSON32 || COMPILE_TEST
	select MIPS_EXTERNAL_TIMER
	select TIMER_OF
	help
	  Enable this option to use Loongson1 PWM timer as clocksource
	  instead of the performance counter.

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

config GXP_TIMER
	bool "GXP timer driver" if COMPILE_TEST && !ARCH_HPE
	default ARCH_HPE
	select TIMER_OF if OF
	help
	  Provides a driver for the timer control found on HPE
	  GXP SOCs. This is required for all GXP SOCs.

config RISCV_TIMER
	bool "Timer for the RISC-V platform" if COMPILE_TEST
	depends on GENERIC_SCHED_CLOCK && RISCV && RISCV_SBI
	select TIMER_PROBE
	select TIMER_OF
	help
	  This enables the per-hart timer built into all RISC-V systems, which
	  is accessed via both the SBI and the rdcycle instruction.  This is
	  required for all RISC-V systems.

config CLINT_TIMER
	bool "CLINT Timer for the RISC-V platform" if COMPILE_TEST
	depends on GENERIC_SCHED_CLOCK && RISCV
	select TIMER_PROBE
	select TIMER_OF
	help
	  This option enables the CLINT timer for RISC-V systems.  The CLINT
	  driver is usually used for NoMMU RISC-V systems.

config CSKY_MP_TIMER
	bool "SMP Timer for the C-SKY platform" if COMPILE_TEST
	depends on CSKY
	select TIMER_OF
	help
	  Say yes here to enable C-SKY SMP timer driver used for C-SKY SMP
	  system.
	  csky,mptimer is not only used in SMP system, it also could be used in
	  single core system. It's not a mmio reg and it uses mtcr/mfcr instruction.

config GX6605S_TIMER
	bool "Gx6605s SOC system timer driver" if COMPILE_TEST
	depends on CSKY
	select CLKSRC_MMIO
	select TIMER_OF
	help
	  This option enables support for gx6605s SOC's timer.

config MILBEAUT_TIMER
	bool "Milbeaut timer driver" if COMPILE_TEST
	depends on OF
	depends on ARM
	select TIMER_OF
	select CLKSRC_MMIO
	help
	  Enables the support for Milbeaut timer driver.

config MSC313E_TIMER
	bool "MSC313E timer driver" if COMPILE_TEST
	select TIMER_OF
	select CLKSRC_MMIO
	help
	  Enables support for the MStar MSC313E timer driver.
	  This provides access to multiple interrupt generating
	  programmable 32-bit free running incrementing counters.

config INGENIC_TIMER
	bool "Clocksource/timer using the TCU in Ingenic JZ SoCs"
	default MACH_INGENIC
	depends on MIPS || COMPILE_TEST
	depends on COMMON_CLK
	select MFD_SYSCON
	select TIMER_OF
	select IRQ_DOMAIN
	help
	  Support for the timer/counter unit of the Ingenic JZ SoCs.

config INGENIC_SYSOST
	bool "Clocksource/timer using the SYSOST in Ingenic X SoCs"
	depends on MIPS || COMPILE_TEST
	depends on COMMON_CLK
	select MFD_SYSCON
	select TIMER_OF
	select IRQ_DOMAIN
	help
	  Support for the SYSOST of the Ingenic X Series SoCs.

config INGENIC_OST
	bool "Clocksource using the OST in Ingenic JZ SoCs"
	depends on MIPS || COMPILE_TEST
	depends on COMMON_CLK
	select MFD_SYSCON
	help
	  Support for the Operating System Timer of the Ingenic JZ SoCs.

config MICROCHIP_PIT64B
	bool "Microchip PIT64B support"
	depends on OF && ARM
	select TIMER_OF
	help
	  This option enables Microchip PIT64B timer for Atmel
	  based system. It supports the oneshot, the periodic
	  modes and high resolution. It is used as a clocksource
	  and a clockevent.

config GOLDFISH_TIMER
	bool "Clocksource using goldfish-rtc"
	depends on M68K || COMPILE_TEST
	depends on RTC_DRV_GOLDFISH
	help
	  Support for the timer/counter of goldfish-rtc

config EP93XX_TIMER
	bool "Cirrus Logic ep93xx timer driver" if COMPILE_TEST
	depends on ARCH_EP93XX
	depends on GENERIC_CLOCKEVENTS
	depends on HAS_IOMEM
	select CLKSRC_MMIO
	select TIMER_OF
	help
	  Enables support for the Cirrus Logic timer block
	  EP93XX.

endmenu
