Re: [PATCH v3 0/2] Adding support for Microchip MCP3564 ADC family

From: Jonathan Cameron
Date: Sat Aug 05 2023 - 13:08:56 EST


On Fri, 4 Aug 2023 17:28:18 +0300
<marius.cristea@xxxxxxxxxxxxx> wrote:

> From: Marius Cristea <marius.cristea@xxxxxxxxxxxxx>
>
> Adding support for Microchip family of 153.6 ksps, Low-Noise 16/24-Bit
> Delta-Sigma ADCs with an SPI interface. This driver covers the following part
> numbers:
> - MCP3561, MCP3562, MCP3564, MCP3561R, MCP3562R, MCP3564R,
> - MCP3461, MCP3462, MCP3464, MCP3461R, MCP3462R and MCP3464R.
>
> Differences related to previous patch:
> v3:
> - fix review comments:
> - fix and update the device tree bindings
> - enable "auto_zeroing_ref_enable" attribute only
> when internal reference is used
> - remove unused headers
> - fix comments (kernel-docs)
> - remove scan_type
> - replace "extend_name" with read_label
> - print label for each channel (label could be added into the dt)
> - add comment to explain the maximum channels numbers
> - add protection around critical region
> - fallback compatible in device tree to deal with some newer part number
>
> - Open questions:
> - whether or not to add a spi-mux type of thing to deal with the part number
> address in case there are multiple devices connected to the same chip
> select.

I'd failed to register (until noticing it in a review a few mins ago) that we have
have precedence for devices doing this device-address in the SPI transfer thing.
The mcp3911 does it as well. Obviously that doesn't rule out us doing something
different with this one though.

I think we should take the view this is relatively uncommon and go with this
simple vendor specific dt-binding approach. Always nice to do something more
general, but sometimes it isn't worth the effort.


> - discussion related to the "custom property". Last time around a consensus
> wasn't reached.
>
> v2:
> - fix review comments:
> - change the device tree bindings
> - change the ADC channel creation (starting from DT)
> - use defines, masks and FIELD_PREP() instead of hardcoded values
> - mode the PGA from Hardware Gain to scale
> - add a current output channel from burnout current
> - fix coding style issues
> - use self-explanatory naming to drop the comment
> - renumbered the versioning (start with v1 instead of v0)
>
> v1:
> - first version committed to review
>
> Marius Cristea (2):
> dt-bindings: iio: adc: adding MCP3564 ADC
> iio: adc: adding support for MCP3564 ADC
>
> .../ABI/testing/sysfs-bus-iio-adc-mcp3564 | 53 +
> .../bindings/iio/adc/microchip,mcp3564.yaml | 200 +++
> MAINTAINERS | 7 +
> drivers/iio/adc/Kconfig | 13 +
> drivers/iio/adc/Makefile | 1 +
> drivers/iio/adc/mcp3564.c | 1541 +++++++++++++++++
> 6 files changed, 1815 insertions(+)
> create mode 100644 Documentation/ABI/testing/sysfs-bus-iio-adc-mcp3564
> create mode 100644 Documentation/devicetree/bindings/iio/adc/microchip,mcp3564.yaml
> create mode 100644 drivers/iio/adc/mcp3564.c
>
>
> base-commit: 9e66fb52449538406cea43e9f3889c391350e76e