staging: iio: ad7606: fix improper setting of oversampling pins
authorEva Rachel Retuya <eraretuya@gmail.com>
Sat, 8 Oct 2016 16:05:39 +0000 (00:05 +0800)
committerBen Hutchings <ben@decadent.org.uk>
Thu, 16 Mar 2017 02:18:23 +0000 (02:18 +0000)
commit b321a38d2407c7e425c54bc09be909a34e49f740 upstream.

The oversampling ratio is controlled using the oversampling pins,
OS [2:0] with OS2 being the MSB control bit, and OS0 the LSB control
bit.

The gpio connected to the OS2 pin is not being set correctly, only OS0
and OS1 pins are being set. Fix the typo to allow proper control of the
oversampling pins.

Signed-off-by: Eva Rachel Retuya <eraretuya@gmail.com>
Fixes: b9618c0 ("staging: IIO: ADC: New driver for AD7606/AD7606-6/AD7606-4")
Acked-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
drivers/staging/iio/adc/ad7606_core.c

index 2ee187f..19af661 100644 (file)
@@ -185,7 +185,7 @@ static ssize_t ad7606_store_oversampling_ratio(struct device *dev,
        mutex_lock(&indio_dev->mlock);
        gpio_set_value(st->pdata->gpio_os0, (ret >> 0) & 1);
        gpio_set_value(st->pdata->gpio_os1, (ret >> 1) & 1);
        mutex_lock(&indio_dev->mlock);
        gpio_set_value(st->pdata->gpio_os0, (ret >> 0) & 1);
        gpio_set_value(st->pdata->gpio_os1, (ret >> 1) & 1);
-       gpio_set_value(st->pdata->gpio_os1, (ret >> 2) & 1);
+       gpio_set_value(st->pdata->gpio_os2, (ret >> 2) & 1);
        st->oversampling = lval;
        mutex_unlock(&indio_dev->mlock);
 
        st->oversampling = lval;
        mutex_unlock(&indio_dev->mlock);