1# SPDX-License-Identifier: GPL-2.0-only
2#
3# Counter devices
4#
5
6config I8254
7	tristate
8	select COUNTER
9	select REGMAP
10	help
11	  Enables support for the i8254 interface library functions. The i8254
12	  interface library provides functions to facilitate communication with
13	  interfaces compatible with the venerable Intel 8254 Programmable
14	  Interval Timer (PIT). The Intel 825x family of chips was first
15	  released in the early 1980s but compatible interfaces are nowadays
16	  typically found embedded in larger VLSI processing chips and FPGA
17	  components.
18
19	  If built as a module its name will be i8254.
20
21menuconfig COUNTER
22	tristate "Counter support"
23	help
24	  This enables counter device support through the Generic Counter
25	  interface. You only need to enable this, if you also want to enable
26	  one or more of the counter device drivers below.
27
28if COUNTER
29
30config 104_QUAD_8
31	tristate "ACCES 104-QUAD-8 driver"
32	depends on (PC104 && X86) || COMPILE_TEST
33	depends on HAS_IOPORT_MAP
34	select ISA_BUS_API
35	select REGMAP_MMIO
36	help
37	  Say yes here to build support for the ACCES 104-QUAD-8 quadrature
38	  encoder counter/interface device family (104-QUAD-8, 104-QUAD-4).
39
40	  A counter's respective error flag may be cleared by performing a write
41	  operation on the respective count value attribute. The 104-QUAD-8
42	  counters may be set either directly or via the counter's preset
43	  attribute.
44
45	  The base port addresses for the devices may be configured via the base
46	  array module parameter. The interrupt line numbers for the devices may
47	  be configured via the irq array module parameter.
48
49config FTM_QUADDEC
50	tristate "Flex Timer Module Quadrature decoder driver"
51	depends on SOC_LS1021A || COMPILE_TEST
52	depends on HAS_IOMEM && OF
53	help
54	  Select this option to enable the Flex Timer Quadrature decoder
55	  driver.
56
57	  To compile this driver as a module, choose M here: the
58	  module will be called ftm-quaddec.
59
60config INTEL_QEP
61	tristate "Intel Quadrature Encoder Peripheral driver"
62	depends on X86
63	depends on PCI
64	help
65	  Select this option to enable the Intel Quadrature Encoder Peripheral
66	  driver.
67
68	  To compile this driver as a module, choose M here: the module
69	  will be called intel-qep.
70
71config INTERRUPT_CNT
72	tristate "Interrupt counter driver"
73	depends on GPIOLIB
74	help
75	  Select this option to enable interrupt counter driver. Any interrupt
76	  source can be used by this driver as the event source.
77
78	  To compile this driver as a module, choose M here: the
79	  module will be called interrupt-cnt.
80
81config MICROCHIP_TCB_CAPTURE
82	tristate "Microchip Timer Counter Capture driver"
83	depends on SOC_AT91SAM9 || SOC_SAM_V7 || COMPILE_TEST
84	depends on HAS_IOMEM && OF
85	select REGMAP_MMIO
86	help
87	  Select this option to enable the Microchip Timer Counter Block
88	  capture driver.
89
90	  To compile this driver as a module, choose M here: the
91	  module will be called microchip-tcb-capture.
92
93config RZ_MTU3_CNT
94	tristate "Renesas RZ/G2L MTU3a counter driver"
95	depends on RZ_MTU3
96	help
97	  Enable support for MTU3a counter driver found on Renesas RZ/G2L alike
98	  SoCs. This IP supports both 16-bit and 32-bit phase counting mode
99	  support.
100
101	  To compile this driver as a module, choose M here: the
102	  module will be called rz-mtu3-cnt.
103
104config STM32_LPTIMER_CNT
105	tristate "STM32 LP Timer encoder counter driver"
106	depends on MFD_STM32_LPTIMER || COMPILE_TEST
107	help
108	  Select this option to enable STM32 Low-Power Timer quadrature encoder
109	  and counter driver.
110
111	  To compile this driver as a module, choose M here: the
112	  module will be called stm32-lptimer-cnt.
113
114config STM32_TIMER_CNT
115	tristate "STM32 Timer encoder counter driver"
116	depends on MFD_STM32_TIMERS || COMPILE_TEST
117	help
118	  Select this option to enable STM32 Timer quadrature encoder
119	  and counter driver.
120
121	  To compile this driver as a module, choose M here: the
122	  module will be called stm32-timer-cnt.
123
124config TI_ECAP_CAPTURE
125	tristate "TI eCAP capture driver"
126	depends on ARCH_OMAP2PLUS || ARCH_DAVINCI_DA8XX || ARCH_KEYSTONE || ARCH_K3 || COMPILE_TEST
127	depends on HAS_IOMEM
128	select REGMAP_MMIO
129	help
130	  Select this option to enable the Texas Instruments Enhanced Capture
131	  (eCAP) driver in input mode.
132
133	  It can be used to timestamp events (falling/rising edges) detected
134	  on ECAP input signal.
135
136	  To compile this driver as a module, choose M here: the module
137	  will be called ti-ecap-capture.
138
139config TI_EQEP
140	tristate "TI eQEP counter driver"
141	depends on (SOC_AM33XX || COMPILE_TEST)
142	select REGMAP_MMIO
143	help
144	  Select this option to enable the Texas Instruments Enhanced Quadrature
145	  Encoder Pulse (eQEP) counter driver.
146
147	  To compile this driver as a module, choose M here: the module will be
148	  called ti-eqep.
149
150endif # COUNTER
151