# SPDX-License-Identifier: GPL-2.0-only
#
# Counter devices
#

menuconfig COUNTER
	tristate "Counter support"
	help
	  This enables counter device support through the Generic Counter
	  interface. You only need to enable this, if you also want to enable
	  one or more of the counter device drivers below.

if COUNTER

config 104_QUAD_8
	tristate "ACCES 104-QUAD-8 driver"
	depends on PC104 && X86
	select ISA_BUS_API
	help
	  Say yes here to build support for the ACCES 104-QUAD-8 quadrature
	  encoder counter/interface device family (104-QUAD-8, 104-QUAD-4).

	  A counter's respective error flag may be cleared by performing a write
	  operation on the respective count value attribute. Although the
	  104-QUAD-8 counters have a 25-bit range, only the lower 24 bits may be
	  set, either directly or via the counter's preset attribute. Interrupts
	  are not supported by this driver.

	  The base port addresses for the devices may be configured via the base
	  array module parameter.

config INTERRUPT_CNT
	tristate "Interrupt counter driver"
	depends on GPIOLIB
	help
	  Select this option to enable interrupt counter driver. Any interrupt
	  source can be used by this driver as the event source.

	  To compile this driver as a module, choose M here: the
	  module will be called interrupt-cnt.

config STM32_TIMER_CNT
	tristate "STM32 Timer encoder counter driver"
	depends on MFD_STM32_TIMERS || COMPILE_TEST
	help
	  Select this option to enable STM32 Timer quadrature encoder
	  and counter driver.

	  To compile this driver as a module, choose M here: the
	  module will be called stm32-timer-cnt.

config STM32_LPTIMER_CNT
	tristate "STM32 LP Timer encoder counter driver"
	depends on MFD_STM32_LPTIMER || COMPILE_TEST
	help
	  Select this option to enable STM32 Low-Power Timer quadrature encoder
	  and counter driver.

	  To compile this driver as a module, choose M here: the
	  module will be called stm32-lptimer-cnt.

config TI_EQEP
	tristate "TI eQEP counter driver"
	depends on (SOC_AM33XX || COMPILE_TEST)
	select REGMAP_MMIO
	help
	  Select this option to enable the Texas Instruments Enhanced Quadrature
	  Encoder Pulse (eQEP) counter driver.

	  To compile this driver as a module, choose M here: the module will be
	  called ti-eqep.

config FTM_QUADDEC
	tristate "Flex Timer Module Quadrature decoder driver"
	depends on HAS_IOMEM && OF
	help
	  Select this option to enable the Flex Timer Quadrature decoder
	  driver.

	  To compile this driver as a module, choose M here: the
	  module will be called ftm-quaddec.

config MICROCHIP_TCB_CAPTURE
	tristate "Microchip Timer Counter Capture driver"
	depends on HAS_IOMEM && OF
	select REGMAP_MMIO
	help
	  Select this option to enable the Microchip Timer Counter Block
	  capture driver.

	  To compile this driver as a module, choose M here: the
	  module will be called microchip-tcb-capture.

config INTEL_QEP
	tristate "Intel Quadrature Encoder Peripheral driver"
	depends on PCI
	help
	  Select this option to enable the Intel Quadrature Encoder Peripheral
	  driver.

	  To compile this driver as a module, choose M here: the module
	  will be called intel-qep.

endif # COUNTER
