diff options
author | Lorenzo Bianconi <lorenzo.bianconi83@gmail.com> | 2016-10-25 23:07:38 +0200 |
---|---|---|
committer | Jonathan Cameron <jic23@kernel.org> | 2016-10-30 16:46:46 +0000 |
commit | d304286abbbe7ed6228a553a56ba054e900907eb (patch) | |
tree | 90abbdb90e151dd4b13e45c52b5aa1007e0ad6b1 /drivers/iio/accel | |
parent | 34eee70a7b82b09dbda4cb453e0e21d460dae226 (diff) | |
download | linux-d304286abbbe7ed6228a553a56ba054e900907eb.tar.gz linux-d304286abbbe7ed6228a553a56ba054e900907eb.tar.bz2 linux-d304286abbbe7ed6228a553a56ba054e900907eb.zip |
iio: st_sensors: fix scale configuration for h3lis331dl
fix scale configuration/parsing for h3lis331dl accel driver
when sensitivity is higher than 1(m/s^2)/digit
Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi@st.com>
Fixes: 1e52fefc9b0c ("iio: accel: Add support for the h3lis331dl accelerometer")
Cc: <Stable@vger.kernel.org>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Diffstat (limited to 'drivers/iio/accel')
-rw-r--r-- | drivers/iio/accel/st_accel_core.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/drivers/iio/accel/st_accel_core.c b/drivers/iio/accel/st_accel_core.c index da3fb069ec5c..ce69048c88e9 100644 --- a/drivers/iio/accel/st_accel_core.c +++ b/drivers/iio/accel/st_accel_core.c @@ -743,8 +743,8 @@ static int st_accel_read_raw(struct iio_dev *indio_dev, return IIO_VAL_INT; case IIO_CHAN_INFO_SCALE: - *val = 0; - *val2 = adata->current_fullscale->gain; + *val = adata->current_fullscale->gain / 1000000; + *val2 = adata->current_fullscale->gain % 1000000; return IIO_VAL_INT_PLUS_MICRO; case IIO_CHAN_INFO_SAMP_FREQ: *val = adata->odr; @@ -763,9 +763,13 @@ static int st_accel_write_raw(struct iio_dev *indio_dev, int err; switch (mask) { - case IIO_CHAN_INFO_SCALE: - err = st_sensors_set_fullscale_by_gain(indio_dev, val2); + case IIO_CHAN_INFO_SCALE: { + int gain; + + gain = val * 1000000 + val2; + err = st_sensors_set_fullscale_by_gain(indio_dev, gain); break; + } case IIO_CHAN_INFO_SAMP_FREQ: if (val2) return -EINVAL; |