Exposes consumer library functions providing support for interfaces compatible with the venerable Intel 8254 Programmable Interval Timer (PIT). The Intel 8254 PIT first appeared in the early 1980s and was used initially in IBM PC compatibles. The popularity of the original Intel 825x family of chips led to many subsequent variants and clones of the interface in various chips and integrated circuits. Although still popular, interfaces compatible with the Intel 8254 PIT are nowdays typically found embedded in larger VLSI processing chips and FPGA components rather than as discrete ICs. A CONFIG_I8254 Kconfig option is introduced by this patch. Modules wanting access to these i8254 library functions should select this Kconfig option, and import the I8254 symbol namespace. Link: https://lore.kernel.org/r/f6fe32c2db9525d816ab1a01f45abad56c081652.1681665189.git.william.gray@linaro.org/ Signed-off-by: William Breathitt Gray <william.gray@linaro.org>
469 lines
17 KiB
Plaintext
469 lines
17 KiB
Plaintext
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.
|