All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 0/6] iio: adc: ad_sigma_delta: Add sequencer support
@ 2022-03-22 10:50 alexandru.tachici
  2022-03-22 10:50 ` [PATCH v3 1/6] iio: adc: ad7124: Remove shift from scan_type alexandru.tachici
                   ` (6 more replies)
  0 siblings, 7 replies; 9+ messages in thread
From: alexandru.tachici @ 2022-03-22 10:50 UTC (permalink / raw)
  To: linux-iio, linux-kernel; +Cc: jic23, Alexandru Tachici

From: Alexandru Tachici <alexandru.tachici@analog.com>

Some sigma-delta chips support sampling of multiple
channels in continuous mode.

When the operating with more than one channel enabled,
the channel sequencer cycles through the enabled channels
in sequential order, from first channel to the last one.
If a channel is disabled, it is skipped by the sequencer.

If more than one channel is used in continuous mode,
instruct the device to append the status to the SPI transfer
(1 extra byte) every time we receive a sample.
All sigma-delta chips possessing a sampling sequencer have
this ability. Inside the status register there will be
the number of the converted channel. In this way, even
if the CPU won't keep up with the sampling rate, it won't
send to userspace wrong channel samples.

1. Removed the 1 byte .shift from channel spec in AD7124,
it confuses userspace apps (no need to shift right).

2. Add update_scan_mode to AD7124, it is required in order
to enable/disable multiple channels at once

3. Add update_scan_mode to AD7192, it is required in order
to enable/disable multiple channels at once

4. Add sequencer support for sigma_delta library.

5. Add sigma_delta_info values and callbacks for sequencer
support in AD7124.

6. Add sigma_delta_info values and callbacks for sequencer
support in AD7192.

Alexandru Tachici (5):
  iio: adc: ad7124: Remove shift from scan_type
  iio: adc: ad7124: Add update_scan_mode
  iio: adc: ad7192: Add update_scan_mode
  iio: adc: ad7124: add sequencer support
  iio: adc: ad7192: add sequencer support

Lars-Peter Clausen (1):
  iio: adc: ad_sigma_delta: Add sequencer support

Changelog V2 -> V3:
  - ad_sd_buffer_postenable(), aligned (slot * storagebits) to 8 bytes
  - devm_krealloc instead of krealloc for samples_buf in ad_sd_buffer_postenable()
  - in ad_sigma_delta_append_status, check return value before setting .status_appended
  - iio: adc: ad_sigma_delta: Add sequencer support: added explanations on
  desynchronization checking and recovery
  - in ad7124_append_status() modify st->adc_control after write has taken place without errors
  - in ad7124_update_scan_mode() take cfg mutex only once instead of every time a
  set_channel happens
  - in ad7192_disable_all() modify st->conf after write taken place without errors
  - in ad7192_append_status() modify st->mode after write taken place without errors

 drivers/iio/adc/ad7124.c               |  86 ++++++++++++++-
 drivers/iio/adc/ad7192.c               |  64 ++++++++++-
 drivers/iio/adc/ad_sigma_delta.c       | 143 +++++++++++++++++++++++--
 include/linux/iio/adc/ad_sigma_delta.h |  38 +++++++
 4 files changed, 315 insertions(+), 16 deletions(-)

--
2.25.1

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2022-03-27 15:03 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-03-22 10:50 [PATCH v3 0/6] iio: adc: ad_sigma_delta: Add sequencer support alexandru.tachici
2022-03-22 10:50 ` [PATCH v3 1/6] iio: adc: ad7124: Remove shift from scan_type alexandru.tachici
2022-03-22 10:50 ` [PATCH v3 2/6] iio: adc: ad7124: Add update_scan_mode alexandru.tachici
2022-03-22 10:50 ` [PATCH v3 3/6] iio: adc: ad7192: " alexandru.tachici
2022-03-22 10:50 ` [PATCH v3 4/6] iio: adc: ad_sigma_delta: Add sequencer support alexandru.tachici
2022-03-22 10:50 ` [PATCH v3 5/6] iio: adc: ad7124: add " alexandru.tachici
2022-03-22 10:50 ` [PATCH v3 6/6] iio: adc: ad7192: " alexandru.tachici
2022-03-22 21:30 ` [PATCH v3 0/6] iio: adc: ad_sigma_delta: Add " Jonathan Cameron
2022-03-27 15:10   ` Jonathan Cameron

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.