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

Piyush Patle posted 11 patches 1 month, 1 week ago
There is a newer version of this series
.../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(-)
[PATCH v6 00/11] iio: adc: hx711: add HX710B support
Posted by Piyush Patle 1 month, 1 week ago
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
Re: [PATCH v6 00/11] iio: adc: hx711: add HX710B support
Posted by Andy Shevchenko 1 month, 1 week ago
On Sun, May 03, 2026 at 05:39:29PM +0530, Piyush Patle wrote:
> 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.

Some small issues here and there, either Jonathan is going to tweak, or if
v7 is going to address them, feel free to add
Reviewed-by: Andy Shevchenko <andriy.shevchenko@intel.com>

-- 
With Best Regards,
Andy Shevchenko