1What:		/sys/bus/counter/devices/counterX/cascade_counts_enable
2KernelVersion:	6.4
3Contact:	linux-iio@vger.kernel.org
4Description:
5		Indicates the cascading of Counts on Counter X.
6
7		Valid attribute values are boolean.
8
9What:		/sys/bus/counter/devices/counterX/external_input_phase_clock_select
10KernelVersion:	6.4
11Contact:	linux-iio@vger.kernel.org
12Description:
13		Selects the external clock pin for phase counting mode of
14		Counter X.
15
16		MTCLKA-MTCLKB:
17			MTCLKA and MTCLKB pins are selected for the external
18			phase clock.
19
20		MTCLKC-MTCLKD:
21			MTCLKC and MTCLKD pins are selected for the external
22			phase clock.
23
24What:		/sys/bus/counter/devices/counterX/external_input_phase_clock_select_available
25KernelVersion:  6.4
26Contact:        linux-iio@vger.kernel.org
27Description:
28                Discrete set of available values for the respective device
29                configuration are listed in this file.
30
31What:		/sys/bus/counter/devices/counterX/countY/count
32KernelVersion:	5.2
33Contact:	linux-iio@vger.kernel.org
34Description:
35		Count data of Count Y represented as a string.
36
37What:		/sys/bus/counter/devices/counterX/countY/capture
38KernelVersion:	6.1
39Contact:	linux-iio@vger.kernel.org
40Description:
41		Historical capture of the Count Y count data.
42
43What:		/sys/bus/counter/devices/counterX/countY/ceiling
44KernelVersion:	5.2
45Contact:	linux-iio@vger.kernel.org
46Description:
47		Count value ceiling for Count Y. This is the upper limit for the
48		respective counter.
49
50What:		/sys/bus/counter/devices/counterX/countY/floor
51KernelVersion:	5.2
52Contact:	linux-iio@vger.kernel.org
53Description:
54		Count value floor for Count Y. This is the lower limit for the
55		respective counter.
56
57What:		/sys/bus/counter/devices/counterX/countY/count_mode
58KernelVersion:	5.2
59Contact:	linux-iio@vger.kernel.org
60Description:
61		Count mode for channel Y. The ceiling and floor values for
62		Count Y are used by the count mode where required. The following
63		count modes are available:
64
65		normal:
66			Counting is continuous in either direction.
67
68		range limit:
69			An upper or lower limit is set, mimicking limit switches
70			in the mechanical counterpart. The upper limit is set to
71			the Count Y ceiling value, while the lower limit is set
72			to the Count Y floor value. The counter freezes at
73			count = ceiling when counting up, and at count = floor
74			when counting down. At either of these limits, the
75			counting is resumed only when the count direction is
76			reversed.
77
78		non-recycle:
79			The counter is disabled whenever a counter overflow or
80			underflow takes place. The counter is re-enabled when a
81			new count value is loaded to the counter via a preset
82			operation or direct write.
83
84		modulo-n:
85			A count value boundary is set between the Count Y floor
86			value and the Count Y ceiling value. The counter is
87			reset to the Count Y floor value at count = ceiling when
88			counting up, while the counter is set to the Count Y
89			ceiling value at count = floor when counting down; the
90			counter does not freeze at the boundary points, but
91			counts continuously throughout.
92
93		interrupt on terminal count:
94			The output signal is initially low, and will remain low
95			until the counter reaches zero. The output signal then
96			goes high and remains high until a new preset value is
97			set.
98
99		hardware retriggerable one-shot:
100			The output signal is initially high. The output signal
101			will go low by a trigger input signal, and will remain
102			low until the counter reaches zero. The output will then
103			go high and remain high until the next trigger. A
104			trigger results in loading the counter to the preset
105			value and setting the output signal low, thus starting
106			the one-shot pulse.
107
108		rate generator:
109			The output signal is initially high. When the counter
110			has decremented to 1, the output signal goes low for one
111			clock pulse. The output signal then goes high again, the
112			counter is reloaded to the preset value, and the process
113			repeats in a periodic manner as such.
114
115		square wave mode:
116			The output signal is initially high.
117
118			If the initial count is even, the counter is decremented
119			by two on succeeding clock pulses. When the count
120			expires, the output signal changes value and the
121			counter is reloaded to the preset value. The process
122			repeats in periodic manner as such.
123
124			If the initial count is odd, the initial count minus one
125			(an even number) is loaded and then is decremented by
126			two on succeeding clock pulses. One clock pulse after
127			the count expires, the output signal goes low and the
128			counter is reloaded to the preset value minus one.
129			Succeeding clock pulses decrement the count by two. When
130			the count expires, the output goes high again and the
131			counter is reloaded to the preset value minus one. The
132			process repeats in a periodic manner as such.
133
134		software triggered strobe:
135			The output signal is initially high. When the count
136			expires, the output will go low for one clock pulse and
137			then go high again. The counting sequence is "triggered"
138			by setting the preset value.
139
140		hardware triggered strobe:
141			The output signal is initially high. Counting is started
142			by a trigger input signal. When the count expires, the
143			output signal will go low for one clock pulse and then
144			go high again. A trigger results in loading the counter
145			to the preset value.
146
147What:		/sys/bus/counter/devices/counterX/countY/count_mode_available
148What:		/sys/bus/counter/devices/counterX/countY/error_noise_available
149What:		/sys/bus/counter/devices/counterX/countY/function_available
150What:		/sys/bus/counter/devices/counterX/countY/prescaler_available
151What:		/sys/bus/counter/devices/counterX/countY/signalZ_action_available
152KernelVersion:	5.2
153Contact:	linux-iio@vger.kernel.org
154Description:
155		Discrete set of available values for the respective Count Y
156		configuration are listed in this file. Values are delimited by
157		newline characters.
158
159What:		/sys/bus/counter/devices/counterX/countY/direction
160KernelVersion:	5.2
161Contact:	linux-iio@vger.kernel.org
162Description:
163		Read-only attribute that indicates the count direction of Count
164		Y. Two count directions are available: forward and backward.
165
166		Some counter devices are able to determine the direction of
167		their counting. For example, quadrature encoding counters can
168		determine the direction of movement by evaluating the leading
169		phase of the respective A and B quadrature encoding signals.
170		This attribute exposes such count directions.
171
172What:		/sys/bus/counter/devices/counterX/countY/enable
173KernelVersion:	5.2
174Contact:	linux-iio@vger.kernel.org
175Description:
176		Whether channel Y counter is enabled. Valid attribute values are
177		boolean.
178
179		This attribute is intended to serve as a pause/unpause mechanism
180		for Count Y. Suppose a counter device is used to count the total
181		movement of a conveyor belt: this attribute allows an operator
182		to temporarily pause the counter, service the conveyor belt,
183		and then finally unpause the counter to continue where it had
184		left off.
185
186What:		/sys/bus/counter/devices/counterX/countY/error_noise
187KernelVersion:	5.2
188Contact:	linux-iio@vger.kernel.org
189Description:
190		Read-only attribute that indicates whether excessive noise is
191		present at the channel Y counter inputs.
192
193What:		/sys/bus/counter/devices/counterX/countY/function
194KernelVersion:	5.2
195Contact:	linux-iio@vger.kernel.org
196Description:
197		Count function mode of Count Y; count function evaluation is
198		triggered by conditions specified by the Count Y signalZ_action
199		attributes. The following count functions are available:
200
201		increase:
202			Accumulated count is incremented.
203
204		decrease:
205			Accumulated count is decremented.
206
207		pulse-direction:
208			Rising edges on signal A updates the respective count.
209			The input level of signal B determines direction.
210
211		quadrature x1 a:
212			If direction is forward, rising edges on quadrature pair
213			signal A updates the respective count; if the direction
214			is backward, falling edges on quadrature pair signal A
215			updates the respective count. Quadrature encoding
216			determines the direction.
217
218		quadrature x1 b:
219			If direction is forward, rising edges on quadrature pair
220			signal B updates the respective count; if the direction
221			is backward, falling edges on quadrature pair signal B
222			updates the respective count. Quadrature encoding
223			determines the direction.
224
225		quadrature x2 a:
226			Any state transition on quadrature pair signal A updates
227			the respective count. Quadrature encoding determines the
228			direction.
229
230		quadrature x2 b:
231			Any state transition on quadrature pair signal B updates
232			the respective count. Quadrature encoding determines the
233			direction.
234
235		quadrature x4:
236			Any state transition on either quadrature pair signals
237			updates	the respective count. Quadrature encoding
238			determines the direction.
239
240What:		/sys/bus/counter/devices/counterX/countY/name
241KernelVersion:	5.2
242Contact:	linux-iio@vger.kernel.org
243Description:
244		Read-only attribute that indicates the device-specific name of
245		Count Y. If possible, this should match the name of the
246		respective channel as it appears in the device datasheet.
247
248What:		/sys/bus/counter/devices/counterX/countY/prescaler
249KernelVersion:	5.2
250Contact:	linux-iio@vger.kernel.org
251Description:
252		Configure the prescaler value associated with Count Y.
253		On the FlexTimer, the counter clock source passes through a
254		prescaler (i.e. a counter). This acts like a clock
255		divider.
256
257What:		/sys/bus/counter/devices/counterX/countY/preset
258KernelVersion:	5.2
259Contact:	linux-iio@vger.kernel.org
260Description:
261		If the counter device supports preset registers -- registers
262		used to load counter channels to a set count upon device-defined
263		preset operation trigger events -- the preset count for channel
264		Y is provided by this attribute.
265
266What:		/sys/bus/counter/devices/counterX/countY/preset_enable
267KernelVersion:	5.2
268Contact:	linux-iio@vger.kernel.org
269Description:
270		Whether channel Y counter preset operation is enabled. Valid
271		attribute values are boolean.
272
273What:		/sys/bus/counter/devices/counterX/countY/signalZ_action
274KernelVersion:	5.2
275Contact:	linux-iio@vger.kernel.org
276Description:
277		Action mode of Count Y for Signal Z. This attribute indicates
278		the condition of Signal Z that triggers the count function
279		evaluation for Count Y. The following action modes are
280		available:
281
282		none:
283			Signal does not trigger the count function. In
284			Pulse-Direction count function mode, this Signal is
285			evaluated as Direction.
286
287		rising edge:
288			Low state transitions to high state.
289
290		falling edge:
291			High state transitions to low state.
292
293		both edges:
294			Any state transition.
295
296What:		/sys/bus/counter/devices/counterX/countY/num_overflows
297KernelVersion:	6.1
298Contact:	linux-iio@vger.kernel.org
299Description:
300		This attribute indicates the number of overflows of count Y.
301
302What:		/sys/bus/counter/devices/counterX/cascade_counts_enable_component_id
303What:		/sys/bus/counter/devices/counterX/external_input_phase_clock_select_component_id
304What:		/sys/bus/counter/devices/counterX/countY/capture_component_id
305What:		/sys/bus/counter/devices/counterX/countY/ceiling_component_id
306What:		/sys/bus/counter/devices/counterX/countY/floor_component_id
307What:		/sys/bus/counter/devices/counterX/countY/count_mode_component_id
308What:		/sys/bus/counter/devices/counterX/countY/direction_component_id
309What:		/sys/bus/counter/devices/counterX/countY/enable_component_id
310What:		/sys/bus/counter/devices/counterX/countY/error_noise_component_id
311What:		/sys/bus/counter/devices/counterX/countY/prescaler_component_id
312What:		/sys/bus/counter/devices/counterX/countY/preset_component_id
313What:		/sys/bus/counter/devices/counterX/countY/preset_enable_component_id
314What:		/sys/bus/counter/devices/counterX/countY/signalZ_action_component_id
315What:		/sys/bus/counter/devices/counterX/countY/num_overflows_component_id
316What:		/sys/bus/counter/devices/counterX/signalY/cable_fault_component_id
317What:		/sys/bus/counter/devices/counterX/signalY/cable_fault_enable_component_id
318What:		/sys/bus/counter/devices/counterX/signalY/filter_clock_prescaler_component_id
319What:		/sys/bus/counter/devices/counterX/signalY/index_polarity_component_id
320What:		/sys/bus/counter/devices/counterX/signalY/polarity_component_id
321What:		/sys/bus/counter/devices/counterX/signalY/synchronous_mode_component_id
322What:		/sys/bus/counter/devices/counterX/signalY/frequency_component_id
323KernelVersion:	5.16
324Contact:	linux-iio@vger.kernel.org
325Description:
326		Read-only attribute that indicates the component ID of the
327		respective extension or Synapse.
328
329What:		/sys/bus/counter/devices/counterX/countY/spike_filter_ns
330KernelVersion:	5.14
331Contact:	linux-iio@vger.kernel.org
332Description:
333		If the counter device supports programmable spike filter this
334		attribute indicates the value in nanoseconds where noise pulses
335		shorter or equal to configured value are ignored. Value 0 means
336		filter is disabled.
337
338What:		/sys/bus/counter/devices/counterX/events_queue_size
339KernelVersion:	5.16
340Contact:	linux-iio@vger.kernel.org
341Description:
342		Size of the Counter events queue in number of struct
343		counter_event data structures. The number of elements will be
344		rounded-up to a power of 2.
345
346What:		/sys/bus/counter/devices/counterX/name
347KernelVersion:	5.2
348Contact:	linux-iio@vger.kernel.org
349Description:
350		Read-only attribute that indicates the device-specific name of
351		the Counter. This should match the name of the device as it
352		appears in its respective datasheet.
353
354What:		/sys/bus/counter/devices/counterX/num_counts
355KernelVersion:	5.2
356Contact:	linux-iio@vger.kernel.org
357Description:
358		Read-only attribute that indicates the total number of Counts
359		belonging to the Counter.
360
361What:		/sys/bus/counter/devices/counterX/num_signals
362KernelVersion:	5.2
363Contact:	linux-iio@vger.kernel.org
364Description:
365		Read-only attribute that indicates the total number of Signals
366		belonging to the Counter.
367
368What:		/sys/bus/counter/devices/counterX/signalY/cable_fault
369KernelVersion:	5.7
370Contact:	linux-iio@vger.kernel.org
371Description:
372		Read-only attribute that indicates whether a differential
373		encoder cable fault (not connected or loose wires) is detected
374		for the respective channel of Signal Y. Valid attribute values
375		are boolean. Detection must first be enabled via the
376		corresponding cable_fault_enable attribute.
377
378What:		/sys/bus/counter/devices/counterX/signalY/cable_fault_enable
379KernelVersion:	5.7
380Contact:	linux-iio@vger.kernel.org
381Description:
382		Whether detection of differential encoder cable faults for the
383		respective channel of Signal Y is enabled. Valid attribute
384		values are boolean.
385
386What:		/sys/bus/counter/devices/counterX/signalY/filter_clock_prescaler
387KernelVersion:	5.7
388Contact:	linux-iio@vger.kernel.org
389Description:
390		Filter clock factor for input Signal Y. This prescaler value
391		affects the inputs of both quadrature pair signals.
392
393What:		/sys/bus/counter/devices/counterX/signalY/index_polarity
394KernelVersion:	5.2
395Contact:	linux-iio@vger.kernel.org
396Description:
397		Active level of index input Signal Y; irrelevant in
398		non-synchronous load mode.
399
400What:		/sys/bus/counter/devices/counterX/signalY/index_polarity_available
401What:		/sys/bus/counter/devices/counterX/signalY/synchronous_mode_available
402KernelVersion:	5.2
403Contact:	linux-iio@vger.kernel.org
404Description:
405		Discrete set of available values for the respective Signal Y
406		configuration are listed in this file.
407
408What:		/sys/bus/counter/devices/counterX/signalY/polarity
409KernelVersion:	6.1
410Contact:	linux-iio@vger.kernel.org
411Description:
412		Active level of Signal Y. The following polarity values are
413		available:
414
415		positive:
416			Signal high state considered active level (rising edge).
417
418		negative:
419			Signal low state considered active level (falling edge).
420
421What:		/sys/bus/counter/devices/counterX/signalY/name
422KernelVersion:	5.2
423Contact:	linux-iio@vger.kernel.org
424Description:
425		Read-only attribute that indicates the device-specific name of
426		Signal Y. If possible, this should match the name of the
427		respective signal as it appears in the device datasheet.
428
429What:		/sys/bus/counter/devices/counterX/signalY/signal
430KernelVersion:	5.2
431Contact:	linux-iio@vger.kernel.org
432Description:
433		Signal level state of Signal Y. The following signal level
434		states are available:
435
436		low:
437			Low level state.
438
439		high:
440			High level state.
441
442What:		/sys/bus/counter/devices/counterX/signalY/synchronous_mode
443KernelVersion:	5.2
444Contact:	linux-iio@vger.kernel.org
445Description:
446		Configure the counter associated with Signal Y for
447		non-synchronous or synchronous load mode. Synchronous load mode
448		cannot be selected in non-quadrature (Pulse-Direction) clock
449		mode.
450
451		non-synchronous:
452			A logic low level is the active level at this index
453			input. The index function (as enabled via preset_enable)
454			is performed directly on the active level of the index
455			input.
456
457		synchronous:
458			Intended for interfacing with encoder Index output in
459			quadrature clock mode. The active level is configured
460			via index_polarity. The index function (as enabled via
461			preset_enable) is performed synchronously with the
462			quadrature clock on the active level of the index input.
463
464What:		/sys/bus/counter/devices/counterX/signalY/frequency
465KernelVersion:	6.1
466Contact:	linux-iio@vger.kernel.org
467Description:
468		Read-only attribute that indicates the signal Y frequency, in Hz.
469