162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
262306a36Sopenharmony_ci#
362306a36Sopenharmony_ci# Counter devices
462306a36Sopenharmony_ci#
562306a36Sopenharmony_ci
662306a36Sopenharmony_ciconfig I8254
762306a36Sopenharmony_ci	tristate
862306a36Sopenharmony_ci	select COUNTER
962306a36Sopenharmony_ci	select REGMAP
1062306a36Sopenharmony_ci	help
1162306a36Sopenharmony_ci	  Enables support for the i8254 interface library functions. The i8254
1262306a36Sopenharmony_ci	  interface library provides functions to facilitate communication with
1362306a36Sopenharmony_ci	  interfaces compatible with the venerable Intel 8254 Programmable
1462306a36Sopenharmony_ci	  Interval Timer (PIT). The Intel 825x family of chips was first
1562306a36Sopenharmony_ci	  released in the early 1980s but compatible interfaces are nowadays
1662306a36Sopenharmony_ci	  typically found embedded in larger VLSI processing chips and FPGA
1762306a36Sopenharmony_ci	  components.
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ci	  If built as a module its name will be i8254.
2062306a36Sopenharmony_ci
2162306a36Sopenharmony_cimenuconfig COUNTER
2262306a36Sopenharmony_ci	tristate "Counter support"
2362306a36Sopenharmony_ci	help
2462306a36Sopenharmony_ci	  This enables counter device support through the Generic Counter
2562306a36Sopenharmony_ci	  interface. You only need to enable this, if you also want to enable
2662306a36Sopenharmony_ci	  one or more of the counter device drivers below.
2762306a36Sopenharmony_ci
2862306a36Sopenharmony_ciif COUNTER
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ciconfig 104_QUAD_8
3162306a36Sopenharmony_ci	tristate "ACCES 104-QUAD-8 driver"
3262306a36Sopenharmony_ci	depends on (PC104 && X86) || COMPILE_TEST
3362306a36Sopenharmony_ci	depends on HAS_IOPORT_MAP
3462306a36Sopenharmony_ci	select ISA_BUS_API
3562306a36Sopenharmony_ci	select REGMAP_MMIO
3662306a36Sopenharmony_ci	help
3762306a36Sopenharmony_ci	  Say yes here to build support for the ACCES 104-QUAD-8 quadrature
3862306a36Sopenharmony_ci	  encoder counter/interface device family (104-QUAD-8, 104-QUAD-4).
3962306a36Sopenharmony_ci
4062306a36Sopenharmony_ci	  A counter's respective error flag may be cleared by performing a write
4162306a36Sopenharmony_ci	  operation on the respective count value attribute. The 104-QUAD-8
4262306a36Sopenharmony_ci	  counters may be set either directly or via the counter's preset
4362306a36Sopenharmony_ci	  attribute.
4462306a36Sopenharmony_ci
4562306a36Sopenharmony_ci	  The base port addresses for the devices may be configured via the base
4662306a36Sopenharmony_ci	  array module parameter. The interrupt line numbers for the devices may
4762306a36Sopenharmony_ci	  be configured via the irq array module parameter.
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_ciconfig FTM_QUADDEC
5062306a36Sopenharmony_ci	tristate "Flex Timer Module Quadrature decoder driver"
5162306a36Sopenharmony_ci	depends on SOC_LS1021A || COMPILE_TEST
5262306a36Sopenharmony_ci	depends on HAS_IOMEM && OF
5362306a36Sopenharmony_ci	help
5462306a36Sopenharmony_ci	  Select this option to enable the Flex Timer Quadrature decoder
5562306a36Sopenharmony_ci	  driver.
5662306a36Sopenharmony_ci
5762306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the
5862306a36Sopenharmony_ci	  module will be called ftm-quaddec.
5962306a36Sopenharmony_ci
6062306a36Sopenharmony_ciconfig INTEL_QEP
6162306a36Sopenharmony_ci	tristate "Intel Quadrature Encoder Peripheral driver"
6262306a36Sopenharmony_ci	depends on X86
6362306a36Sopenharmony_ci	depends on PCI
6462306a36Sopenharmony_ci	help
6562306a36Sopenharmony_ci	  Select this option to enable the Intel Quadrature Encoder Peripheral
6662306a36Sopenharmony_ci	  driver.
6762306a36Sopenharmony_ci
6862306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
6962306a36Sopenharmony_ci	  will be called intel-qep.
7062306a36Sopenharmony_ci
7162306a36Sopenharmony_ciconfig INTERRUPT_CNT
7262306a36Sopenharmony_ci	tristate "Interrupt counter driver"
7362306a36Sopenharmony_ci	depends on GPIOLIB
7462306a36Sopenharmony_ci	help
7562306a36Sopenharmony_ci	  Select this option to enable interrupt counter driver. Any interrupt
7662306a36Sopenharmony_ci	  source can be used by this driver as the event source.
7762306a36Sopenharmony_ci
7862306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the
7962306a36Sopenharmony_ci	  module will be called interrupt-cnt.
8062306a36Sopenharmony_ci
8162306a36Sopenharmony_ciconfig MICROCHIP_TCB_CAPTURE
8262306a36Sopenharmony_ci	tristate "Microchip Timer Counter Capture driver"
8362306a36Sopenharmony_ci	depends on SOC_AT91SAM9 || SOC_SAM_V7 || COMPILE_TEST
8462306a36Sopenharmony_ci	depends on HAS_IOMEM && OF
8562306a36Sopenharmony_ci	select REGMAP_MMIO
8662306a36Sopenharmony_ci	help
8762306a36Sopenharmony_ci	  Select this option to enable the Microchip Timer Counter Block
8862306a36Sopenharmony_ci	  capture driver.
8962306a36Sopenharmony_ci
9062306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the
9162306a36Sopenharmony_ci	  module will be called microchip-tcb-capture.
9262306a36Sopenharmony_ci
9362306a36Sopenharmony_ciconfig RZ_MTU3_CNT
9462306a36Sopenharmony_ci	tristate "Renesas RZ/G2L MTU3a counter driver"
9562306a36Sopenharmony_ci	depends on RZ_MTU3
9662306a36Sopenharmony_ci	help
9762306a36Sopenharmony_ci	  Enable support for MTU3a counter driver found on Renesas RZ/G2L alike
9862306a36Sopenharmony_ci	  SoCs. This IP supports both 16-bit and 32-bit phase counting mode
9962306a36Sopenharmony_ci	  support.
10062306a36Sopenharmony_ci
10162306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the
10262306a36Sopenharmony_ci	  module will be called rz-mtu3-cnt.
10362306a36Sopenharmony_ci
10462306a36Sopenharmony_ciconfig STM32_LPTIMER_CNT
10562306a36Sopenharmony_ci	tristate "STM32 LP Timer encoder counter driver"
10662306a36Sopenharmony_ci	depends on MFD_STM32_LPTIMER || COMPILE_TEST
10762306a36Sopenharmony_ci	help
10862306a36Sopenharmony_ci	  Select this option to enable STM32 Low-Power Timer quadrature encoder
10962306a36Sopenharmony_ci	  and counter driver.
11062306a36Sopenharmony_ci
11162306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the
11262306a36Sopenharmony_ci	  module will be called stm32-lptimer-cnt.
11362306a36Sopenharmony_ci
11462306a36Sopenharmony_ciconfig STM32_TIMER_CNT
11562306a36Sopenharmony_ci	tristate "STM32 Timer encoder counter driver"
11662306a36Sopenharmony_ci	depends on MFD_STM32_TIMERS || COMPILE_TEST
11762306a36Sopenharmony_ci	help
11862306a36Sopenharmony_ci	  Select this option to enable STM32 Timer quadrature encoder
11962306a36Sopenharmony_ci	  and counter driver.
12062306a36Sopenharmony_ci
12162306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the
12262306a36Sopenharmony_ci	  module will be called stm32-timer-cnt.
12362306a36Sopenharmony_ci
12462306a36Sopenharmony_ciconfig TI_ECAP_CAPTURE
12562306a36Sopenharmony_ci	tristate "TI eCAP capture driver"
12662306a36Sopenharmony_ci	depends on ARCH_OMAP2PLUS || ARCH_DAVINCI_DA8XX || ARCH_KEYSTONE || ARCH_K3 || COMPILE_TEST
12762306a36Sopenharmony_ci	depends on HAS_IOMEM
12862306a36Sopenharmony_ci	select REGMAP_MMIO
12962306a36Sopenharmony_ci	help
13062306a36Sopenharmony_ci	  Select this option to enable the Texas Instruments Enhanced Capture
13162306a36Sopenharmony_ci	  (eCAP) driver in input mode.
13262306a36Sopenharmony_ci
13362306a36Sopenharmony_ci	  It can be used to timestamp events (falling/rising edges) detected
13462306a36Sopenharmony_ci	  on ECAP input signal.
13562306a36Sopenharmony_ci
13662306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
13762306a36Sopenharmony_ci	  will be called ti-ecap-capture.
13862306a36Sopenharmony_ci
13962306a36Sopenharmony_ciconfig TI_EQEP
14062306a36Sopenharmony_ci	tristate "TI eQEP counter driver"
14162306a36Sopenharmony_ci	depends on (SOC_AM33XX || COMPILE_TEST)
14262306a36Sopenharmony_ci	select REGMAP_MMIO
14362306a36Sopenharmony_ci	help
14462306a36Sopenharmony_ci	  Select this option to enable the Texas Instruments Enhanced Quadrature
14562306a36Sopenharmony_ci	  Encoder Pulse (eQEP) counter driver.
14662306a36Sopenharmony_ci
14762306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module will be
14862306a36Sopenharmony_ci	  called ti-eqep.
14962306a36Sopenharmony_ci
15062306a36Sopenharmony_ciendif # COUNTER
151