From: Stephan Costa Barros <stephanbrrs8@gmail.com>
To: Jonathan Cameron <jic23@kernel.org>
Cc: "David Lechner" <dlechner@baylibre.com>,
"Nuno Sá" <nuno.sa@analog.com>,
"Andy Shevchenko" <andy@kernel.org>,
"Rob Herring" <robh@kernel.org>,
"Krzysztof Kozlowski" <krzk+dt@kernel.org>,
"Conor Dooley" <conor+dt@kernel.org>,
"Mike Looijmans" <mike.looijmans@topic.nl>,
"Andy Shevchenko" <andriy.shevchenko@intel.com>,
"Uwe Kleine-König" <u.kleine-koenig@baylibre.com>,
"Krzysztof Kozlowski" <krzk@kernel.org>,
linux-iio@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: [PATCH v2 0/6] iio: adc: ti-ads1298: fixes, and ADS1299 support
Date: Sat, 24 Oct 2026 20:13:29 -0300 [thread overview]
Message-ID: <20261024231335.280955-1-stephanbrrs8@gmail.com> (raw)
This series adds the TI ADS1299 to the ti-ads1298 driver. On the way it
fixes twelve issues in ti-ads1298 itself. Five of them come from the
automated review of v1, which was a separate driver derived from
ti-ads1298; the others came up while reworking and testing.
Changes in v2:
- Extend ti-ads1298 instead of adding a new driver (Andy, Jonathan).
- Bindings: the ADS1299 goes into ti,ads1298.yaml, with no clock-names
(Krzysztof). ti,ads1299 names the 8-channel part, as TI sells it as
plain ADS1299 with no "-8"; ti,ads1299-4 and ti,ads1299-6 fall back to
it, since the channel count is read from the ID register. Each ADS129x
part also gets a compatible, with ti,ads1298 as the fallback.
- The issues the automated review found in v1 were inherited from
ti-ads1298, so they are now fixed there, in patches 1 and 2.
- No <linux/mod_devicetable.h> is added (Uwe).
- The ABI that v1 added beyond ti-ads1298 (writable scale, _available
lists, timestamp) is left for a follow-up; see the end.
- v1: https://lore.kernel.org/all/20261019001247.483005-1-stephanbrrs8@gmail.com/
The series:
- Patches 1 to 3 fix ti-ads1298 as it is in mainline today, grouped by
area: the data read path, power-up and the device clock, and smaller
issues (scale, ID check, regmap, Kconfig). Each has a Fixes: tag and
none depends on the rest of the series, so they can be applied ahead
of it.
- Patch 4 prepares the driver for more than one chip family, with a
chip info structure, given as match data, that holds what differs
between families. The ADS129x behaves as before.
- Patches 5 and 6 add the ADS1299 to the binding and to the driver,
with a compatible for each ADS129x part and the optional DVDD supply
and PWDN pin.
The ADS1299 shares the commands, the data format and most of the
register map of the ADS129x. It differs in:
- the PGA gains, 1 to 24;
- the data rates: no HR bit, and bit 7 of CONFIG1 is reserved;
- a fixed 4.5 V internal reference, and the reserved bits of CONFIG3;
- the ID layout (bit 3 alone tells the two families apart);
- the register map, which ends at CONFIG4;
- inputs that are shorted out of reset.
These are fields of the chip info and an ID decoding callback; the code
paths are the same for both families.
Testing:
- On real hardware: an ADS1299 with a Raspberry Pi 4, running the
driver from the tip of the series. Probe, scale, data rates,
single-shot reads, buffered capture, and buffer start and stop under
stress all behave as expected. The clock fix in patch 2 was checked on
the same board.
- With a KUnit test, kept out of this series, that runs the driver
against an emulated ADS129x and ADS1299. It fails when most of the
fixes are undone, and it found the command timing issue fixed in
patch 2. I can post it if it is of interest.
- Three of the fixes in patch 1 were found by review and could not be
reproduced; the commit message says which.
- Not tested: an ADS1298 or other ADS129x part. Mike, if you still have
an ADS1298 board, a test of the series would be welcome.
Proposal for a follow-up: once this series is in, I would like to add
generic IIO ABI that serves both families in the same way: the PGA gain
of each channel through a writable scale, with
in_voltage_scale_available, sampling_frequency_available, and a
timestamp channel. Would that be acceptable as a follow-up series on
top of this one?
Stephan Costa Barros (6):
iio: adc: ti-ads1298: fix the data read path
iio: adc: ti-ads1298: fix power-up and clock handling
iio: adc: ti-ads1298: fix scale, ID check, regmap and Kconfig
iio: adc: ti-ads1298: prepare for more chip families
dt-bindings: iio: adc: ti,ads1298: add ADS1299
iio: adc: ti-ads1298: add ADS1299 support
.../bindings/iio/adc/ti,ads1298.yaml | 41 +-
drivers/iio/adc/Kconfig | 7 +-
drivers/iio/adc/ti-ads1298.c | 513 ++++++++++++++----
3 files changed, 448 insertions(+), 113 deletions(-)
base-commit: c9dbe2a47f635465c9985b7af74d2ae310e98125
--
2.43.0
next reply other threads:[~2026-10-24 23:13 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-24 23:13 Stephan Costa Barros [this message]
2026-10-24 23:13 ` [PATCH v2 1/6] iio: adc: ti-ads1298: fix the data read path Stephan Costa Barros
2026-10-24 23:13 ` [PATCH v2 2/6] iio: adc: ti-ads1298: fix power-up and clock handling Stephan Costa Barros
2026-10-24 23:13 ` [PATCH v2 3/6] iio: adc: ti-ads1298: fix scale, ID check, regmap and Kconfig Stephan Costa Barros
2026-10-24 23:13 ` [PATCH v2 4/6] iio: adc: ti-ads1298: prepare for more chip families Stephan Costa Barros
2026-10-24 23:13 ` [PATCH v2 5/6] dt-bindings: iio: adc: ti,ads1298: add ADS1299 Stephan Costa Barros
2026-10-24 23:13 ` [PATCH v2 6/6] iio: adc: ti-ads1298: add ADS1299 support Stephan Costa Barros
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=20261024231335.280955-1-stephanbrrs8@gmail.com \
--to=stephanbrrs8@gmail.com \
--cc=andriy.shevchenko@intel.com \
--cc=andy@kernel.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=dlechner@baylibre.com \
--cc=jic23@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=krzk@kernel.org \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mike.looijmans@topic.nl \
--cc=nuno.sa@analog.com \
--cc=robh@kernel.org \
--cc=u.kleine-koenig@baylibre.com \
/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
all inboxes | Powered by JetHome®