[PATCH v5 0/5] iio: adc: add ad7606 calibration support

Angelo Dureghello
2025-05-19T10:15:31Z

Add gain, offset and phase (as a delay) calibration support, for
ad7606b, ad7606c16 and ad7606c18.

Calibration is available for devices with software mode capability.

Offset and phase calibration is configurable by sysfs attributes, while
gain calibration value in ohms must match the external RFilter value,
when an external RFilter is available, so implemented through a specific
devicetree "adi,rfilter-ohms" property.

This patchset depends on:
https://lore.kernel.org/linux-iio/20250505131544.0a7477a2@jic23-huawei/

Signed-off-by: Angelo Dureghello <adureghello@baylibre.com>
---
Changes in v5:
- fix tab/spaces wrong formatting on ABI doc (1/5),
- fix description in ABI doc (1/5),
- fix code multiline alignments (3/5),
- fix calibration offset calculation as oneliner expression (3/5),
- Link to v4: https://lore.kernel.org/r/20250508-wip-bl-ad7606-calibration-v4-0-91a3f2837e6b@baylibre.com

Changes in v4:
- fix ad7606_chan_calib_gain_setup appropriately to be called once.
- Link to v3: https://lore.kernel.org/r/20250506-wip-bl-ad7606-calibration-v3-0-6eb7b6e72307@baylibre.com

Changes in v3:
- fix dt_bindings,
- change sysfs calib_delay to convdelay,
- fix sysfs documentation accordingly,
- used u32 for reg and r_gain,
- used DIV_ROUND_CLOSEST for setting r_gain,
- minor syntax fixes,
- Link to v2: https://lore.kernel.org/r/20250502-wip-bl-ad7606-calibration-v2-0-174bd0af081b@baylibre.com

Changes in v2:
- change phase_delay to calib_delay,
- fix dt_bindings,
- fix gain calibarion fdt parsing,
- fix ad7606c-18 calib offset range,
- fix calib offset calculation,
- fix calib gain range,
- Link to v1: https://lore.kernel.org/r/20250429-wip-bl-ad7606-calibration-v1-0-eb4d4821b172@baylibre.com

---
Angelo Dureghello (5):
Documentation: ABI: IIO: add calibconv_delay documentation
iio: core: add ADC delay calibration definition
iio: adc: ad7606: add offset and phase calibration support
dt-bindings: iio: adc: adi,ad7606: add gain calibration support
iio: adc: ad7606: add gain calibration support

Documentation/ABI/testing/sysfs-bus-iio | 24 +++
.../devicetree/bindings/iio/adc/adi,ad7606.yaml | 29 +++
drivers/iio/adc/ad7606.c | 221 +++++++++++++++++++++
drivers/iio/adc/ad7606.h | 12 ++
drivers/iio/industrialio-core.c | 1 +
include/linux/iio/types.h | 1 +
6 files changed, 288 insertions(+)
---
base-commit: 7ad2a2f59802461dd18f641482e5da808c32180b
change-id: 20250429-wip-bl-ad7606-calibration-20a396a60352

Best regards,
--
Angelo Dureghello <adureghello@baylibre.com>