mbox series

[v4,0/2] iio: adc: ti-ads7924: add Texas Instruments ADS7924 driver

Message ID 20230115170623.3680647-1-hugo@hugovil.com
Headers show
Series iio: adc: ti-ads7924: add Texas Instruments ADS7924 driver | expand

Message

Hugo Villeneuve Jan. 15, 2023, 5:06 p.m. UTC
From: Hugo Villeneuve <hvilleneuve@dimonoff.com>

Hello,
this patch series adds the driver for the Texas Instruments ADS7924.

The Texas Instruments ADS7924 is a 4 channels, 12-bit analog to
digital converter (ADC) with an I2C interface.

Patch 1 contains the driver for the ADS7924.

Patch 2 add the dt-bindings for the ADS7924.

I have tested the driver using the Texas Instruments ADS7924EVM board connected
to a Variscite Symphony EVK with a IMX8MN NANO SOM:
  - Tested reset pin Ok
  - Tested regulator setup Ok
  - Tested reading sysfs in_voltage_scale Ok
  - Tested reading sysfs in_voltageX_raw (x=0 to 3) Ok

Thank you.

Link: [v1] https://lore.kernel.org/linux-iio/20221222203610.2571287-1-hugo@hugovil.com/
Link: [v2] https://lore.kernel.org/linux-iio/20230110160124.3853593-1-hugo@hugovil.com/
Link: [v3] https://lore.kernel.org/linux-iio/20230113194959.3276433-1-hugo@hugovil.com/

Changes for V4:
- DT bindings: remove label description.
- Remove blank line between datasheet tag and SOB in commit message.
- Return value from regulator_get_voltage()
- Fix num_channels comparison (cannot be < 0)
- Change severity of message to dev_err in ads7924_set_conv_mode().

Changes for V3:
- Rebase on linux-6.2-rc1
- Refactor to follow usual coding practices as per review comments.
- Fix missing include (reported by kernel test robot).
- Fix DT bindings errors.
- Removed unused define.
- Remove breaks after return.
- Remove debug message in ads7924_get_channels_config().
- Remove braces around swich case IIO_CHAN_INFO_RAW.
- Remove comments about regulator_get_voltage() failing for dummy regulator.

Changes for V2:
- Dropped patch "iio: adc: Kconfig: add SPI interface mention to AD7924
  description"
- Fixed comments style
- Removed unused defines/variables/etc related to buffered support (no buffered
  support for the moment).
- Convert of-specific code to use the generic firmware property accessors in
  include/linux/property.h.
- Use FIELD_GET / FIELD_PREP for bit operations/defines
- Simplified conversion result registers definitions/usage.
- Now using mutex lock/unlock only for INFO_RAW switch branch
- Use dev_err_probe() in all return paths of ads7924_probe()
- Removed ads7924_remove() after adding callbacks with
  devm_add_action_or_reset().
- Change iio_device_register() to devm_iio_device_register().
- Add the legacy i2c_device_id table
- DT bindings: reorder entries, fix indentation,improve comments, add interrupt
  line

Hugo Villeneuve (2):
  iio: adc: ti-ads7924: add Texas Instruments ADS7924 driver
  dt-bindings: iio: adc: add Texas Instruments ADS7924

 .../bindings/iio/adc/ti,ads7924.yaml          | 110 ++++
 MAINTAINERS                                   |   7 +
 drivers/iio/adc/Kconfig                       |  11 +
 drivers/iio/adc/Makefile                      |   1 +
 drivers/iio/adc/ti-ads7924.c                  | 474 ++++++++++++++++++
 5 files changed, 603 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/iio/adc/ti,ads7924.yaml
 create mode 100644 drivers/iio/adc/ti-ads7924.c


base-commit: 1b929c02afd37871d5afb9d498426f83432e71c2