[PATCH v4 0/3] iio: adc: add support for pac1921

From: Matteo Martelli
Date: Wed Jul 24 2024 - 05:09:26 EST


Add iio driver and DT binding for the Microchip PAC1921 Current/Power
monitor.

Implemented most of the features with few limitations listed in the
driver commit message.

Tested with a Pine64 host board connected to a PAC1921 click board [1]
via I2C. The PAC1921 click board embeds the Microchip PAC1921 device
and a 10 mOhms shunt resistor. The PAC1921 datasheet is at [2].

[1]: https://www.mikroe.com/pac1921-click
[2]: https://ww1.microchip.com/downloads/en/DeviceDoc/PAC1921-Data-Sheet-DS20005293E.pdf

Signed-off-by: Matteo Martelli <matteomartelli3@xxxxxxxxx>
---
Changes in v4:
- DT binding: rename microchip,read-int-gpios to read-integrate-gpios
- Fix non constant ext info initializers, reported by kernel test robot,
ref: https://lore.kernel.org/oe-kbuild-all/202407240123.tjObpf49-lkp@xxxxxxxxx/
- Link to v3: https://lore.kernel.org/r/20240722-iio-pac1921-v3-0-05dc9916cb33@xxxxxxxxx

Changes in v3:
- Add shunt_resistor attribute for current channel
- Generalize shunt_resistor ABI
- Remove specific pac1921 ABI
- Remove resolution and filters controls
- Use scale attributes instead of hwgain attributes to control gains
- Replace integration_num_samples and integration_time attributes with
oversample_ratio and sampling_frequency
- Consider time to enter integration mode before marking data available
- Add controls for overflow events
- Add select fields in Kconfig
- Refactoring based on Jonathan feedback from v2
- Link to v2: https://lore.kernel.org/r/20240704-iio-pac1921-v2-0-0deb95a48409@xxxxxxxxx

Changes in v2:
- DT binding: remove vendor specific gains, add vdd-supply, add
read/int gpio and fix properties order in example
- Remove parsing of gains from DT
- Handle vdd regulator
- Fix return value in filter_en write handler
- Link to v1: https://lore.kernel.org/r/20240703-iio-pac1921-v1-0-54c47d9180b6@xxxxxxxxx

---
Matteo Martelli (3):
dt-bindings: iio: adc: add binding for pac1921
iio: ABI: generalize shunt_resistor attribute
iio: adc: add support for pac1921

Documentation/ABI/testing/sysfs-bus-iio | 8 +
.../ABI/testing/sysfs-bus-iio-adc-max9611 | 17 -
Documentation/ABI/testing/sysfs-bus-iio-ina2xx-adc | 9 -
.../bindings/iio/adc/microchip,pac1921.yaml | 71 ++
MAINTAINERS | 7 +
drivers/iio/adc/Kconfig | 13 +
drivers/iio/adc/Makefile | 1 +
drivers/iio/adc/pac1921.c | 1263 ++++++++++++++++++++
8 files changed, 1363 insertions(+), 26 deletions(-)
---
base-commit: 1ebab783647a9e3bf357002d5c4ff060c8474a0a
change-id: 20240606-iio-pac1921-77fa0fa3ac11

Best regards,
--
Matteo Martelli <matteomartelli3@xxxxxxxxx>