[PATCH v4 0/3] iio: adc: ti-ads112c14: continuous mode support
"David Lechner (TI)" <[email protected]>
| Newsgroups | org.kernel.vger.linux-iio,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <20260827-iio-adc-ti-ads112c14-continuous-mode-v4-0-1e51a6e20a69@baylibre.com> |
The TI ADS112C14 ADC has a continuous mode where it can trigger conversions using its own clock and signals that data is ready using the /DRDY line. This allows capturing data at higher rates since it avoids the settling time between conversions. But it is limited to only being able to sample one channel at a time. Users will be able to select between continuous and single-shot mode for buffered reads by selecting the trigger. If the "own" trigger from the /DRDY interrupt is selected, continuous mode will be used. Or if some other (software) trigger is selected, single-shot mode will be used as was already implemented before this series. Supporting open-drain /DRDY is deferred for future work. In simple cases we have just done a `drive-open-drain` DT property for this, but on this chip there is more than one pin (GPIO, FAULT interrupt) that could also need to be open-drain and not all at the same time. Signed-off-by: David Lechner (TI) <[email protected]> --- Changes in v4: - Check for the "interrupt-names" property instead of "interrupts" to detect the /DRDY interrupt so that it works on ACPI systems too. - Add ads112c14_first_active_channel() helper instead of duplicating the find_first_bit() lookup. - Use regmap_update_bits() with FIELD_PREP() instead of regmap_assign_bits() for the CONV_MODE field. - Link to v3: https://patch.msgid.link/20260807-iio-adc-ti-ads112c14-continuous-mode-v3-0-76e0d30e6c6b@baylibre.com Changes in v3: - Leave DRDY interrupt always enabled. - Link to v2: https://patch.msgid.link/20260731-iio-adc-ti-ads112c14-continuous-mode-v2-0-eb13da38e8fc@baylibre.com Changes in v2: - Split out irq and poll code paths into separate functions. - Split refactoring into separate patch. - Use iio_validate_scan_mask_onehot(). - Just return immediately on error in buffer_predisable(). - Don't set default trigger. - Code style improvements. - Fixed null pointer dereference bug when no trigger. - Link to v1: https://patch.msgid.link/20260724-iio-adc-ti-ads112c14-continuous-mode-v1-0-9eb0b7a4f020@baylibre.com --- David Lechner (TI) (3): iio: adc: ti-ads112c14: add DRDY interrupt support iio: adc: ti-ads112c14: create data read helper functions iio: adc: ti-ads112c14: add continuous mode support drivers/iio/adc/ti-ads112c14.c | 288 ++++++++++++++++++++++++++++++++++++----- 1 file changed, 259 insertions(+), 29 deletions(-) --- base-commit: 22359083a9e74d538ce383d5c0ee30cc20182187 change-id: 20260724-iio-adc-ti-ads112c14-continuous-mode-dd1580754609 Best regards, -- David Lechner (TI) <[email protected]>