It took more time than I expected, but I have followed up on this and now
I'm presenting the patch for your review.
Modified the code based on the implementation of this application note
as a reference:
https://www.analog.com/media/en/technical-documentation/user-guides/guide-to-programming-the-max14001max14002-isolated-adcs--maxim-integrated.pdf
For now, I'm figuring out how to implement daisy chain for future support.
Changes in v2:
max14001:
- Replaced verification register definitions with macro.
- Removed local definition of IIO_DMA_MINALIGN.
- Changed driver to big endian format and reverse data prior to outputting
it to the device as per the app note.
- Utilized default register values instead of zero to clear memory validation
fault.
- Converted driver to use custom regmap for register access.
- Modified scaled value calculation and changed to IIO_VAL_FRACTIONAL_LOG2.
- Removed offset attribute.
- Added comments for clarity in write transactions.
- Misc changes(blank lines...).
Bindings:
- Removed unneccessary device tree propertied and updated bindings.
The code was tested using max14001pmb and max14001evsys boards with
raspberry pi 4.
Kim Seer Paller (2):
dt-bindings:iio:adc: add max14001
iio: adc: max14001: New driver
.../bindings/iio/adc/adi,max14001.yaml | 55 +++
MAINTAINERS | 8 +
drivers/iio/adc/Kconfig | 10 +
drivers/iio/adc/Makefile | 1 +
drivers/iio/adc/max14001.c | 333 ++++++++++++++++++
5 files changed, 407 insertions(+)
create mode 100644 Documentation/devicetree/bindings/iio/adc/adi,max14001.yaml
create mode 100644 drivers/iio/adc/max14001.c
base-commit: 44149752e9987a9eac5ad78e6d3a20934b5e018d
--
2.34.1