|  | What:		/sys/bus/counter/devices/counterX/cascade_counts_enable | 
|  | KernelVersion:	6.4 | 
|  | Contact:	linux-iio@vger.kernel.org | 
|  | Description: | 
|  | Indicates the cascading of Counts on Counter X. | 
|  |  | 
|  | Valid attribute values are boolean. | 
|  |  | 
|  | What:		/sys/bus/counter/devices/counterX/external_input_phase_clock_select | 
|  | KernelVersion:	6.4 | 
|  | Contact:	linux-iio@vger.kernel.org | 
|  | Description: | 
|  | Selects the external clock pin for phase counting mode of | 
|  | Counter X. | 
|  |  | 
|  | MTCLKA-MTCLKB: | 
|  | MTCLKA and MTCLKB pins are selected for the external | 
|  | phase clock. | 
|  |  | 
|  | MTCLKC-MTCLKD: | 
|  | MTCLKC and MTCLKD pins are selected for the external | 
|  | phase clock. | 
|  |  | 
|  | What:		/sys/bus/counter/devices/counterX/external_input_phase_clock_select_available | 
|  | KernelVersion:	6.4 | 
|  | Contact:	linux-iio@vger.kernel.org | 
|  | Description: | 
|  | Discrete set of available values for the respective device | 
|  | configuration are listed in this file. | 
|  |  | 
|  | What:		/sys/bus/counter/devices/counterX/countY/count | 
|  | KernelVersion:	5.2 | 
|  | Contact:	linux-iio@vger.kernel.org | 
|  | Description: | 
|  | Count data of Count Y represented as a string. | 
|  |  | 
|  | What:		/sys/bus/counter/devices/counterX/countY/capture | 
|  | KernelVersion:	6.1 | 
|  | Contact:	linux-iio@vger.kernel.org | 
|  | Description: | 
|  | Historical capture of the Count Y count data. | 
|  |  | 
|  | What:		/sys/bus/counter/devices/counterX/countY/ceiling | 
|  | KernelVersion:	5.2 | 
|  | Contact:	linux-iio@vger.kernel.org | 
|  | Description: | 
|  | Count value ceiling for Count Y. This is the upper limit for the | 
|  | respective counter. | 
|  |  | 
|  | What:		/sys/bus/counter/devices/counterX/countY/floor | 
|  | KernelVersion:	5.2 | 
|  | Contact:	linux-iio@vger.kernel.org | 
|  | Description: | 
|  | Count value floor for Count Y. This is the lower limit for the | 
|  | respective counter. | 
|  |  | 
|  | What:		/sys/bus/counter/devices/counterX/countY/count_mode | 
|  | KernelVersion:	5.2 | 
|  | Contact:	linux-iio@vger.kernel.org | 
|  | Description: | 
|  | Count mode for channel Y. The ceiling and floor values for | 
|  | Count Y are used by the count mode where required. The following | 
|  | count modes are available: | 
|  |  | 
|  | normal: | 
|  | Counting is continuous in either direction. | 
|  |  | 
|  | range limit: | 
|  | An upper or lower limit is set, mimicking limit switches | 
|  | in the mechanical counterpart. The upper limit is set to | 
|  | the Count Y ceiling value, while the lower limit is set | 
|  | to the Count Y floor value. The counter freezes at | 
|  | count = ceiling when counting up, and at count = floor | 
|  | when counting down. At either of these limits, the | 
|  | counting is resumed only when the count direction is | 
|  | reversed. | 
|  |  | 
|  | non-recycle: | 
|  | The counter is disabled whenever a counter overflow or | 
|  | underflow takes place. The counter is re-enabled when a | 
|  | new count value is loaded to the counter via a preset | 
|  | operation or direct write. | 
|  |  | 
|  | modulo-n: | 
|  | A count value boundary is set between the Count Y floor | 
|  | value and the Count Y ceiling value. The counter is | 
|  | reset to the Count Y floor value at count = ceiling when | 
|  | counting up, while the counter is set to the Count Y | 
|  | ceiling value at count = floor when counting down; the | 
|  | counter does not freeze at the boundary points, but | 
|  | counts continuously throughout. | 
|  |  | 
|  | interrupt on terminal count: | 
|  | The output signal is initially low, and will remain low | 
|  | until the counter reaches zero. The output signal then | 
|  | goes high and remains high until a new preset value is | 
|  | set. | 
|  |  | 
|  | hardware retriggerable one-shot: | 
|  | The output signal is initially high. The output signal | 
|  | will go low by a trigger input signal, and will remain | 
|  | low until the counter reaches zero. The output will then | 
|  | go high and remain high until the next trigger. A | 
|  | trigger results in loading the counter to the preset | 
|  | value and setting the output signal low, thus starting | 
|  | the one-shot pulse. | 
|  |  | 
|  | rate generator: | 
|  | The output signal is initially high. When the counter | 
|  | has decremented to 1, the output signal goes low for one | 
|  | clock pulse. The output signal then goes high again, the | 
|  | counter is reloaded to the preset value, and the process | 
|  | repeats in a periodic manner as such. | 
|  |  | 
|  | square wave mode: | 
|  | The output signal is initially high. | 
|  |  | 
|  | If the initial count is even, the counter is decremented | 
|  | by two on succeeding clock pulses. When the count | 
|  | expires, the output signal changes value and the | 
|  | counter is reloaded to the preset value. The process | 
|  | repeats in periodic manner as such. | 
|  |  | 
|  | If the initial count is odd, the initial count minus one | 
|  | (an even number) is loaded and then is decremented by | 
|  | two on succeeding clock pulses. One clock pulse after | 
|  | the count expires, the output signal goes low and the | 
|  | counter is reloaded to the preset value minus one. | 
|  | Succeeding clock pulses decrement the count by two. When | 
|  | the count expires, the output goes high again and the | 
|  | counter is reloaded to the preset value minus one. The | 
|  | process repeats in a periodic manner as such. | 
|  |  | 
|  | software triggered strobe: | 
|  | The output signal is initially high. When the count | 
|  | expires, the output will go low for one clock pulse and | 
|  | then go high again. The counting sequence is "triggered" | 
|  | by setting the preset value. | 
|  |  | 
|  | hardware triggered strobe: | 
|  | The output signal is initially high. Counting is started | 
|  | by a trigger input signal. When the count expires, the | 
|  | output signal will go low for one clock pulse and then | 
|  | go high again. A trigger results in loading the counter | 
|  | to the preset value. | 
|  |  | 
|  | What:		/sys/bus/counter/devices/counterX/countY/count_mode_available | 
|  | What:		/sys/bus/counter/devices/counterX/countY/error_noise_available | 
|  | What:		/sys/bus/counter/devices/counterX/countY/function_available | 
|  | What:		/sys/bus/counter/devices/counterX/countY/prescaler_available | 
|  | What:		/sys/bus/counter/devices/counterX/countY/signalZ_action_available | 
|  | KernelVersion:	5.2 | 
|  | Contact:	linux-iio@vger.kernel.org | 
|  | Description: | 
|  | Discrete set of available values for the respective Count Y | 
|  | configuration are listed in this file. Values are delimited by | 
|  | newline characters. | 
|  |  | 
|  | What:		/sys/bus/counter/devices/counterX/countY/direction | 
|  | KernelVersion:	5.2 | 
|  | Contact:	linux-iio@vger.kernel.org | 
|  | Description: | 
|  | Read-only attribute that indicates the count direction of Count | 
|  | Y. Two count directions are available: forward and backward. | 
|  |  | 
|  | Some counter devices are able to determine the direction of | 
|  | their counting. For example, quadrature encoding counters can | 
|  | determine the direction of movement by evaluating the leading | 
|  | phase of the respective A and B quadrature encoding signals. | 
|  | This attribute exposes such count directions. | 
|  |  | 
|  | What:		/sys/bus/counter/devices/counterX/countY/enable | 
|  | KernelVersion:	5.2 | 
|  | Contact:	linux-iio@vger.kernel.org | 
|  | Description: | 
|  | Whether channel Y counter is enabled. Valid attribute values are | 
|  | boolean. | 
|  |  | 
|  | This attribute is intended to serve as a pause/unpause mechanism | 
|  | for Count Y. Suppose a counter device is used to count the total | 
|  | movement of a conveyor belt: this attribute allows an operator | 
|  | to temporarily pause the counter, service the conveyor belt, | 
|  | and then finally unpause the counter to continue where it had | 
|  | left off. | 
|  |  | 
|  | What:		/sys/bus/counter/devices/counterX/countY/error_noise | 
|  | KernelVersion:	5.2 | 
|  | Contact:	linux-iio@vger.kernel.org | 
|  | Description: | 
|  | Read-only attribute that indicates whether excessive noise is | 
|  | present at the channel Y counter inputs. | 
|  |  | 
|  | What:		/sys/bus/counter/devices/counterX/countY/function | 
|  | KernelVersion:	5.2 | 
|  | Contact:	linux-iio@vger.kernel.org | 
|  | Description: | 
|  | Count function mode of Count Y; count function evaluation is | 
|  | triggered by conditions specified by the Count Y signalZ_action | 
|  | attributes. The following count functions are available: | 
|  |  | 
|  | increase: | 
|  | Accumulated count is incremented. | 
|  |  | 
|  | decrease: | 
|  | Accumulated count is decremented. | 
|  |  | 
|  | pulse-direction: | 
|  | Rising edges on signal A updates the respective count. | 
|  | The input level of signal B determines direction. | 
|  |  | 
|  | quadrature x1 a: | 
|  | If direction is forward, rising edges on quadrature pair | 
|  | signal A updates the respective count; if the direction | 
|  | is backward, falling edges on quadrature pair signal A | 
|  | updates the respective count. Quadrature encoding | 
|  | determines the direction. | 
|  |  | 
|  | quadrature x1 b: | 
|  | If direction is forward, rising edges on quadrature pair | 
|  | signal B updates the respective count; if the direction | 
|  | is backward, falling edges on quadrature pair signal B | 
|  | updates the respective count. Quadrature encoding | 
|  | determines the direction. | 
|  |  | 
|  | quadrature x2 a: | 
|  | Any state transition on quadrature pair signal A updates | 
|  | the respective count. Quadrature encoding determines the | 
|  | direction. | 
|  |  | 
|  | quadrature x2 b: | 
|  | Any state transition on quadrature pair signal B updates | 
|  | the respective count. Quadrature encoding determines the | 
|  | direction. | 
|  |  | 
|  | quadrature x4: | 
|  | Any state transition on either quadrature pair signals | 
|  | updates	the respective count. Quadrature encoding | 
|  | determines the direction. | 
|  |  | 
|  | What:		/sys/bus/counter/devices/counterX/countY/name | 
|  | KernelVersion:	5.2 | 
|  | Contact:	linux-iio@vger.kernel.org | 
|  | Description: | 
|  | Read-only attribute that indicates the device-specific name of | 
|  | Count Y. If possible, this should match the name of the | 
|  | respective channel as it appears in the device datasheet. | 
|  |  | 
|  | What:		/sys/bus/counter/devices/counterX/countY/prescaler | 
|  | KernelVersion:	5.2 | 
|  | Contact:	linux-iio@vger.kernel.org | 
|  | Description: | 
|  | Configure the prescaler value associated with Count Y. | 
|  | On the FlexTimer, the counter clock source passes through a | 
|  | prescaler (i.e. a counter). This acts like a clock | 
|  | divider. | 
|  |  | 
|  | What:		/sys/bus/counter/devices/counterX/countY/preset | 
|  | KernelVersion:	5.2 | 
|  | Contact:	linux-iio@vger.kernel.org | 
|  | Description: | 
|  | If the counter device supports preset registers -- registers | 
|  | used to load counter channels to a set count upon device-defined | 
|  | preset operation trigger events -- the preset count for channel | 
|  | Y is provided by this attribute. | 
|  |  | 
|  | What:		/sys/bus/counter/devices/counterX/countY/preset_enable | 
|  | KernelVersion:	5.2 | 
|  | Contact:	linux-iio@vger.kernel.org | 
|  | Description: | 
|  | Whether channel Y counter preset operation is enabled. Valid | 
|  | attribute values are boolean. | 
|  |  | 
|  | What:		/sys/bus/counter/devices/counterX/countY/signalZ_action | 
|  | KernelVersion:	5.2 | 
|  | Contact:	linux-iio@vger.kernel.org | 
|  | Description: | 
|  | Action mode of Count Y for Signal Z. This attribute indicates | 
|  | the condition of Signal Z that triggers the count function | 
|  | evaluation for Count Y. The following action modes are | 
|  | available: | 
|  |  | 
|  | none: | 
|  | Signal does not trigger the count function. In | 
|  | Pulse-Direction count function mode, this Signal is | 
|  | evaluated as Direction. | 
|  |  | 
|  | rising edge: | 
|  | Low state transitions to high state. | 
|  |  | 
|  | falling edge: | 
|  | High state transitions to low state. | 
|  |  | 
|  | both edges: | 
|  | Any state transition. | 
|  |  | 
|  | What:		/sys/bus/counter/devices/counterX/countY/num_overflows | 
|  | KernelVersion:	6.1 | 
|  | Contact:	linux-iio@vger.kernel.org | 
|  | Description: | 
|  | This attribute indicates the number of overflows of count Y. | 
|  |  | 
|  | What:		/sys/bus/counter/devices/counterX/cascade_counts_enable_component_id | 
|  | What:		/sys/bus/counter/devices/counterX/external_input_phase_clock_select_component_id | 
|  | What:		/sys/bus/counter/devices/counterX/countY/capture_component_id | 
|  | What:		/sys/bus/counter/devices/counterX/countY/ceiling_component_id | 
|  | What:		/sys/bus/counter/devices/counterX/countY/floor_component_id | 
|  | What:		/sys/bus/counter/devices/counterX/countY/count_mode_component_id | 
|  | What:		/sys/bus/counter/devices/counterX/countY/direction_component_id | 
|  | What:		/sys/bus/counter/devices/counterX/countY/enable_component_id | 
|  | What:		/sys/bus/counter/devices/counterX/countY/error_noise_component_id | 
|  | What:		/sys/bus/counter/devices/counterX/countY/prescaler_component_id | 
|  | What:		/sys/bus/counter/devices/counterX/countY/preset_component_id | 
|  | What:		/sys/bus/counter/devices/counterX/countY/preset_enable_component_id | 
|  | What:		/sys/bus/counter/devices/counterX/countY/signalZ_action_component_id | 
|  | What:		/sys/bus/counter/devices/counterX/countY/num_overflows_component_id | 
|  | What:		/sys/bus/counter/devices/counterX/signalY/cable_fault_component_id | 
|  | What:		/sys/bus/counter/devices/counterX/signalY/cable_fault_enable_component_id | 
|  | What:		/sys/bus/counter/devices/counterX/signalY/filter_clock_prescaler_component_id | 
|  | What:		/sys/bus/counter/devices/counterX/signalY/index_polarity_component_id | 
|  | What:		/sys/bus/counter/devices/counterX/signalY/polarity_component_id | 
|  | What:		/sys/bus/counter/devices/counterX/signalY/synchronous_mode_component_id | 
|  | What:		/sys/bus/counter/devices/counterX/signalY/frequency_component_id | 
|  | KernelVersion:	5.16 | 
|  | Contact:	linux-iio@vger.kernel.org | 
|  | Description: | 
|  | Read-only attribute that indicates the component ID of the | 
|  | respective extension or Synapse. | 
|  |  | 
|  | What:		/sys/bus/counter/devices/counterX/countY/spike_filter_ns | 
|  | KernelVersion:	5.14 | 
|  | Contact:	linux-iio@vger.kernel.org | 
|  | Description: | 
|  | If the counter device supports programmable spike filter this | 
|  | attribute indicates the value in nanoseconds where noise pulses | 
|  | shorter or equal to configured value are ignored. Value 0 means | 
|  | filter is disabled. | 
|  |  | 
|  | What:		/sys/bus/counter/devices/counterX/events_queue_size | 
|  | KernelVersion:	5.16 | 
|  | Contact:	linux-iio@vger.kernel.org | 
|  | Description: | 
|  | Size of the Counter events queue in number of struct | 
|  | counter_event data structures. The number of elements will be | 
|  | rounded-up to a power of 2. | 
|  |  | 
|  | What:		/sys/bus/counter/devices/counterX/name | 
|  | KernelVersion:	5.2 | 
|  | Contact:	linux-iio@vger.kernel.org | 
|  | Description: | 
|  | Read-only attribute that indicates the device-specific name of | 
|  | the Counter. This should match the name of the device as it | 
|  | appears in its respective datasheet. | 
|  |  | 
|  | What:		/sys/bus/counter/devices/counterX/num_counts | 
|  | KernelVersion:	5.2 | 
|  | Contact:	linux-iio@vger.kernel.org | 
|  | Description: | 
|  | Read-only attribute that indicates the total number of Counts | 
|  | belonging to the Counter. | 
|  |  | 
|  | What:		/sys/bus/counter/devices/counterX/num_signals | 
|  | KernelVersion:	5.2 | 
|  | Contact:	linux-iio@vger.kernel.org | 
|  | Description: | 
|  | Read-only attribute that indicates the total number of Signals | 
|  | belonging to the Counter. | 
|  |  | 
|  | What:		/sys/bus/counter/devices/counterX/signalY/cable_fault | 
|  | KernelVersion:	5.7 | 
|  | Contact:	linux-iio@vger.kernel.org | 
|  | Description: | 
|  | Read-only attribute that indicates whether a differential | 
|  | encoder cable fault (not connected or loose wires) is detected | 
|  | for the respective channel of Signal Y. Valid attribute values | 
|  | are boolean. Detection must first be enabled via the | 
|  | corresponding cable_fault_enable attribute. | 
|  |  | 
|  | What:		/sys/bus/counter/devices/counterX/signalY/cable_fault_enable | 
|  | KernelVersion:	5.7 | 
|  | Contact:	linux-iio@vger.kernel.org | 
|  | Description: | 
|  | Whether detection of differential encoder cable faults for the | 
|  | respective channel of Signal Y is enabled. Valid attribute | 
|  | values are boolean. | 
|  |  | 
|  | What:		/sys/bus/counter/devices/counterX/signalY/filter_clock_prescaler | 
|  | KernelVersion:	5.7 | 
|  | Contact:	linux-iio@vger.kernel.org | 
|  | Description: | 
|  | Filter clock factor for input Signal Y. This prescaler value | 
|  | affects the inputs of both quadrature pair signals. | 
|  |  | 
|  | What:		/sys/bus/counter/devices/counterX/signalY/index_polarity | 
|  | KernelVersion:	5.2 | 
|  | Contact:	linux-iio@vger.kernel.org | 
|  | Description: | 
|  | Active level of index input Signal Y; irrelevant in | 
|  | non-synchronous load mode. | 
|  |  | 
|  | What:		/sys/bus/counter/devices/counterX/signalY/index_polarity_available | 
|  | What:		/sys/bus/counter/devices/counterX/signalY/synchronous_mode_available | 
|  | KernelVersion:	5.2 | 
|  | Contact:	linux-iio@vger.kernel.org | 
|  | Description: | 
|  | Discrete set of available values for the respective Signal Y | 
|  | configuration are listed in this file. | 
|  |  | 
|  | What:		/sys/bus/counter/devices/counterX/signalY/polarity | 
|  | KernelVersion:	6.1 | 
|  | Contact:	linux-iio@vger.kernel.org | 
|  | Description: | 
|  | Active level of Signal Y. The following polarity values are | 
|  | available: | 
|  |  | 
|  | positive: | 
|  | Signal high state considered active level (rising edge). | 
|  |  | 
|  | negative: | 
|  | Signal low state considered active level (falling edge). | 
|  |  | 
|  | What:		/sys/bus/counter/devices/counterX/signalY/name | 
|  | KernelVersion:	5.2 | 
|  | Contact:	linux-iio@vger.kernel.org | 
|  | Description: | 
|  | Read-only attribute that indicates the device-specific name of | 
|  | Signal Y. If possible, this should match the name of the | 
|  | respective signal as it appears in the device datasheet. | 
|  |  | 
|  | What:		/sys/bus/counter/devices/counterX/signalY/signal | 
|  | KernelVersion:	5.2 | 
|  | Contact:	linux-iio@vger.kernel.org | 
|  | Description: | 
|  | Signal level state of Signal Y. The following signal level | 
|  | states are available: | 
|  |  | 
|  | low: | 
|  | Low level state. | 
|  |  | 
|  | high: | 
|  | High level state. | 
|  |  | 
|  | What:		/sys/bus/counter/devices/counterX/signalY/synchronous_mode | 
|  | KernelVersion:	5.2 | 
|  | Contact:	linux-iio@vger.kernel.org | 
|  | Description: | 
|  | Configure the counter associated with Signal Y for | 
|  | non-synchronous or synchronous load mode. Synchronous load mode | 
|  | cannot be selected in non-quadrature (Pulse-Direction) clock | 
|  | mode. | 
|  |  | 
|  | non-synchronous: | 
|  | A logic low level is the active level at this index | 
|  | input. The index function (as enabled via preset_enable) | 
|  | is performed directly on the active level of the index | 
|  | input. | 
|  |  | 
|  | synchronous: | 
|  | Intended for interfacing with encoder Index output in | 
|  | quadrature clock mode. The active level is configured | 
|  | via index_polarity. The index function (as enabled via | 
|  | preset_enable) is performed synchronously with the | 
|  | quadrature clock on the active level of the index input. | 
|  |  | 
|  | What:		/sys/bus/counter/devices/counterX/signalY/frequency | 
|  | KernelVersion:	6.1 | 
|  | Contact:	linux-iio@vger.kernel.org | 
|  | Description: | 
|  | Read-only attribute that indicates the signal Y frequency, in Hz. |