1What:		/sys/bus/counter/devices/counterX/countY/count
2KernelVersion:	5.2
3Contact:	linux-iio@vger.kernel.org
4Description:
5		Count data of Count Y represented as a string.
6
7What:		/sys/bus/counter/devices/counterX/countY/ceiling
8KernelVersion:	5.2
9Contact:	linux-iio@vger.kernel.org
10Description:
11		Count value ceiling for Count Y. This is the upper limit for the
12		respective counter.
13
14What:		/sys/bus/counter/devices/counterX/countY/floor
15KernelVersion:	5.2
16Contact:	linux-iio@vger.kernel.org
17Description:
18		Count value floor for Count Y. This is the lower limit for the
19		respective counter.
20
21What:		/sys/bus/counter/devices/counterX/countY/count_mode
22KernelVersion:	5.2
23Contact:	linux-iio@vger.kernel.org
24Description:
25		Count mode for channel Y. The ceiling and floor values for
26		Count Y are used by the count mode where required. The following
27		count modes are available:
28
29		normal:
30			Counting is continuous in either direction.
31
32		range limit:
33			An upper or lower limit is set, mimicking limit switches
34			in the mechanical counterpart. The upper limit is set to
35			the Count Y ceiling value, while the lower limit is set
36			to the Count Y floor value. The counter freezes at
37			count = ceiling when counting up, and at count = floor
38			when counting down. At either of these limits, the
39			counting is resumed only when the count direction is
40			reversed.
41
42		non-recycle:
43			The counter is disabled whenever a counter overflow or
44			underflow takes place. The counter is re-enabled when a
45			new count value is loaded to the counter via a preset
46			operation or direct write.
47
48		modulo-n:
49			A count value boundary is set between the Count Y floor
50			value and the Count Y ceiling value. The counter is
51			reset to the Count Y floor value at count = ceiling when
52			counting up, while the counter is set to the Count Y
53			ceiling value at count = floor when counting down; the
54			counter does not freeze at the boundary points, but
55			counts continuously throughout.
56
57What:		/sys/bus/counter/devices/counterX/countY/count_mode_available
58What:		/sys/bus/counter/devices/counterX/countY/error_noise_available
59What:		/sys/bus/counter/devices/counterX/countY/function_available
60What:		/sys/bus/counter/devices/counterX/countY/prescaler_available
61What:		/sys/bus/counter/devices/counterX/countY/signalZ_action_available
62KernelVersion:	5.2
63Contact:	linux-iio@vger.kernel.org
64Description:
65		Discrete set of available values for the respective Count Y
66		configuration are listed in this file. Values are delimited by
67		newline characters.
68
69What:		/sys/bus/counter/devices/counterX/countY/direction
70KernelVersion:	5.2
71Contact:	linux-iio@vger.kernel.org
72Description:
73		Read-only attribute that indicates the count direction of Count
74		Y. Two count directions are available: forward and backward.
75
76		Some counter devices are able to determine the direction of
77		their counting. For example, quadrature encoding counters can
78		determine the direction of movement by evaluating the leading
79		phase of the respective A and B quadrature encoding signals.
80		This attribute exposes such count directions.
81
82What:		/sys/bus/counter/devices/counterX/countY/enable
83KernelVersion:	5.2
84Contact:	linux-iio@vger.kernel.org
85Description:
86		Whether channel Y counter is enabled. Valid attribute values are
87		boolean.
88
89		This attribute is intended to serve as a pause/unpause mechanism
90		for Count Y. Suppose a counter device is used to count the total
91		movement of a conveyor belt: this attribute allows an operator
92		to temporarily pause the counter, service the conveyor belt,
93		and then finally unpause the counter to continue where it had
94		left off.
95
96What:		/sys/bus/counter/devices/counterX/countY/error_noise
97KernelVersion:	5.2
98Contact:	linux-iio@vger.kernel.org
99Description:
100		Read-only attribute that indicates whether excessive noise is
101		present at the channel Y counter inputs.
102
103What:		/sys/bus/counter/devices/counterX/countY/function
104KernelVersion:	5.2
105Contact:	linux-iio@vger.kernel.org
106Description:
107		Count function mode of Count Y; count function evaluation is
108		triggered by conditions specified by the Count Y signalZ_action
109		attributes. The following count functions are available:
110
111		increase:
112			Accumulated count is incremented.
113
114		decrease:
115			Accumulated count is decremented.
116
117		pulse-direction:
118			Rising edges on signal A updates the respective count.
119			The input level of signal B determines direction.
120
121		quadrature x1 a:
122			If direction is forward, rising edges on quadrature pair
123			signal A updates the respective count; if the direction
124			is backward, falling edges on quadrature pair signal A
125			updates the respective count. Quadrature encoding
126			determines the direction.
127
128		quadrature x1 b:
129			If direction is forward, rising edges on quadrature pair
130			signal B updates the respective count; if the direction
131			is backward, falling edges on quadrature pair signal B
132			updates the respective count. Quadrature encoding
133			determines the direction.
134
135		quadrature x2 a:
136			Any state transition on quadrature pair signal A updates
137			the respective count. Quadrature encoding determines the
138			direction.
139
140		quadrature x2 b:
141			Any state transition on quadrature pair signal B updates
142			the respective count. Quadrature encoding determines the
143			direction.
144
145		quadrature x4:
146			Any state transition on either quadrature pair signals
147			updates	the respective count. Quadrature encoding
148			determines the direction.
149
150What:		/sys/bus/counter/devices/counterX/countY/name
151KernelVersion:	5.2
152Contact:	linux-iio@vger.kernel.org
153Description:
154		Read-only attribute that indicates the device-specific name of
155		Count Y. If possible, this should match the name of the
156		respective channel as it appears in the device datasheet.
157
158What:		/sys/bus/counter/devices/counterX/countY/prescaler
159KernelVersion:	5.2
160Contact:	linux-iio@vger.kernel.org
161Description:
162		Configure the prescaler value associated with Count Y.
163		On the FlexTimer, the counter clock source passes through a
164		prescaler (i.e. a counter). This acts like a clock
165		divider.
166
167What:		/sys/bus/counter/devices/counterX/countY/preset
168KernelVersion:	5.2
169Contact:	linux-iio@vger.kernel.org
170Description:
171		If the counter device supports preset registers -- registers
172		used to load counter channels to a set count upon device-defined
173		preset operation trigger events -- the preset count for channel
174		Y is provided by this attribute.
175
176What:		/sys/bus/counter/devices/counterX/countY/preset_enable
177KernelVersion:	5.2
178Contact:	linux-iio@vger.kernel.org
179Description:
180		Whether channel Y counter preset operation is enabled. Valid
181		attribute values are boolean.
182
183What:		/sys/bus/counter/devices/counterX/countY/signalZ_action
184KernelVersion:	5.2
185Contact:	linux-iio@vger.kernel.org
186Description:
187		Action mode of Count Y for Signal Z. This attribute indicates
188		the condition of Signal Z that triggers the count function
189		evaluation for Count Y. The following action modes are
190		available:
191
192		none:
193			Signal does not trigger the count function. In
194			Pulse-Direction count function mode, this Signal is
195			evaluated as Direction.
196
197		rising edge:
198			Low state transitions to high state.
199
200		falling edge:
201			High state transitions to low state.
202
203		both edges:
204			Any state transition.
205
206What:		/sys/bus/counter/devices/counterX/countY/spike_filter_ns
207KernelVersion:	5.14
208Contact:	linux-iio@vger.kernel.org
209Description:
210		If the counter device supports programmable spike filter this
211		attribute indicates the value in nanoseconds where noise pulses
212		shorter or equal to configured value are ignored. Value 0 means
213		filter is disabled.
214
215What:		/sys/bus/counter/devices/counterX/name
216KernelVersion:	5.2
217Contact:	linux-iio@vger.kernel.org
218Description:
219		Read-only attribute that indicates the device-specific name of
220		the Counter. This should match the name of the device as it
221		appears in its respective datasheet.
222
223What:		/sys/bus/counter/devices/counterX/num_counts
224KernelVersion:	5.2
225Contact:	linux-iio@vger.kernel.org
226Description:
227		Read-only attribute that indicates the total number of Counts
228		belonging to the Counter.
229
230What:		/sys/bus/counter/devices/counterX/num_signals
231KernelVersion:	5.2
232Contact:	linux-iio@vger.kernel.org
233Description:
234		Read-only attribute that indicates the total number of Signals
235		belonging to the Counter.
236
237What:		/sys/bus/counter/devices/counterX/signalY/cable_fault
238KernelVersion:	5.7
239Contact:	linux-iio@vger.kernel.org
240Description:
241		Read-only attribute that indicates whether a differential
242		encoder cable fault (not connected or loose wires) is detected
243		for the respective channel of Signal Y. Valid attribute values
244		are boolean. Detection must first be enabled via the
245		corresponding cable_fault_enable attribute.
246
247What:		/sys/bus/counter/devices/counterX/signalY/cable_fault_enable
248KernelVersion:	5.7
249Contact:	linux-iio@vger.kernel.org
250Description:
251		Whether detection of differential encoder cable faults for the
252		respective channel of Signal Y is enabled. Valid attribute
253		values are boolean.
254
255What:		/sys/bus/counter/devices/counterX/signalY/filter_clock_prescaler
256KernelVersion:	5.7
257Contact:	linux-iio@vger.kernel.org
258Description:
259		Filter clock factor for input Signal Y. This prescaler value
260		affects the inputs of both quadrature pair signals.
261
262What:		/sys/bus/counter/devices/counterX/signalY/index_polarity
263KernelVersion:	5.2
264Contact:	linux-iio@vger.kernel.org
265Description:
266		Active level of index input Signal Y; irrelevant in
267		non-synchronous load mode.
268
269What:		/sys/bus/counter/devices/counterX/signalY/index_polarity_available
270What:		/sys/bus/counter/devices/counterX/signalY/synchronous_mode_available
271KernelVersion:	5.2
272Contact:	linux-iio@vger.kernel.org
273Description:
274		Discrete set of available values for the respective Signal Y
275		configuration are listed in this file.
276
277What:		/sys/bus/counter/devices/counterX/signalY/name
278KernelVersion:	5.2
279Contact:	linux-iio@vger.kernel.org
280Description:
281		Read-only attribute that indicates the device-specific name of
282		Signal Y. If possible, this should match the name of the
283		respective signal as it appears in the device datasheet.
284
285What:		/sys/bus/counter/devices/counterX/signalY/signal
286KernelVersion:	5.2
287Contact:	linux-iio@vger.kernel.org
288Description:
289		Signal data of Signal Y represented as a string.
290
291What:		/sys/bus/counter/devices/counterX/signalY/synchronous_mode
292KernelVersion:	5.2
293Contact:	linux-iio@vger.kernel.org
294Description:
295		Configure the counter associated with Signal Y for
296		non-synchronous or synchronous load mode. Synchronous load mode
297		cannot be selected in non-quadrature (Pulse-Direction) clock
298		mode.
299
300		non-synchronous:
301			A logic low level is the active level at this index
302			input. The index function (as enabled via preset_enable)
303			is performed directly on the active level of the index
304			input.
305
306		synchronous:
307			Intended for interfacing with encoder Index output in
308			quadrature clock mode. The active level is configured
309			via index_polarity. The index function (as enabled via
310			preset_enable) is performed synchronously with the
311			quadrature clock on the active level of the index input.
312