1What: /sys/bus/iio/devices/iio:deviceX/in_count_count_mode_available 2What: /sys/bus/iio/devices/iio:deviceX/in_count_noise_error_available 3What: /sys/bus/iio/devices/iio:deviceX/in_count_quadrature_mode_available 4What: /sys/bus/iio/devices/iio:deviceX/in_index_index_polarity_available 5What: /sys/bus/iio/devices/iio:deviceX/in_index_synchronous_mode_available 6KernelVersion: 4.10 7Contact: linux-iio@vger.kernel.org 8Description: 9 Discrete set of available values for the respective counter 10 configuration are listed in this file. 11 12What: /sys/bus/iio/devices/iio:deviceX/in_countY_count_mode 13KernelVersion: 4.10 14Contact: linux-iio@vger.kernel.org 15Description: 16 Count mode for channel Y. Four count modes are available: 17 normal, range limit, non-recycle, and modulo-n. The preset value 18 for channel Y is used by the count mode where required. 19 20 Normal: 21 Counting is continuous in either direction. 22 23 Range Limit: 24 An upper or lower limit is set, mimicking limit switches 25 in the mechanical counterpart. The upper limit is set to 26 the preset value, while the lower limit is set to 0. The 27 counter freezes at count = preset when counting up, and 28 at count = 0 when counting down. At either of these 29 limits, the counting is resumed only when the count 30 direction is reversed. 31 32 Non-recycle: 33 Counter is disabled whenever a 24-bit count overflow or 34 underflow takes place. The counter is re-enabled when a 35 new count value is loaded to the counter via a preset 36 operation or write to raw. 37 38 Modulo-N: 39 A count boundary is set between 0 and the preset value. 40 The counter is reset to 0 at count = preset when 41 counting up, while the counter is set to the preset 42 value at count = 0 when counting down; the counter does 43 not freeze at the bundary points, but counts 44 continuously throughout. 45 46What: /sys/bus/iio/devices/iio:deviceX/in_countY_noise_error 47KernelVersion: 4.10 48Contact: linux-iio@vger.kernel.org 49Description: 50 Read-only attribute that indicates whether excessive noise is 51 present at the channel Y count inputs in quadrature clock mode; 52 irrelevant in non-quadrature clock mode. 53 54What: /sys/bus/iio/devices/iio:deviceX/in_countY_preset 55KernelVersion: 4.10 56Contact: linux-iio@vger.kernel.org 57Description: 58 If the counter device supports preset registers, the preset 59 count for channel Y is provided by this attribute. 60 61What: /sys/bus/iio/devices/iio:deviceX/in_countY_quadrature_mode 62KernelVersion: 4.10 63Contact: linux-iio@vger.kernel.org 64Description: 65 Configure channel Y counter for non-quadrature or quadrature 66 clock mode. Selecting non-quadrature clock mode will disable 67 synchronous load mode. In quadrature clock mode, the channel Y 68 scale attribute selects the encoder phase division (scale of 1 69 selects full-cycle, scale of 0.5 selects half-cycle, scale of 70 0.25 selects quarter-cycle) processed by the channel Y counter. 71 72 Non-quadrature: 73 The filter and decoder circuit are bypassed. Encoder A 74 input serves as the count input and B as the UP/DOWN 75 direction control input, with B = 1 selecting UP Count 76 mode and B = 0 selecting Down Count mode. 77 78 Quadrature: 79 Encoder A and B inputs are digitally filtered and 80 decoded for UP/DN clock. 81 82What: /sys/bus/iio/devices/iio:deviceX/in_countY_set_to_preset_on_index 83KernelVersion: 4.10 84Contact: linux-iio@vger.kernel.org 85Description: 86 Whether to set channel Y counter with channel Y preset value 87 when channel Y index input is active, or continuously count. 88 Valid attribute values are boolean. 89 90What: /sys/bus/iio/devices/iio:deviceX/in_indexY_index_polarity 91KernelVersion: 4.10 92Contact: linux-iio@vger.kernel.org 93Description: 94 Active level of channel Y index input; irrelevant in 95 non-synchronous load mode. 96 97What: /sys/bus/iio/devices/iio:deviceX/in_indexY_synchronous_mode 98KernelVersion: 4.10 99Contact: linux-iio@vger.kernel.org 100Description: 101 Configure channel Y counter for non-synchronous or synchronous 102 load mode. Synchronous load mode cannot be selected in 103 non-quadrature clock mode. 104 105 Non-synchronous: 106 A logic low level is the active level at this index 107 input. The index function (as enabled via 108 set_to_preset_on_index) is performed directly on the 109 active level of the index input. 110 111 Synchronous: 112 Intended for interfacing with encoder Index output in 113 quadrature clock mode. The active level is configured 114 via index_polarity. The index function (as enabled via 115 set_to_preset_on_index) is performed synchronously with 116 the quadrature clock on the active level of the index 117 input. 118