staging:iio:ad7606: Use oversampling ratio of 1 for no oversampling
authorLars-Peter Clausen <lars@metafoo.de>
Wed, 19 Oct 2016 17:07:00 +0000 (19:07 +0200)
committerJonathan Cameron <jic23@kernel.org>
Sun, 23 Oct 2016 18:34:13 +0000 (19:34 +0100)
Currently the ad7606 driver uses a value of 0 for the oversampling ratio to
express that no oversampling is done. Strictly speaking this means though
that no data capture is done at all. Instead change the driver to use a
value of 1, this is in accordance with what other drivers do and what the
IIO spec suggests.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
drivers/staging/iio/adc/ad7606_core.c

index d3a35512261a8d052f4ae772781acf3d07b4feb5..7c093e2a0faf1f8ad1855378712bd25f525b3b9c 100644 (file)
@@ -149,7 +149,7 @@ static IIO_CONST_ATTR(in_voltage_range_available, "5000 10000");
 
 static int ad7606_oversampling_get_index(unsigned int val)
 {
-       unsigned char supported[] = {0, 2, 4, 8, 16, 32, 64};
+       unsigned char supported[] = {1, 2, 4, 8, 16, 32, 64};
        int i;
 
        for (i = 0; i < ARRAY_SIZE(supported); i++)
@@ -188,7 +188,7 @@ static int ad7606_write_raw(struct iio_dev *indio_dev,
        }
 }
 
-static IIO_CONST_ATTR(oversampling_ratio_available, "0 2 4 8 16 32 64");
+static IIO_CONST_ATTR(oversampling_ratio_available, "1 2 4 8 16 32 64");
 
 static struct attribute *ad7606_attributes_os_and_range[] = {
        &iio_dev_attr_in_voltage_range.dev_attr.attr,
@@ -449,7 +449,7 @@ struct iio_dev *ad7606_probe(struct device *dev, int irq,
        st->bops = bops;
        st->base_address = base_address;
        st->range = 5000;
-       st->oversampling = 0;
+       st->oversampling = 1;
 
        st->reg = devm_regulator_get(dev, "vcc");
        if (!IS_ERR(st->reg)) {