On Sun, 15 Jan 2023 12:06:21 -0500 Hugo Villeneuve <hugo@xxxxxxxxxxx> wrote: > From: Hugo Villeneuve <hvilleneuve@xxxxxxxxxxxx> > > 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@xxxxxxxxxxx/ > Link: [v2] https://lore.kernel.org/linux-iio/20230110160124.3853593-1-hugo@xxxxxxxxxxx/ > Link: [v3] https://lore.kernel.org/linux-iio/20230113194959.3276433-1-hugo@xxxxxxxxxxx/ Series applied to the togreg branch of iio.git and pushed out initially as testing for 0-day to work it's magic and see if it can find anything we missed! Thanks, Jonathan > > 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