summaryrefslogtreecommitdiff
path: root/drivers/staging/iio/adc/ad799x_core.c
diff options
context:
space:
mode:
authorMichael Hennerich <michael.hennerich@analog.com>2010-10-12 10:30:51 +0200
committerGreg Kroah-Hartman <gregkh@suse.de>2010-10-12 08:59:32 -0700
commit1139df53533e8a4327f3867c6b32202ac62b19ee (patch)
treee852ff3cb37a543d99b872645456f95287867396 /drivers/staging/iio/adc/ad799x_core.c
parent668413e9e7ad0bc53eeba2465dafd66dbc817996 (diff)
staging: iio: adc: ad799x miscellaneous cleanups
-Simplify by using iio_alloc_pollfunc helper function -Print in_scale in decimal format. -Simplify ring pointer dereferences Signed-off-by: Michael Hennerich <michael.hennerich@analog.com> Acked-by: Jonathan Cameron <jic23@cam.ac.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/staging/iio/adc/ad799x_core.c')
-rw-r--r--drivers/staging/iio/adc/ad799x_core.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/drivers/staging/iio/adc/ad799x_core.c b/drivers/staging/iio/adc/ad799x_core.c
index 35fad73f0ebf..6309d521a864 100644
--- a/drivers/staging/iio/adc/ad799x_core.c
+++ b/drivers/staging/iio/adc/ad799x_core.c
@@ -428,14 +428,11 @@ static ssize_t ad799x_show_scale(struct device *dev,
/* Driver currently only support internal vref */
struct iio_dev *dev_info = dev_get_drvdata(dev);
struct ad799x_state *st = iio_dev_get_devdata(dev_info);
+
/* Corresponds to Vref / 2^(bits) */
+ unsigned int scale_uv = (st->int_vref_mv * 1000) >> st->chip_info->bits;
- if ((1 << (st->chip_info->bits + 1))
- > st->int_vref_mv)
- return sprintf(buf, "0.5\n");
- else
- return sprintf(buf, "%d\n",
- st->int_vref_mv >> st->chip_info->bits);
+ return sprintf(buf, "%d.%d\n", scale_uv / 1000, scale_uv % 1000);
}
static IIO_DEVICE_ATTR(in_scale, S_IRUGO, ad799x_show_scale, NULL, 0);