Commit d3e6ed84 authored by David Veenstra's avatar David Veenstra Committed by Jonathan Cameron

staging: iio: ad2s1200: Add scaling factor for angular velocity channel

The sysfs iio ABI states radians per second is expected as the unit for
angular velocity, but the 12-bit angular velocity register has
revolution per seconds as its unit. So a scaling factor of approximately
2 * Pi is added to the angular velocity channel.
Signed-off-by: default avatarDavid Veenstra <davidjulianveenstra@gmail.com>
Signed-off-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
parent 2363c010
...@@ -55,6 +55,19 @@ static int ad2s1200_read_raw(struct iio_dev *indio_dev, ...@@ -55,6 +55,19 @@ static int ad2s1200_read_raw(struct iio_dev *indio_dev,
struct ad2s1200_state *st = iio_priv(indio_dev); struct ad2s1200_state *st = iio_priv(indio_dev);
int ret; int ret;
switch (m) {
case IIO_CHAN_INFO_SCALE:
switch (chan->type) {
case IIO_ANGL_VEL:
/* 2 * Pi ~= 6.283185 */
*val = 6;
*val2 = 283185;
return IIO_VAL_INT_PLUS_MICRO;
default:
return -EINVAL;
}
break;
case IIO_CHAN_INFO_RAW:
mutex_lock(&st->lock); mutex_lock(&st->lock);
gpiod_set_value(st->sample, 0); gpiod_set_value(st->sample, 0);
...@@ -86,6 +99,11 @@ static int ad2s1200_read_raw(struct iio_dev *indio_dev, ...@@ -86,6 +99,11 @@ static int ad2s1200_read_raw(struct iio_dev *indio_dev,
mutex_unlock(&st->lock); mutex_unlock(&st->lock);
return IIO_VAL_INT; return IIO_VAL_INT;
default:
break;
}
return -EINVAL;
} }
static const struct iio_chan_spec ad2s1200_channels[] = { static const struct iio_chan_spec ad2s1200_channels[] = {
...@@ -99,6 +117,7 @@ static const struct iio_chan_spec ad2s1200_channels[] = { ...@@ -99,6 +117,7 @@ static const struct iio_chan_spec ad2s1200_channels[] = {
.indexed = 1, .indexed = 1,
.channel = 0, .channel = 0,
.info_mask_separate = BIT(IIO_CHAN_INFO_RAW), .info_mask_separate = BIT(IIO_CHAN_INFO_RAW),
.info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE),
} }
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment