lkml.org 
[lkml]   [2021]   [Nov]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 1/5] iio: adc: ad7124: Add update_scan_mode
    Date
    From: Alexandru Tachici <alexandru.tachici@analog.com>

    In continuous mode neither sigma_delta.c nor ad7124.c
    will disable previously enabled channels.

    Before this patch a channel stayed enabled indefinetly,
    even when one another one was supposed to be sampled.
    This causes mixed samples in continuous mode to be delivered
    to the host.

    By adding an update_scan_mode callback, every time the
    continuous mode is activated, channels will be enabled/disabled
    accordingly.

    Fixes: b3af341bbd966 ("iio: adc: Add ad7124 support")
    Signed-off-by: Alexandru Tachici <alexandru.tachici@analog.com>
    ---
    drivers/iio/adc/ad7124.c | 21 +++++++++++++++++++++
    1 file changed, 21 insertions(+)

    diff --git a/drivers/iio/adc/ad7124.c b/drivers/iio/adc/ad7124.c
    index 11ce6a3729a5..30299b899799 100644
    --- a/drivers/iio/adc/ad7124.c
    +++ b/drivers/iio/adc/ad7124.c
    @@ -669,11 +669,32 @@ static const struct attribute_group ad7124_attrs_group = {
    .attrs = ad7124_attributes,
    };

    +static int ad7124_update_scan_mode(struct iio_dev *indio_dev,
    + const unsigned long *scan_mask)
    +{
    + struct ad7124_state *st = iio_priv(indio_dev);
    + bool bit_set;
    + int ret;
    + int i;
    +
    + for (i = 0; i < st->num_channels; i++) {
    + bit_set = test_bit(i, scan_mask);
    + ret = ad7124_spi_write_mask(st, AD7124_CHANNEL(i),
    + AD7124_CHANNEL_EN_MSK,
    + AD7124_CHANNEL_EN(bit_set),
    + 2);
    + if (ret < 0)
    + return ret;
    + }
    + return 0;
    +}
    +
    static const struct iio_info ad7124_info = {
    .read_raw = ad7124_read_raw,
    .write_raw = ad7124_write_raw,
    .debugfs_reg_access = &ad7124_reg_access,
    .validate_trigger = ad_sd_validate_trigger,
    + .update_scan_mode = ad7124_update_scan_mode,
    .attrs = &ad7124_attrs_group,
    };

    --
    2.25.1
    \
     
     \ /
      Last update: 2021-11-10 12:08    [W:4.971 / U:0.072 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site