Эх сурвалжийг харах

staging:iio:ad7606: Use oversampling ratio of 1 for no oversampling

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>
Lars-Peter Clausen 9 жил өмнө
parent
commit
e79e8027c1

+ 3 - 3
drivers/staging/iio/adc/ad7606_core.c

@@ -149,7 +149,7 @@ static IIO_CONST_ATTR(in_voltage_range_available, "5000 10000");
 
 
 static int ad7606_oversampling_get_index(unsigned int val)
 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;
 	int i;
 
 
 	for (i = 0; i < ARRAY_SIZE(supported); 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[] = {
 static struct attribute *ad7606_attributes_os_and_range[] = {
 	&iio_dev_attr_in_voltage_range.dev_attr.attr,
 	&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->bops = bops;
 	st->base_address = base_address;
 	st->base_address = base_address;
 	st->range = 5000;
 	st->range = 5000;
-	st->oversampling = 0;
+	st->oversampling = 1;
 
 
 	st->reg = devm_regulator_get(dev, "vcc");
 	st->reg = devm_regulator_get(dev, "vcc");
 	if (!IS_ERR(st->reg)) {
 	if (!IS_ERR(st->reg)) {