On Tue, 22 Mar 2022 12:50:23 +0200 <alexandru.tachici@xxxxxxxxxx> wrote: > From: Alexandru Tachici <alexandru.tachici@xxxxxxxxxx> Hi Alexandru, I just took another look at this and I'm happy with it. Will leave it on list for a few more days for others to take a look though before I queue it up. Thanks, Jonathan > > 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