diff options
Diffstat (limited to 'drivers/iio/temperature/tmp117.c')
| -rw-r--r-- | drivers/iio/temperature/tmp117.c | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/drivers/iio/temperature/tmp117.c b/drivers/iio/temperature/tmp117.c index 74cb8d62bef3..2d0e79416434 100644 --- a/drivers/iio/temperature/tmp117.c +++ b/drivers/iio/temperature/tmp117.c @@ -10,16 +10,17 @@ */ #include <linux/array_size.h> +#include <linux/bitops.h> #include <linux/delay.h> +#include <linux/dev_printk.h> #include <linux/err.h> #include <linux/i2c.h> -#include <linux/module.h> -#include <linux/bitops.h> -#include <linux/types.h> -#include <linux/kernel.h> #include <linux/limits.h> +#include <linux/minmax.h> +#include <linux/module.h> #include <linux/property.h> #include <linux/regulator/consumer.h> +#include <linux/types.h> #include <linux/iio/iio.h> @@ -97,15 +98,20 @@ static int tmp117_write_raw(struct iio_dev *indio_dev, struct iio_chan_spec { struct tmp117_data *data = iio_priv(indio_dev); s16 off; + int ret; switch (mask) { case IIO_CHAN_INFO_CALIBBIAS: off = clamp_t(int, val, S16_MIN, S16_MAX); if (off == data->calibbias) return 0; + + ret = i2c_smbus_write_word_swapped(data->client, TMP117_REG_TEMP_OFFSET, off); + if (ret) + return ret; + data->calibbias = off; - return i2c_smbus_write_word_swapped(data->client, - TMP117_REG_TEMP_OFFSET, off); + return 0; default: return -EINVAL; |
