diff options
author | Lars-Peter Clausen <lars@metafoo.de> | 2013-09-28 05:31:00 -0400 |
---|---|---|
committer | Jonathan Cameron <jic23@kernel.org> | 2013-10-01 11:19:09 -0400 |
commit | 0a99b6014343e39d7e01ebfc386fb16c8a5a6826 (patch) | |
tree | 2c290481aad87bae73580b07268724bb54cf252f /drivers/iio/dac | |
parent | bc7c49bc77ba95609236f23082a38ec160416a8d (diff) |
iio:ad5446: Report scale as fractional value
Move the complexity of calculating the fixed point scale to the core.
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Diffstat (limited to 'drivers/iio/dac')
-rw-r--r-- | drivers/iio/dac/ad5446.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/drivers/iio/dac/ad5446.c b/drivers/iio/dac/ad5446.c index 8e28d3633e22..1263b0e5ad84 100644 --- a/drivers/iio/dac/ad5446.c +++ b/drivers/iio/dac/ad5446.c | |||
@@ -163,18 +163,15 @@ static int ad5446_read_raw(struct iio_dev *indio_dev, | |||
163 | long m) | 163 | long m) |
164 | { | 164 | { |
165 | struct ad5446_state *st = iio_priv(indio_dev); | 165 | struct ad5446_state *st = iio_priv(indio_dev); |
166 | unsigned long scale_uv; | ||
167 | 166 | ||
168 | switch (m) { | 167 | switch (m) { |
169 | case IIO_CHAN_INFO_RAW: | 168 | case IIO_CHAN_INFO_RAW: |
170 | *val = st->cached_val; | 169 | *val = st->cached_val; |
171 | return IIO_VAL_INT; | 170 | return IIO_VAL_INT; |
172 | case IIO_CHAN_INFO_SCALE: | 171 | case IIO_CHAN_INFO_SCALE: |
173 | scale_uv = (st->vref_mv * 1000) >> chan->scan_type.realbits; | 172 | *val = st->vref_mv; |
174 | *val = scale_uv / 1000; | 173 | *val2 = chan->scan_type.realbits; |
175 | *val2 = (scale_uv % 1000) * 1000; | 174 | return IIO_VAL_FRACTIONAL_LOG2; |
176 | return IIO_VAL_INT_PLUS_MICRO; | ||
177 | |||
178 | } | 175 | } |
179 | return -EINVAL; | 176 | return -EINVAL; |
180 | } | 177 | } |