Devicetree
 help / color / mirror / Atom feed
From: sashiko-bot@kernel.org
To: "Taha Ed-Dafili" <0rayn.dev@gmail.com>
Cc: robh@kernel.org, conor+dt@kernel.org, devicetree@vger.kernel.org,
	krzk+dt@kernel.org
Subject: Re: [PATCH v3 5/5] iio: dac: ad5504: fix scale via output-range-microvolt
Date: Sat, 09 May 2026 15:29:57 +0000	[thread overview]
Message-ID: <20260509152958.18149C2BCB2@smtp.kernel.org> (raw)
In-Reply-To: <20260509142047.30302-6-0rayn.dev@gmail.com>

Thank you for your contribution! Sashiko AI review found 3 potential issue(s) to consider:
- [Medium] UAPI/ABI Breakage: existing Device Trees rely on the 'vcc' regulator to configure the IIO scale, but the driver now silently defaults to 60V.
- [Medium] Silent error suppression for malformed 'output-range-microvolt' device tree properties.
- [Low] Incomplete removal of legacy platform data header.
--

commit b02770a220cb671b4745934fb6d03abfd8d88fd3
Author: Taha Ed-Dafili <0rayn.dev@gmail.com>

iio: dac: ad5504: fix scale via output-range-microvolt

This patch updates the AD5504 driver to read the output-range-microvolt DT
property for setting the scale, rather than querying the vcc regulator. It
also removes legacy pdata support and sets the default scale to 60V if the
property is absent.

> diff --git a/drivers/iio/dac/ad5504.c b/drivers/iio/dac/ad5504.c
> index 9e95da6e49d61..040f580b82828 100644
> --- a/drivers/iio/dac/ad5504.c
> +++ b/drivers/iio/dac/ad5504.c
> @@ -14,10 +14,12 @@
>  #include <linux/kstrtox.h>
>  #include <linux/mod_devicetable.h>
>  #include <linux/module.h>
> +#include <linux/property.h>
>  #include <linux/regulator/consumer.h>
>  #include <linux/spi/spi.h>
>  #include <linux/sysfs.h>
>  #include <linux/types.h>
> +#include <linux/units.h>
>  
>  #include <linux/iio/dac/ad5504.h>

The commit message states legacy pdata support is removed. Is it intentional
to leave the #include <linux/iio/dac/ad5504.h> header in place, as it appears
to only contain the unused legacy structs?

[ ... ]

> @@ -285,16 +287,19 @@ static int ad5504_probe(struct spi_device *spi)
>  
>  	st = iio_priv(indio_dev);
>  
> -	ret = devm_regulator_get_enable_read_voltage(dev, "vcc");
> -	if (ret < 0 && ret != -ENODEV)
> +	ret = devm_regulator_get_enable(dev, "vcc");
> +	if (ret && ret != -ENODEV)
>  		return ret;
> -	if (ret == -ENODEV) {
> -		if (pdata->vref_mv)
> -			st->vref_mv = pdata->vref_mv;
> -		else
> -			dev_warn(dev, "reference voltage unspecified\n");
> -	} else {
> -		st->vref_mv = ret / 1000;
> +
> +	st->vref_mv = 60 * MILLI;

Does dropping the regulator voltage read cause compatibility issues with
existing device trees?

Prior to this patch, existing setups could provide a vcc regulator with a
30V voltage, which would properly configure st->vref_mv. By defaulting
directly to 60V when the new output-range-microvolt property is absent, older
device trees might silently change their exposed scale attribute to userspace.

Would it be safer to fallback to reading the regulator voltage and issue a
deprecation warning if the new property is missing?

> +	ret = device_property_read_u32_array(dev, "output-range-microvolt",
> +					     range, ARRAY_SIZE(range));
> +	if (!ret) {
> +		if (range[0] != 0 || (range[1] != 30 * MICRO && range[1] != 60 * MICRO))
> +			return -EINVAL;
> +
> +		if (range[1] == 30 * MICRO)
> +			st->vref_mv = 30 * MILLI;
>  	}

If the device tree property exists but is malformed, such as only containing
a single value instead of an array, device_property_read_u32_array() might
return an error code like -EOVERFLOW or -ENODATA.

Since the code only checks if (!ret), does this silently suppress parsing
errors and assume the 60V default?

Should this explicitly check for ret && ret != -EINVAL and return the error
code instead?

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260509142047.30302-1-0rayn.dev@gmail.com?part=5

  parent reply	other threads:[~2026-05-09 15:29 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-05-09 14:20 [PATCH v3 0/5] iio: dac: ad5504: bindings, cleanups, and scale fixes Taha Ed-Dafili
2026-05-09 14:20 ` [PATCH v3 1/5] dt-bindings: iio: dac: ad5504: add output-range and missing gpios Taha Ed-Dafili
2026-05-09 14:45   ` sashiko-bot
2026-05-09 14:20 ` [PATCH v3 2/5] iio: dac: ad5504: sort headers alphabetically Taha Ed-Dafili
2026-05-09 14:20 ` [PATCH v3 3/5] iio: dac: ad5504: Align headers with IWYU principle Taha Ed-Dafili
2026-05-09 14:55   ` sashiko-bot
2026-05-09 14:20 ` [PATCH v3 4/5] iio: dac: ad5504: introduce local dev pointer Taha Ed-Dafili
2026-05-09 14:20 ` [PATCH v3 5/5] iio: dac: ad5504: fix scale via output-range-microvolt Taha Ed-Dafili
2026-05-09 14:57   ` Jonathan Cameron
2026-05-09 15:29   ` sashiko-bot [this message]
2026-05-09 20:59   ` David Lechner
2026-05-09 20:46 ` [PATCH v3 0/5] iio: dac: ad5504: bindings, cleanups, and scale fixes David Lechner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260509152958.18149C2BCB2@smtp.kernel.org \
    --to=sashiko-bot@kernel.org \
    --cc=0rayn.dev@gmail.com \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=krzk+dt@kernel.org \
    --cc=robh@kernel.org \
    --cc=sashiko@lists.linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox