Re: [PATCH v11 00/11] iio: adc: Add support for AVIA HX710B ADC

From: Jonathan Cameron

Date: Fri Jul 24 2026 - 17:35:29 EST


On Fri, 24 Jul 2026 05:51:25 +0530
Piyush Patle <piyushpatle228@xxxxxxxxx> wrote:

> On Mon, Jun 15, 2026 at 2:34 AM Jonathan Cameron <jic23@xxxxxxxxxx> wrote:
> >
> > On Thu, 4 Jun 2026 00:18:48 +0530
> > Piyush Patle <piyushpatle228@xxxxxxxxx> wrote:
> >
> > > The HX710B is a 24-bit ADC from AVIA Semiconductor, related to the
> > > HX711 already supported in this driver. Unlike the HX711 (which has
> > > selectable gain and two input channels), the HX710B has a fixed gain
> > > of 128 and two operating modes selected by the trailing PD_SCK pulse
> > > count after each conversion:
> > >
> > > 25 pulses (1 trailing): differential input at 10 SPS
> > > 26 pulses (2 trailing): DVDD-AVDD supply monitor at 40 SPS
> > > 27 pulses (3 trailing): differential input at 40 SPS
> > >
> > > This series first extends the existing HX711 binding and driver with
> > > preparatory refactoring, then adds HX710B support on top.
> > >
> > > The differential input is exposed as a single IIO channel with
> > > IIO_CHAN_INFO_SAMP_FREQ, allowing userspace to select 10 or 40 SPS
> > > without needing two separate channels for the same physical input.
> > > The supply monitor is a second channel at fixed 40 SPS.
> > >
> > > This revision is rebased onto current mainline. Note that
> > > iio_device_claim_direct_mode() / iio_device_release_direct_mode() were
> > > removed from the IIO core since v10, so 11/11 now uses the replacement
> > > iio_device_claim_direct() / iio_device_release_direct() API.
> > >
> > > Tested on a PocketBeagle2 (TI AM625): the avia,hx710b node probes and
> > > the driver registers its two IIO channels.
> > >
> > > Changes from v10:
> > > - 02/11: Retitled to "add VSUP and DVDD supply properties"; the
> > > commit message now documents both supplies (the patch already
> > > added both; only the title/text were out of sync). [Jonathan]
> > > - 04/11: Reworded commit message so DVDD is no longer described as
> > > HX710B-specific (it is added for both parts in 02/11). The
> > > compatible match now uses "contains: const: avia,hx710b" so the
> > > constraints still apply if the compatible is later used as a
> > > fallback. dvdd-supply is now required for HX710B (in the HX710B
> > > branch only, so existing HX711 device trees are unaffected) and
> > > added to the HX710B example. [Jonathan, Conor, Sashiko]
> > > - 11/11: Kconfig title and file header use "similar" instead of
> > > "compatible". Simplified the tail of hx711_set_hx710b_channel()
> > > to "return hx711_wait_for_ready()". Dropped an unrelated
> > > reindentation of the iio_push_to_buffers_with_timestamp() call.
> > > Converted hx710b_write_raw() to the new
> > > iio_device_claim_direct() API (see above). [Jonathan]
> > >
> > > The Reviewed-by (Andy Shevchenko) and Acked-by (Conor Dooley) tags on
> > > 02/11 and 04/11 are carried over although those patches changed; please
> > > re-confirm if you disagree with the reworked constraints.
> > As the only comments I had (well mostly sashiko) were on the 710b patch
> > at the end and some patches were queued from previous patches, I now have
> > patches 1-3 and 5-10 applied to the testing branch of iio.git.
>
> Thanks a lot for picking those up, and for the reviews through the
> series.
>
> Two questions, mostly to make sure I do the right thing next:
>
> Looking at mainline I currently only see 01/11 ("dt-bindings: iio: adc:
> hx711: clean up existing binding text") and 05/11 ("iio: adc: hx711:
> move scale computation to per-device storage") under my name. I assume
> the rest are still sitting in testing/togreg and will flow in at the
> next merge window rather than anything having gone missing, is that
> right? Just checking I'm reading the tree correctly, no rush from my
> side.

Exactly that - assuming nothing odd happens they should go into mainline
in the next merge window.

>
> For the two that weren't applied, 04/11 (dt-bindings HX710B) and 11/11
> (driver HX710B support): would you prefer I resend just those two as a
> standalone v12 based on the testing branch, once I've worked through
> the remaining comments from you and Sashiko? That seemed cleaner than
> reposting all eleven, but happy to send the full series again if you'd
> rather have it that way.

Go for the togreg branch (it's a little behind but should have all your
work on it) and make sure to have a Based-on entry in the cover letter.
I'm not sure if Sashiko will find the right thing test on but worth a go.


>
> If there is anything still outstanding on 04/11 or 11/11 beyond what
> was raised on v11, please do point me at it and I'll fold it in.

Not that I know of, but we'll see on v11 :)

Jonathan

>
> Thanks,
> Piyush
> >
> > Thanks,
> >
> > Jonathan
> >
> > >
> > > Patches 01/11, 03/11, and 05/11 are unchanged from v10.
> > >
> > > Piyush Patle (11):
> > > dt-bindings: iio: adc: hx711: clean up existing binding text
> > > dt-bindings: iio: adc: hx711: add VSUP and DVDD supply properties
> > > dt-bindings: iio: adc: hx711: add RATE GPIO property
> > > dt-bindings: iio: adc: hx711: add HX710B support
> > > iio: adc: hx711: move scale computation to per-device storage
> > > iio: adc: hx711: introduce hx711_chip_info structure
> > > iio: adc: hx711: pass trailing pulse count into hx711_read
> > > iio: adc: hx711: split variable assignments in hx711_read and
> > > hx711_reset
> > > iio: adc: hx711: localize loop iterators in hx711_read
> > > iio: adc: hx711: pass iio_chan_spec to hx711_reset_read
> > > iio: adc: hx711: add support for HX710B
> > >
> > > .../bindings/iio/adc/avia-hx711.yaml | 82 ++++-
> > > drivers/iio/adc/Kconfig | 8 +-
> > > drivers/iio/adc/hx711.c | 343 +++++++++++++++---
> > > 3 files changed, 359 insertions(+), 74 deletions(-)
> > >
> >