From: Jonathan Cameron <jic23@kernel.org>
To: David Lechner <dlechner@baylibre.com>
Cc: "Kurt Borja" <kuurtb@gmail.com>, "Rob Herring" <robh@kernel.org>,
"Krzysztof Kozlowski" <krzk+dt@kernel.org>,
"Conor Dooley" <conor+dt@kernel.org>,
"Nuno Sá" <nuno.sa@analog.com>,
"Andy Shevchenko" <andy@kernel.org>,
linux-iio@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v4 03/10] iio: adc: add the ti-ads1262 driver
Date: Tue, 1 Sep 2026 04:07:40 +0100 [thread overview]
Message-ID: <20260901040740.19588bf4@jic23-huawei> (raw)
In-Reply-To: <bc00d888-9944-4a22-88e3-8f4d7384d037@baylibre.com>
A couple of comments on comments.
Thanks,
J
> > + },
> > + {
> > + .type = IIO_VOLTAGE,
> > + .channel = ADS1262_INPMUX_AVDD,
> > + .channel2 = ADS1262_INPMUX_AVDD,
> > + .indexed = 1,
> > + .address = ADS1262_MONITOR_ADDR_OFFSET + 1,
> > + .scan_type = {
> > + .format = IIO_SCAN_FORMAT_SIGNED_INT,
> > + .realbits = ADS1262_ADC1_RESOLUTION,
> > + .storagebits = 32,
> > + .endianness = IIO_BE,
> > + },
> > + .info_mask_separate = BIT(IIO_CHAN_INFO_RAW),
> > + },
> > + {
> > + .type = IIO_VOLTAGE,
> > + .channel = ADS1262_INPMUX_DVDD,
> > + .channel2 = ADS1262_INPMUX_DVDD,
> > + .indexed = 1,
> > + .address = ADS1262_MONITOR_ADDR_OFFSET + 2,
> > + .scan_type = {
> > + .format = IIO_SCAN_FORMAT_SIGNED_INT,
> > + .realbits = ADS1262_ADC1_RESOLUTION,
> > + .storagebits = 32,
> > + .endianness = IIO_BE,
> > + },
> > + .info_mask_separate = BIT(IIO_CHAN_INFO_RAW),
> > + },
> > + {
> > + .type = IIO_VOLTAGE,
> > + .channel = ADS1262_INPMUX_TDAC,
> > + .channel2 = ADS1262_INPMUX_TDAC,
>
> Hmm... a differential where channel == channel2 usually means a shorted
> input. TDACP and TDACN can be controlled indepedantly, so really are two
> separate channels.
This came up recently. We do have a history of doing this for
fixed purpose pairs as well. The ambiguity vs shorted inputs
was one of the negatives, but I decided it was nicer that making
numbers up for IN1+ IN1- type setups.
If they are separately controllable then indeed makes no sense
to do this. Given them separate numbers unless intent is a shorted
channel.
>
> > + .indexed = 1,
> > + .differential = 1,
> > + .address = ADS1262_MONITOR_ADDR_OFFSET + 3,
> > + .scan_type = {
> > + .format = IIO_SCAN_FORMAT_SIGNED_INT,
> > + .realbits = ADS1262_ADC1_RESOLUTION,
> > + .storagebits = 32,
> > + .endianness = IIO_BE,
> > + },
> > + .info_mask_separate = BIT(IIO_CHAN_INFO_RAW),
> > + },
> > +};
> > +
> > +
> > + rate = clk_get_rate(clk);
> > + if (clk && !rate)
> > + return dev_err_probe(dev, -EINVAL, "failed to get clock rate\n");
> > + st->clk_rate = rate ? rate : ADS1262_NOMINAL_CLK_RATE;
> > +
> > + st->start_gpiod = devm_gpiod_get_optional(dev, "start", GPIOD_OUT_LOW);
> > + if (IS_ERR(st->start_gpiod))
> > + return dev_err_probe(dev, PTR_ERR(st->start_gpiod),
> > + "failed to get start GPIO\n");
> > +
> > + st->regmap = devm_regmap_init(dev, &ads1262_regmap_bus, st,
> > + &ads1262_regmap_config);
> > + if (IS_ERR(st->regmap))
> > + return PTR_ERR(st->regmap);
> > +
> > + ret = ads1262_dev_configure(st);
> > + if (ret)
> > + return dev_err_probe(dev, ret, "failed to configure device\n");
> > +
> > + indio_dev->name = ads1262_device_id_to_name[st->dev_id];
>
> Not so sure about this. Almost always, this is coming from the compatible
> match data. So unless we plan on trusting the device ID returned by the
> chip over the devicetree when we add more to the device id tables and looking
> up per-chip behavior from there instead of the compatible, I would go with
> the traditional approach. That way the name userpace sees match the driver
> behavior that goes with the other chip-specific match data that is likely
> to be added in the future.
We have done this detection path in the past (with fallback to the
dt compat where we don't know better). Normally we do this because
we know there are boards in the wild with the wrong description and
want to be nice. Here it indeed seems perhaps too complex.
Jonathan
next prev parent reply other threads:[~2026-09-01 3:07 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-28 6:38 [PATCH v4 00/10] iio: adc: Add TI ADS126X ADC family support Kurt Borja
2026-08-28 6:38 ` [PATCH v4 01/10] dt-bindings: adc: add excitation-current-chopping property Kurt Borja
2026-08-28 16:33 ` Conor Dooley
2026-08-28 6:38 ` [PATCH v4 02/10] dt-bindings: iio: adc: support the TI ADS126x ADC family Kurt Borja
2026-08-28 16:39 ` Conor Dooley
2026-08-30 1:57 ` Jonathan Cameron
2026-08-31 16:24 ` Conor Dooley
2026-09-01 3:01 ` Jonathan Cameron
2026-08-30 1:53 ` Jonathan Cameron
2026-08-31 19:44 ` David Lechner
2026-08-28 6:38 ` [PATCH v4 03/10] iio: adc: add the ti-ads1262 driver Kurt Borja
2026-08-28 8:09 ` Andy Shevchenko
2026-08-31 20:22 ` David Lechner
2026-09-01 3:07 ` Jonathan Cameron [this message]
2026-08-28 6:38 ` [PATCH v4 04/10] iio: adc: ti-ads1262: support per-channel sampling frequency Kurt Borja
2026-08-30 1:36 ` Jonathan Cameron
2026-08-30 2:22 ` Jonathan Cameron
2026-08-28 6:38 ` [PATCH v4 05/10] iio: adc: ti-ads1262: support per-channel reference and gain Kurt Borja
2026-08-28 6:38 ` [PATCH v4 06/10] iio: adc: ti-ads1262: support input chopping Kurt Borja
2026-08-28 6:38 ` [PATCH v4 07/10] iio: adc: ti-ads1262: support excitation currents Kurt Borja
2026-08-28 6:38 ` [PATCH v4 08/10] iio: adc: ti-ads1262: support triggered buffer sampling Kurt Borja
2026-08-28 6:38 ` [PATCH v4 09/10] iio: adc: ti-ads1262: support REFOUT and VBIAS regulators Kurt Borja
2026-08-28 6:38 ` [PATCH v4 10/10] iio: adc: ti-ads1262: support common mode supplies Kurt Borja
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=20260901040740.19588bf4@jic23-huawei \
--to=jic23@kernel.org \
--cc=andy@kernel.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=dlechner@baylibre.com \
--cc=krzk+dt@kernel.org \
--cc=kuurtb@gmail.com \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=nuno.sa@analog.com \
--cc=robh@kernel.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