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