# 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_TIMER
	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 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 if 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 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 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 it's 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
	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
	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 OXNAS_RPS_TIMER
	bool "Oxford Semiconductor OXNAS RPS Timers driver" if COMPILE_TEST
	select TIMER_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 HAS_IOMEM
	select TIMER_OF
	select CLKSRC_MMIO
	help
	  Support for Mediatek 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" if 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 H8300_TMR8
	bool "Clockevent timer for the H8300 platform" if COMPILE_TEST
	depends on 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 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 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 || 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_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 ATCPIT100_TIMER
	bool "ATCPIT100 timer driver"
	depends on NDS32 || COMPILE_TEST
	depends on HAS_IOMEM
	select TIMER_OF
	default NDS32
	help
	  This option enables support for the Andestech ATCPIT100 timers.

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 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 || COMPILE_TEST
	select CLKSRC_MMIO
	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.

endmenu
