Messages in this thread |  | | From | Piyush Patle <> | | Subject | [PATCH v11 00/11] iio: adc: Add support for AVIA HX710B ADC | | Date | Thu, 4 Jun 2026 00:18:48 +0530 |
| |
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.
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(-)
-- 2.43.0
|  |