[PATCH v5 00/13] iio: dac: ds4424: add DS4402/DS4404 support and scale

Oleksij Rempel posted 13 patches 2 days, 16 hours ago
.../bindings/iio/dac/maxim,ds4424.yaml        |  42 +-
drivers/iio/dac/Kconfig                       |   1 +
drivers/iio/dac/ds4424.c                      | 367 ++++++++++++------
3 files changed, 281 insertions(+), 129 deletions(-)
[PATCH v5 00/13] iio: dac: ds4424: add DS4402/DS4404 support and scale
Posted by Oleksij Rempel 2 days, 16 hours ago
This series extends the ds4424 IIO DAC driver and its devicetree binding
to support the DS4402 and DS4404 current DAC variants.

DS440x devices share the same register map as DS442x but use a different
resolution (5-bit vs 7-bit) and a different full-scale current formula.
The full-scale current depends on external Rfs resistors connected to
the FS pins, so a new optional DT property is added to provide the
per-channel Rfs values and allow the driver to report a correct IIO
SCALE (mA/step).

While adding DS440x support, a few related issues were addressed:
- Port to regmap
- Reject -128 in RAW writes on DS442x, which cannot be represented with
  sign-magnitude encoding and could silently program an unintended
  output.
- Preserve preconfigured values on probe.
- Ratelimit read error logging and use device context.

David Jander (1):
  iio: dac: ds4424: add DS4402/DS4404 device IDs

Oleksij Rempel (12):
  iio: dac: ds4424: reject -128 RAW value
  iio: dac: ds4424: refactor raw access to use bitwise operations
  iio: dac: ds4424: ratelimit read errors and use device context
  iio: dac: ds4424: sort headers alphabetically
  iio: dac: ds4424: rename iio_info struct to avoid ambiguity
  iio: dac: ds4424: use device match data for chip info
  iio: dac: ds4424: use fsleep() instead of usleep_range()
  dt-bindings: iio: dac: maxim,ds4424: add ds4402/ds4404
  iio: dac: ds4424: support per-variant output range limits
  iio: dac: ds4424: convert to regmap
  dt-bindings: iio: dac: maxim,ds4424: add maxim,rfs-ohms property
  iio: dac: ds4424: add Rfs-based scale and per-variant limits

 .../bindings/iio/dac/maxim,ds4424.yaml        |  42 +-
 drivers/iio/dac/Kconfig                       |   1 +
 drivers/iio/dac/ds4424.c                      | 367 ++++++++++++------
 3 files changed, 281 insertions(+), 129 deletions(-)

--
2.47.3
Re: [PATCH v5 00/13] iio: dac: ds4424: add DS4402/DS4404 support and scale
Posted by Jonathan Cameron 1 day, 10 hours ago
On Wed,  4 Feb 2026 15:00:32 +0100
Oleksij Rempel <o.rempel@pengutronix.de> wrote:

> This series extends the ds4424 IIO DAC driver and its devicetree binding
> to support the DS4402 and DS4404 current DAC variants.
> 
> DS440x devices share the same register map as DS442x but use a different
> resolution (5-bit vs 7-bit) and a different full-scale current formula.
> The full-scale current depends on external Rfs resistors connected to
> the FS pins, so a new optional DT property is added to provide the
> per-channel Rfs values and allow the driver to report a correct IIO
> SCALE (mA/step).
> 
> While adding DS440x support, a few related issues were addressed:
> - Port to regmap
> - Reject -128 in RAW writes on DS442x, which cannot be represented with
>   sign-magnitude encoding and could silently program an unintended
>   output.
> - Preserve preconfigured values on probe.
> - Ratelimit read error logging and use device context.

Nice series. Just that one thing about names in chip_info.

Given we are delayed anyway by me wanting to get the fix upstream
before waiting for the next merge window, feel free to spin a new
version. If not I'm fine doing the name thing as a tweak whilst applying
(in a few weeks time).

Thanks,

Jonathan

> 
> David Jander (1):
>   iio: dac: ds4424: add DS4402/DS4404 device IDs
> 
> Oleksij Rempel (12):
>   iio: dac: ds4424: reject -128 RAW value
>   iio: dac: ds4424: refactor raw access to use bitwise operations
>   iio: dac: ds4424: ratelimit read errors and use device context
>   iio: dac: ds4424: sort headers alphabetically
>   iio: dac: ds4424: rename iio_info struct to avoid ambiguity
>   iio: dac: ds4424: use device match data for chip info
>   iio: dac: ds4424: use fsleep() instead of usleep_range()
>   dt-bindings: iio: dac: maxim,ds4424: add ds4402/ds4404
>   iio: dac: ds4424: support per-variant output range limits
>   iio: dac: ds4424: convert to regmap
>   dt-bindings: iio: dac: maxim,ds4424: add maxim,rfs-ohms property
>   iio: dac: ds4424: add Rfs-based scale and per-variant limits
> 
>  .../bindings/iio/dac/maxim,ds4424.yaml        |  42 +-
>  drivers/iio/dac/Kconfig                       |   1 +
>  drivers/iio/dac/ds4424.c                      | 367 ++++++++++++------
>  3 files changed, 281 insertions(+), 129 deletions(-)
> 
> --
> 2.47.3
> 
>