|
@@ -281,18 +281,11 @@ static inline unsigned int ad5421_get_offset(struct ad5421_state *st)
|
|
|
return (min * (1 << 16)) / (max - min);
|
|
|
}
|
|
|
|
|
|
-static inline unsigned int ad5421_get_scale(struct ad5421_state *st)
|
|
|
-{
|
|
|
- unsigned int min, max;
|
|
|
-
|
|
|
- ad5421_get_current_min_max(st, &min, &max);
|
|
|
- return ((max - min) * 1000) / (1 << 16);
|
|
|
-}
|
|
|
-
|
|
|
static int ad5421_read_raw(struct iio_dev *indio_dev,
|
|
|
struct iio_chan_spec const *chan, int *val, int *val2, long m)
|
|
|
{
|
|
|
struct ad5421_state *st = iio_priv(indio_dev);
|
|
|
+ unsigned int min, max;
|
|
|
int ret;
|
|
|
|
|
|
if (chan->type != IIO_CURRENT)
|
|
@@ -306,9 +299,10 @@ static int ad5421_read_raw(struct iio_dev *indio_dev,
|
|
|
*val = ret;
|
|
|
return IIO_VAL_INT;
|
|
|
case IIO_CHAN_INFO_SCALE:
|
|
|
- *val = 0;
|
|
|
- *val2 = ad5421_get_scale(st);
|
|
|
- return IIO_VAL_INT_PLUS_MICRO;
|
|
|
+ ad5421_get_current_min_max(st, &min, &max);
|
|
|
+ *val = max - min;
|
|
|
+ *val2 = (1 << 16) * 1000;
|
|
|
+ return IIO_VAL_FRACTIONAL;
|
|
|
case IIO_CHAN_INFO_OFFSET:
|
|
|
*val = ad5421_get_offset(st);
|
|
|
return IIO_VAL_INT;
|