public inbox for linux-arm-kernel@lists.infradead.org
 help / color / mirror / Atom feed
From: Jonathan Cameron <jic23@kernel.org>
To: Matti Vaittinen <mazziesaccount@gmail.com>
Cc: David Lechner <dlechner@baylibre.com>,
	Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>,
	Hugo Villeneuve <hvilleneuve@dimonoff.com>,
	Lars-Peter Clausen <lars@metafoo.de>,
	Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Daniel Scally <djrscally@gmail.com>,
	Heikki Krogerus <heikki.krogerus@linux.intel.com>,
	Sakari Ailus <sakari.ailus@linux.intel.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Danilo Krummrich <dakr@kernel.org>,
	Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>,
	Chen-Yu Tsai <wens@csie.org>,
	Jernej Skrabec <jernej.skrabec@gmail.com>,
	Samuel Holland <samuel@sholland.org>,
	Nuno Sa <nuno.sa@analog.com>,
	Javier Carrasco <javier.carrasco.cruz@gmail.com>,
	Guillaume Stols <gstols@baylibre.com>,
	Olivier Moysan <olivier.moysan@foss.st.com>,
	Dumitru Ceclan <mitrutzceclan@gmail.com>,
	Trevor Gamblin <tgamblin@baylibre.com>,
	Matteo Martelli <matteomartelli3@gmail.com>,
	Alisa-Dariana Roman <alisadariana@gmail.com>,
	Ramona Alexandra Nechita <ramona.nechita@analog.com>,
	AngeloGioacchino Del Regno
	<angelogioacchino.delregno@collabora.com>,
	linux-iio@vger.kernel.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-acpi@vger.kernel.org,
	linux-renesas-soc@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	linux-sunxi@lists.linux.dev
Subject: Re: [PATCH v4 07/10] iio: adc: ti-ads7924: Respect device tree config
Date: Sun, 2 Mar 2025 03:27:13 +0000	[thread overview]
Message-ID: <20250302032713.1c834448@jic23-huawei> (raw)
In-Reply-To: <d391b012-0a8e-40ca-af56-ca73b3fd853b@gmail.com>

On Wed, 26 Feb 2025 08:39:11 +0200
Matti Vaittinen <mazziesaccount@gmail.com> wrote:

> On 26/02/2025 02:09, David Lechner wrote:
> > On 2/24/25 12:34 PM, Matti Vaittinen wrote:  
> >> The ti-ads7924 driver ignores the device-tree ADC channel specification
> >> and always exposes all 4 channels to users whether they are present in
> >> the device-tree or not. Additionally, the "reg" values in the channel
> >> nodes are ignored, although an error is printed if they are out of range.
> >>
> >> Register only the channels described in the device-tree, and use the reg
> >> property as a channel ID.
> >>
> >> Signed-off-by: Matti Vaittinen <mazziesaccount@gmail.com>
> >>
> >> ---
> >> Revision history:
> >> v3 => v4:
> >>   - Adapt to 'drop diff-channel support' changes to ADC-helpers
> >>   - select ADC helpers in the Kconfig
> >> v2 => v3: New patch
> >>
> >> Please note that this is potentially breaking existing users if they
> >> have wrong values in the device-tree. I believe the device-tree should
> >> ideally be respected, and if it says device X has only one channel, then
> >> we should believe it and not register 4. Well, we don't live in the
> >> ideal world, so even though I believe this is TheRightThingToDo - it may
> >> cause havoc because correct device-tree has not been required from the
> >> day 1. So, please review and test and apply at your own risk :)  
> > 
> > The DT bindings on this one are a little weird. Usually, if we don't
> > use any extra properties from adc.yaml, we leave out the channels. In
> > this case it does seem kind of like the original intention was to work
> > like you are suggesting, but hard to say since the driver wasn't actually
> > implemented that way. I would be more inclined to actually not make the
> > breaking change here and instead relax the bindings to make channel nodes
> > optional and just have the driver ignore the channel nodes by dropping
> > the ads7924_get_channels_config() function completely. This would make
> > the driver simpler instead of more complex like this patch does.  
> 
> I have no strong opinion on this. I see this driver says 'Supported' in 
> MAINTAINERS. Maybe Hugo is able to provide some insight?
> 
This seems to be ABI breakage.  Never something we can take if there is
a significant chance of anyone noticing.  Here it looks like risk
is too high.

Anyhow, as discussed there has never been a clear statement on what default
is and whether the channels should be presented or not. It's always
been binding dependent, but it seems not as explicitly stated as it should
have been.  

Maybe there is some DT binding magic we can do to close this ambiguity but
I'm not sure what it is.  If not documentation may be the only way.


> >> As a side note, this might warrant a fixes tag but the adc-helper -stuff
> >> is hardly worth to be backported... (And I've already exceeded my time
> >> budget with this series - hence I'll leave crafting backportable fix to
> >> TI people ;) )
> >>
> >> This has only been compile tested! All testing is highly appreciated.
> >> ---  
> > 
> > ...
> >   
> >> -static int ads7924_get_channels_config(struct device *dev)
> >> +static int ads7924_get_channels_config(struct iio_dev *indio_dev,
> >> +				       struct device *dev)  
> > 
> > Could get dev from indio_dev->dev.parent and keep only one parameter
> > to this function.
> >   
> >>   {
> >> -	struct fwnode_handle *node;
> >> -	int num_channels = 0;
> >> +	struct iio_chan_spec *chan_array;
> >> +	int num_channels = 0, i;  
> > 
> > Don't need initialization here.
> >   
> >> +	static const char * const datasheet_names[] = {
> >> +		"AIN0", "AIN1", "AIN2", "AIN3"
> >> +	};  
> 
> Thanks for the review David! I do agree with the comments to the code.
> 
> Yours,
> 	-- Matti
> 
> 



  reply	other threads:[~2025-03-02  3:29 UTC|newest]

Thread overview: 53+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-02-24 18:32 [PATCH v4 00/10] Support ROHM BD79124 ADC Matti Vaittinen
2025-02-24 18:32 ` [PATCH v4 01/10] dt-bindings: ROHM BD79124 ADC/GPO Matti Vaittinen
2025-02-24 18:32 ` [PATCH v4 02/10] property: Add device_get_child_node_count_named() Matti Vaittinen
2025-02-25  9:40   ` Heikki Krogerus
2025-02-25 10:07     ` Matti Vaittinen
2025-02-25 10:21     ` Andy Shevchenko
2025-02-25 10:29       ` Matti Vaittinen
2025-02-25 10:39         ` Andy Shevchenko
2025-02-25 10:52           ` Matti Vaittinen
2025-02-25 13:29           ` Matti Vaittinen
2025-02-25 13:59             ` Andy Shevchenko
2025-02-26 14:04               ` Matti Vaittinen
2025-02-26 14:11                 ` Andy Shevchenko
2025-02-27  8:01                   ` Matti Vaittinen
2025-02-27 14:49                     ` Andy Shevchenko
2025-02-27 15:05                       ` Matti Vaittinen
2025-02-28 16:59                         ` Rob Herring
2025-03-02 12:21                           ` Matti Vaittinen
2025-02-25 10:56       ` Matti Vaittinen
2025-02-28 17:07   ` Rob Herring
2025-02-28 18:51     ` Andy Shevchenko
2025-03-02 12:22     ` Matti Vaittinen
2025-02-24 18:33 ` [PATCH v4 03/10] iio: adc: add helpers for parsing ADC nodes Matti Vaittinen
2025-02-26  0:26   ` David Lechner
2025-02-26  6:28     ` Matti Vaittinen
2025-02-26 16:10       ` David Lechner
2025-02-27  7:46         ` Matti Vaittinen
2025-03-02  3:20           ` Jonathan Cameron
2025-03-02 12:54             ` Matti Vaittinen
2025-03-04 23:59               ` Jonathan Cameron
2025-03-02  3:35   ` Jonathan Cameron
2025-03-02 13:00     ` Matti Vaittinen
2025-03-02  3:48   ` Jonathan Cameron
2025-03-02 13:01     ` Matti Vaittinen
2025-02-24 18:33 ` [PATCH v4 04/10] iio: adc: rzg2l_adc: Use adc-helpers Matti Vaittinen
2025-03-02  3:40   ` Jonathan Cameron
2025-03-02 13:06     ` Matti Vaittinen
2025-02-24 18:33 ` [PATCH v4 05/10] iio: adc: sun20i-gpadc: " Matti Vaittinen
2025-03-02  3:42   ` Jonathan Cameron
2025-02-24 18:34 ` [PATCH v4 06/10] iio: adc: ti-ads7924 Drop unnecessary function parameters Matti Vaittinen
2025-03-02  3:46   ` Jonathan Cameron
2025-03-03  7:33     ` Matti Vaittinen
2025-02-24 18:34 ` [PATCH v4 07/10] iio: adc: ti-ads7924: Respect device tree config Matti Vaittinen
2025-02-26  0:09   ` David Lechner
2025-02-26  6:39     ` Matti Vaittinen
2025-03-02  3:27       ` Jonathan Cameron [this message]
2025-03-02 13:10         ` Matti Vaittinen
2025-03-03 14:57           ` Hugo Villeneuve
2025-02-24 18:34 ` [PATCH v4 08/10] iio: adc: Support ROHM BD79124 ADC Matti Vaittinen
2025-03-02  4:10   ` Jonathan Cameron
2025-03-02 13:15     ` Matti Vaittinen
2025-02-24 18:34 ` [PATCH v4 09/10] MAINTAINERS: Add IIO ADC helpers Matti Vaittinen
2025-02-24 18:34 ` [PATCH v4 10/10] MAINTAINERS: Add ROHM BD79124 ADC/GPO Matti Vaittinen

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=20250302032713.1c834448@jic23-huawei \
    --to=jic23@kernel.org \
    --cc=alisadariana@gmail.com \
    --cc=andriy.shevchenko@linux.intel.com \
    --cc=angelogioacchino.delregno@collabora.com \
    --cc=conor+dt@kernel.org \
    --cc=dakr@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=djrscally@gmail.com \
    --cc=dlechner@baylibre.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=gstols@baylibre.com \
    --cc=heikki.krogerus@linux.intel.com \
    --cc=hvilleneuve@dimonoff.com \
    --cc=javier.carrasco.cruz@gmail.com \
    --cc=jernej.skrabec@gmail.com \
    --cc=krzk+dt@kernel.org \
    --cc=lars@metafoo.de \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-iio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-renesas-soc@vger.kernel.org \
    --cc=linux-sunxi@lists.linux.dev \
    --cc=matteomartelli3@gmail.com \
    --cc=matti.vaittinen@fi.rohmeurope.com \
    --cc=mazziesaccount@gmail.com \
    --cc=mitrutzceclan@gmail.com \
    --cc=nuno.sa@analog.com \
    --cc=olivier.moysan@foss.st.com \
    --cc=prabhakar.mahadev-lad.rj@bp.renesas.com \
    --cc=rafael@kernel.org \
    --cc=ramona.nechita@analog.com \
    --cc=robh@kernel.org \
    --cc=sakari.ailus@linux.intel.com \
    --cc=samuel@sholland.org \
    --cc=tgamblin@baylibre.com \
    --cc=wens@csie.org \
    /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