[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20240617183215.4080-1-francesco@dolcini.it>
Date: Mon, 17 Jun 2024 20:32:13 +0200
From: Francesco Dolcini <francesco@...cini.it>
To: Francesco Dolcini <francesco@...cini.it>,
João Paulo Gonçalves <jpaulo.silvagoncalves@...il.com>,
Jonathan Cameron <jic23@...nel.org>,
Lars-Peter Clausen <lars@...afoo.de>,
Rob Herring <robh@...nel.org>,
Krzysztof Kozlowski <krzk+dt@...nel.org>,
Conor Dooley <conor+dt@...nel.org>,
Liam Girdwood <lgirdwood@...il.com>,
Mark Brown <broonie@...nel.org>
Cc: Francesco Dolcini <francesco.dolcini@...adex.com>,
linux-iio@...r.kernel.org,
devicetree@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: [PATCH v3 0/2] iio: adc: ti-ads1119: Add driver
From: Francesco Dolcini <francesco.dolcini@...adex.com>
The ADS1119 is a precision, 16-bit, analog-to-digital converter (ADC)
that features two differential or four single-ended inputs through a
flexible input multiplexer (MUX), rail-to-rail input
buffers, a programmable gain stage, a voltage reference, and an
oscillator.
Apart from normal single conversion, the driver also supports
continuous conversion mode using a triggered buffer. However, in this
mode only one channel can be scanned at a time.
v3:
bindings:
- add avdd and dvdd supplies
- add Reviewed-by: Conor Dooley <conor.dooley@...rochip.com
driver:
- add MICRO constant on necessary places
- add devm_regulator_bulk_get_enable() to handle avdd/dvdd supplies
- add power down action with devm_add_action_or_reset()
- add buffer setup functions
- add iio_validate_scan_mask_onehot() to guarantee only one scan channels
- add support to other triggers than only the adc irq
- add device check to adc irq trigger to guarantee associating it only its own device
- add a cached value for the config register
- change ads1119_get_hw_datarate() return
- change return location in read_raw() and write_raw()
- change return location in ads1119_read_data()
- change the scan buf to a local struct with correct size and alignment
- change ads1119_update_config_reg() to ads1119_upd_cfg_reg()
- fix over wrap in read_poll_timeout()
- remove unnecessary goto label in ads1119_single_conversion()
- remove unnecessary empty lines
- remove scan mask from the driver state
- remove ads1119_validate_gain() and call it inline in write_raw()
- remove all ads1119_cmd functions and use i2c_smbus inline
v2: https://lore.kernel.org/all/20240606163529.87528-1-francesco@dolcini.it/
bindings:
- add diff-channels and single-channel
- remove ti,gain and ti,datarate
- more details on the patch changelog
driver:
- adaptation for the binding changes
- changed i2c read/write to the device (not using regmap anymore, use FIELD macros)
- more details on the patch changelog
v1: https://lore.kernel.org/all/20240527154050.24975-1-francesco@dolcini.it/
João Paulo Gonçalves (2):
dt-bindings: iio: adc: add ti,ads1119
iio: adc: ti-ads1119: Add driver
.../bindings/iio/adc/ti,ads1119.yaml | 155 ++++
MAINTAINERS | 8 +
drivers/iio/adc/Kconfig | 12 +
drivers/iio/adc/Makefile | 1 +
drivers/iio/adc/ti-ads1119.c | 839 ++++++++++++++++++
5 files changed, 1015 insertions(+)
create mode 100644 Documentation/devicetree/bindings/iio/adc/ti,ads1119.yaml
create mode 100644 drivers/iio/adc/ti-ads1119.c
--
2.39.2
Powered by blists - more mailing lists