diff options
author | Daniel Baluta <daniel.baluta@intel.com> | 2016-02-03 18:50:37 +0200 |
---|---|---|
committer | Jonathan Cameron <jic23@kernel.org> | 2016-02-06 18:18:11 +0000 |
commit | 1ad1ce9b669095bfe94c32ecd19f2a426837eb93 (patch) | |
tree | 0ddf6fbca5261eb72726a9a90fcac28ab5c965b7 /drivers/iio | |
parent | 478375cedcc0ae5b4cadd29ee5f74c3a5cb5d2ad (diff) | |
download | linux-1ad1ce9b669095bfe94c32ecd19f2a426837eb93.tar.bz2 |
iio: pressure: ms5611: Add IIO_CHAN_INFO_SCALE to mask
This allows data exported via buffer interface to be converted
to standard units in userspace.
Signed-off-by: Daniel Baluta <daniel.baluta@intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Diffstat (limited to 'drivers/iio')
-rw-r--r-- | drivers/iio/pressure/ms5611_core.c | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/drivers/iio/pressure/ms5611_core.c b/drivers/iio/pressure/ms5611_core.c index 2f3d9b4aca4e..6cf0e55380aa 100644 --- a/drivers/iio/pressure/ms5611_core.c +++ b/drivers/iio/pressure/ms5611_core.c @@ -201,6 +201,18 @@ static int ms5611_read_raw(struct iio_dev *indio_dev, default: return -EINVAL; } + case IIO_CHAN_INFO_SCALE: + switch (chan->type) { + case IIO_TEMP: + *val = 10; + return IIO_VAL_INT; + case IIO_PRESSURE: + *val = 0; + *val2 = 1000; + return IIO_VAL_INT_PLUS_MICRO; + default: + return -EINVAL; + } } return -EINVAL; @@ -218,11 +230,13 @@ static struct ms5611_chip_info chip_info_tbl[] = { static const struct iio_chan_spec ms5611_channels[] = { { .type = IIO_PRESSURE, - .info_mask_separate = BIT(IIO_CHAN_INFO_PROCESSED), + .info_mask_separate = BIT(IIO_CHAN_INFO_PROCESSED) | + BIT(IIO_CHAN_INFO_SCALE), }, { .type = IIO_TEMP, - .info_mask_separate = BIT(IIO_CHAN_INFO_PROCESSED), + .info_mask_separate = BIT(IIO_CHAN_INFO_PROCESSED) | + BIT(IIO_CHAN_INFO_SCALE), } }; |