2022-08-17 14:24:35

by Julien Panis

[permalink] [raw]
Subject: [PATCH v5 2/3] Documentation: ABI: sysfs-bus-counter: add capture items

This commit adds capture items to counter ABI file
(e.g. TI ECAP used in capture operating mode).

Signed-off-by: Julien Panis <[email protected]>
---
Documentation/ABI/testing/sysfs-bus-counter | 49 +++++++++++++++++++++
1 file changed, 49 insertions(+)

diff --git a/Documentation/ABI/testing/sysfs-bus-counter b/Documentation/ABI/testing/sysfs-bus-counter
index 06c2b3e27e0b..52ddec7cc76a 100644
--- a/Documentation/ABI/testing/sysfs-bus-counter
+++ b/Documentation/ABI/testing/sysfs-bus-counter
@@ -203,6 +203,24 @@ Description:
both edges:
Any state transition.

+What: /sys/bus/counter/devices/counterX/countY/count_cumul
+KernelVersion: 6.0
+Contact: [email protected]
+Description:
+ Read-only attribute that indicates the raw cumulated count
+ since count Y start, computed as follow:
+ count_cumul = (max_counter_val + 1) * nb_counter_overflows
+
+What: /sys/bus/counter/devices/counterX/countY/captureZ
+KernelVersion: 6.0
+Contact: [email protected]
+Description:
+ Read-only attributes that indicate the last raw timestamp captured
+ for the respective capture Z register.
+ Raw timestamp can be converted to nanoseconds as follow:
+ time_ns = 10^9 * (captureZ + count_cumul) / frequency
+ count_cumul and frequency parameters are described in this document.
+
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
@@ -213,6 +231,8 @@ 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/count_cumul_component_id
+What: /sys/bus/counter/devices/counterX/countY/captureZ_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
@@ -345,3 +365,32 @@ Description:
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/polarityZ
+KernelVersion: 6.0
+Contact: [email protected]
+Description:
+ Capture modules include N timestamp capture registers.
+ For all N sequenced timestamp capture events
+ (1->2->3->...->N->1->...), edge polarity can be selected.
+ The following polarities are available:
+
+ rising edge:
+ Low state transitions to high state.
+
+ falling edge:
+ High state transitions to low state.
+
+What: /sys/bus/counter/devices/counterX/signalY/polarityZ_available
+KernelVersion: 6.0
+Contact: [email protected]
+Description:
+ Discrete set of available values for the respective polarity Z
+ configuration are listed in this file. Values are delimited by
+ newline characters.
+
+What: /sys/bus/counter/devices/counterX/signalY/frequency
+KernelVersion: 6.0
+Contact: [email protected]
+Description:
+ Read-only attribute that indicates the signal Y frequency, in Hz.
--
2.25.1


2022-08-21 23:04:18

by William Breathitt Gray

[permalink] [raw]
Subject: Re: [PATCH v5 2/3] Documentation: ABI: sysfs-bus-counter: add capture items

On Wed, Aug 17, 2022 at 04:16:19PM +0200, Julien Panis wrote:
> This commit adds capture items to counter ABI file
> (e.g. TI ECAP used in capture operating mode).
>
> Signed-off-by: Julien Panis <[email protected]>
> ---
> Documentation/ABI/testing/sysfs-bus-counter | 49 +++++++++++++++++++++
> 1 file changed, 49 insertions(+)
>
> diff --git a/Documentation/ABI/testing/sysfs-bus-counter b/Documentation/ABI/testing/sysfs-bus-counter
> index 06c2b3e27e0b..52ddec7cc76a 100644
> --- a/Documentation/ABI/testing/sysfs-bus-counter
> +++ b/Documentation/ABI/testing/sysfs-bus-counter
> @@ -203,6 +203,24 @@ Description:
> both edges:
> Any state transition.
>
> +What: /sys/bus/counter/devices/counterX/countY/count_cumul
> +KernelVersion: 6.0
> +Contact: [email protected]
> +Description:
> + Read-only attribute that indicates the raw cumulated count
> + since count Y start, computed as follow:
> + count_cumul = (max_counter_val + 1) * nb_counter_overflows

Implement this instead as "num_overflows" (COUNTER_COMP_COUNT_U64) and
"ceiling" (COUNTER_COMP_CEILING). You need to expose the count ceiling
anyway and a new "num_overflows" attribute would be useful for other
drivers as well.

> +What: /sys/bus/counter/devices/counterX/countY/captureZ
> +KernelVersion: 6.0
> +Contact: [email protected]
> +Description:
> + Read-only attributes that indicate the last raw timestamp captured
> + for the respective capture Z register.
> + Raw timestamp can be converted to nanoseconds as follow:
> + time_ns = 10^9 * (captureZ + count_cumul) / frequency
> + count_cumul and frequency parameters are described in this document.

Rework this description to make it more general: remove the nanoseconds
conversion formula and references to timestamps. The concept of a
capture is general enough that it could be provided by counter devices
that are not necessarily timestamping. Instead this description should
simply state that this attribute is a historical capture of the Count Y
count data where Z (if present) is the respective capture buffer element
offset.

> 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
> @@ -213,6 +231,8 @@ 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/count_cumul_component_id
> +What: /sys/bus/counter/devices/counterX/countY/captureZ_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
> @@ -345,3 +365,32 @@ Description:
> 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/polarityZ
> +KernelVersion: 6.0
> +Contact: [email protected]
> +Description:
> + Capture modules include N timestamp capture registers.
> + For all N sequenced timestamp capture events
> + (1->2->3->...->N->1->...), edge polarity can be selected.
> + The following polarities are available:
> +
> + rising edge:
> + Low state transitions to high state.
> +
> + falling edge:
> + High state transitions to low state.

Other drivers could use "polarity" for signals that are not related to
captures, so remove the language referencing timestamping and generalize
it to simply refer to selecting the Signal Y edge polarity where Z (if
present) is the respective polarity sequence position.

William Breathitt Gray


Attachments:
(No filename) (4.01 kB)
signature.asc (235.00 B)
Download all attachments