[PATCH v6 00/11] iio: adc: hx711: add HX710B support

Piyush Patle
2026-05-03T12:10:02Z

Add support for the AVIA HX710B ADC, a HX711-compatible converter with
the same GPIO interface but a different channel-selection model and a
fixed gain of 128.

Compared to v5, this series is unchanged functionally and only folds in
the remaining review nits:

- keep the per-variant probe local declarations in reversed xmas tree
order
- add a preparatory split-assignment patch before the loop-iterator
cleanup, then keep the loop indices signed to match trailing_pulses
- replace the 24-bit read loop bound with a named constant while
touching the same code
- keep the driver wording aligned on "weigh sensor modules"
- rename fixed_gain to has_fixed_gain and drop the channel_set cast

The DT binding split from v5 is kept as-is:

- cleanup of the existing HX711 binding text
- HX711-only VSUP documentation
- HX711-only RATE GPIO documentation
- HX710B binding addition

Tested on PocketBeagle2 with an HX710B breakout module. The device
probed successfully, all three channels returned stable raw readings,
and alternating reads confirmed channel switching between the
differential input and the DVDD-AVDD supply monitor path.

Build-tested with:
- make -s W=1 drivers/iio/adc/hx711.o
- make -s dt_binding_check \
DT_SCHEMA_FILES=Documentation/devicetree/bindings/iio/adc/avia-hx711.yaml
- pahole -C hx711_chip_info drivers/iio/adc/hx711.o

pahole reports hx711_chip_info as 40 bytes with no internal holes. The
remaining 7 bytes are tail padding from 8-byte pointer alignment.

Changes in v6:
- Fold the remaining review nits into the original 11-patch series
rather than adding follow-up fixes.
- Keep hx711_probe() local declarations in reversed xmas tree order in
the hx711_chip_info patch.
- Add a preparatory split-assignment patch before the loop-iterator
cleanup and keep the iterator types signed to match trailing_pulses.
- Replace the 24-bit hx711_read() loop bound with HX711_DATA_BITS in
the loop-iterator patch.
- Keep the driver header wording as "weigh sensor modules".
- Rename fixed_gain to has_fixed_gain and make channel_set signed so
the HX710B channel comparison no longer needs a cast.

Piyush Patle (11):
dt-bindings: iio: adc: hx711: clean up existing binding text
dt-bindings: iio: adc: hx711: add VSUP supply property
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 | 77 ++++-
drivers/iio/adc/Kconfig | 8 +-
drivers/iio/adc/hx711.c | 299 ++++++++++++++----
3 files changed, 308 insertions(+), 76 deletions(-)

--
2.43.0