mbox series

[v4,0/6] Add support for AD4000 series of ADCs

Message ID cover.1718749981.git.marcelo.schmitt@analog.com (mailing list archive)
Headers show
Series Add support for AD4000 series of ADCs | expand

Message

Marcelo Schmitt June 18, 2024, 11:10 p.m. UTC
This patch series extends the SPI bitbang, gpio, and spi-engine controllers to
support configurable MOSI line idle state.
It then introduces the ad4000 driver which uses the MOSI idle configuration to
properly support AD4000 series of ADCs.

Change log v3 -> v4:

[SPI]
- spi: Added documentation for the MOSI idle configuration.
- spi: spi_setup() now fails on improper MOSI idle state configuration.
- spi: spi_setup() now fails if controller doesn't support requested MOSI config.
- spi: spi-engine: Only set MOSI idle mode bits if spi-engine version supports it.
[Device tree]
- dt: Made grouped compatible strings for devices that are similar to each other.
- dt: Updated dt-bindings to constrain properties that depend on reg access to
  "3-wire" mode only.
- dt: adi,gain-milli is now a 16-bit device tree property.
[IIO/ADC]
- ad4000: Used devm_regulator_get_enable_read_voltage() for ref regulator.
- ad4000: Tweaked gpiod_set_value comment explaining what happens when CNV GPIO is
  defined and when it is not.
- ad4000: Device configuration register write will now only happen if device is
  connected in a mode that allows register access.
- ad4000: scale attribute now only writeable if device connection allows user to
  change the scale.
- ad4000: scale_available attribute now is only visible if scale is writeable.
- ad4000: many minor changes.


Link to v3: https://lore.kernel.org/linux-iio/cover.1717539384.git.marcelo.schmitt@analog.com/
Link to v2: https://lore.kernel.org/linux-iio/cover.1712585500.git.marcelo.schmitt@analog.com/
Link to v1: https://lore.kernel.org/linux-iio/cover.1711131830.git.marcelo.schmitt@analog.com/

Thanks,
Marcelo

Marcelo Schmitt (6):
  spi: Enable controllers to extend the SPI protocol with MOSI idle
    configuration
  spi: bitbang: Implement support for MOSI idle state configuration
  spi: spi-gpio: Add support for MOSI idle state configuration
  spi: spi-axi-spi-engine: Add support for MOSI idle configuration
  dt-bindings: iio: adc: Add AD4000
  iio: adc: Add support for AD4000

 .../bindings/iio/adc/adi,ad4000.yaml          | 231 ++++++
 Documentation/spi/spi-summary.rst             |  83 ++
 MAINTAINERS                                   |   8 +
 drivers/iio/adc/Kconfig                       |  12 +
 drivers/iio/adc/Makefile                      |   1 +
 drivers/iio/adc/ad4000.c                      | 715 ++++++++++++++++++
 drivers/spi/spi-axi-spi-engine.c              |   8 +
 drivers/spi/spi-bitbang.c                     |  24 +
 drivers/spi/spi-gpio.c                        |  12 +-
 drivers/spi/spi.c                             |   9 +-
 include/linux/spi/spi.h                       |   6 +
 include/linux/spi/spi_bitbang.h               |   1 +
 include/uapi/linux/spi/spi.h                  |   5 +-
 13 files changed, 1111 insertions(+), 4 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/iio/adc/adi,ad4000.yaml
 create mode 100644 drivers/iio/adc/ad4000.c