On Tue, 22 Mar 2022 21:30:02 +0000 Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx> wrote: > 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. > Applied to the togreg branch of iio.git though I won't push that out, other than as testing, until I can rebase on rc1. Thanks, Jonathan > 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 >