Re: [PATCH v2 1/5] iio: ABI: Generalize ABI documentation for DAC

From: Jonathan Cameron
Date: Thu May 23 2024 - 12:52:55 EST


On Thu, 23 May 2024 11:19:05 +0800
Kim Seer Paller <kimseer.paller@xxxxxxxxxx> wrote:

> Introduces a more generalized ABI documentation for DAC. Instead of
> having separate ABI files for each DAC, we now have a single ABI file
> that covers the common sysfs interface for all DAC.
>
> Co-developed-by: Michael Hennerich <michael.hennerich@xxxxxxxxxx>
> Signed-off-by: Michael Hennerich <michael.hennerich@xxxxxxxxxx>
> Signed-off-by: Kim Seer Paller <kimseer.paller@xxxxxxxxxx>
> ---
> Documentation/ABI/testing/sysfs-bus-iio-dac | 61 +++++++++++++++++++
> .../ABI/testing/sysfs-bus-iio-dac-ltc2688 | 31 ----------
> MAINTAINERS | 8 +++
> 3 files changed, 69 insertions(+), 31 deletions(-)
> create mode 100644 Documentation/ABI/testing/sysfs-bus-iio-dac
>
> diff --git a/Documentation/ABI/testing/sysfs-bus-iio-dac b/Documentation/ABI/testing/sysfs-bus-iio-dac
> new file mode 100644
> index 000000000000..53d5213520c6
> --- /dev/null
> +++ b/Documentation/ABI/testing/sysfs-bus-iio-dac
> @@ -0,0 +1,61 @@
> +What: /sys/bus/iio/devices/iio:deviceX/out_currentY_toggle_en
> +KernelVersion: 5.18
> +Contact: linux-iio@xxxxxxxxxxxxxxx
> +Description:
> + Toggle enable. Write 1 to enable toggle or 0 to disable it. This is
> + useful when one wants to change the DAC output codes. The way it should
> + be done is:
> +
> + - disable toggle operation;
> + - change out_currentY_raw0 and out_currentY_raw1;

Generalize to [0...N] or something like that to allow more symbols.

> + - enable toggle operation.
> +
> +What: /sys/bus/iio/devices/iio:deviceX/out_currentY_raw0
> +What: /sys/bus/iio/devices/iio:deviceX/out_currentY_raw1
> +KernelVersion: 5.18
> +Contact: linux-iio@xxxxxxxxxxxxxxx
> +Description:
> + It has the same meaning as out_currentY_raw. This attribute is
> + specific to toggle enabled channels and refers to the DAC output
> + code in INPUT_A (_raw0) and INPUT_B (_raw1). The same scale and offset
> + as in out_currentY_raw applies.
> +
> +What: /sys/bus/iio/devices/iio:deviceX/out_currentY_symbol
> +KernelVersion: 5.18
> +Contact: linux-iio@xxxxxxxxxxxxxxx
> +Description:
> + Performs a SW toggle. This attribute is specific to toggle
> + enabled channels and allows to toggle between out_currentY_raw0
> + and out_currentY_raw1 through software. Writing 0 will select
> + out_currentY_raw0 while 1 selects out_currentY_raw1.
Perhaps write this more generally. The ABI handles more than 2 symbol values.

Performs a SW switch to a predefined output symbol, allowing
switching between current symbol A with output
out_currentY_rawA and new symbol B with output
out_currentY_rawB by writing integer value B.

> +
> +What: /sys/bus/iio/devices/iio:deviceX/out_voltageY_toggle_en
> +KernelVersion: 5.18
> +Contact: linux-iio@xxxxxxxxxxxxxxx
> +Description:
> + Toggle enable. Write 1 to enable toggle or 0 to disable it. This is
> + useful when one wants to change the DAC output codes. The way it should
> + be done is:
> +
> + - disable toggle operation;
> + - change out_voltageY_raw0 and out_voltageY_raw1;
> + - enable toggle operation.
> +
> +What: /sys/bus/iio/devices/iio:deviceX/out_voltageY_raw0
> +What: /sys/bus/iio/devices/iio:deviceX/out_voltageY_raw1
> +KernelVersion: 5.18
> +Contact: linux-iio@xxxxxxxxxxxxxxx
> +Description:
> + It has the same meaning as out_voltageY_raw. This attribute is
> + specific to toggle enabled channels and refers to the DAC output
> + code in INPUT_A (_raw0) and INPUT_B (_raw1). The same scale and offset
> + as in out_voltageY_raw applies.
> +
> +What: /sys/bus/iio/devices/iio:deviceX/out_voltageY_symbol
> +KernelVersion: 5.18
> +Contact: linux-iio@xxxxxxxxxxxxxxx
> +Description:
> + Performs a SW toggle. This attribute is specific to toggle
> + enabled channels and allows to toggle between out_voltageY_raw0
> + and out_voltageY_raw1 through software. Writing 0 will select
> + out_voltageY_raw0 while 1 selects out_voltageY_raw1.

> diff --git a/MAINTAINERS b/MAINTAINERS
> index 758c202ec712..b3be54c09159 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -12850,6 +12850,14 @@ S: Maintained
> F: Documentation/devicetree/bindings/iio/dac/lltc,ltc1660.yaml
> F: drivers/iio/dac/ltc1660.c
>
> +LTC2664 IIO DAC DRIVER
> +M: Michael Hennerich <michael.hennerich@xxxxxxxxxx>
> +M: Kim Seer Paller <kimseer.paller@xxxxxxxxxx>
> +L: linux-iio@xxxxxxxxxxxxxxx
> +S: Supported
> +W: https://ez.analog.com/linux-software-drivers
> +F: Documentation/ABI/testing/sysfs-bus-iio-dac

As it's a general doc, doesn't really belong in a driver specific entry.
So far we haven't listed these generic docs as having specific maintainers
and people have to rely on history to figure out who to cc.

> +
> LTC2688 IIO DAC DRIVER
> M: Nuno Sá <nuno.sa@xxxxxxxxxx>
> L: linux-iio@xxxxxxxxxxxxxxx