[v3,0/2] Adding support for Microchip MCP3564 ADC family

Message ID 20230804142820.89593-1-marius.cristea@microchip.com
Headers
Series Adding support for Microchip MCP3564 ADC family |

Message

marius.cristea@microchip.com Aug. 4, 2023, 2:28 p.m. UTC
  From: Marius Cristea <marius.cristea@microchip.com>

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.
  - 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
  

Comments

Conor Dooley Aug. 4, 2023, 3:28 p.m. UTC | #1
On Fri, Aug 04, 2023 at 05:28:18PM +0300, marius.cristea@microchip.com wrote:
> From: Marius Cristea <marius.cristea@microchip.com>
> 
> 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

The compatibles are all still in an enum in the binding with no
fallbacks. Did you forget to commit this?

Thanks,
Conor.

>   
> - 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.
>   - discussion related to the "custom property". Last time around a consensus
>     wasn't reached.
  
Jonathan Cameron Aug. 5, 2023, 5:08 p.m. UTC | #2
On Fri, 4 Aug 2023 17:28:18 +0300
<marius.cristea@microchip.com> wrote:

> From: Marius Cristea <marius.cristea@microchip.com>
> 
> 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