iio: mlx90614: Drop MLX90614_CONST_EMISSIVITY_RESOLUTION
authorMarek Vasut <marex@denx.de>
Wed, 10 May 2023 10:22:49 +0000 (12:22 +0200)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Tue, 23 May 2023 20:20:16 +0000 (21:20 +0100)
The MLX90614_CONST_EMISSIVITY_RESOLUTION can be calculated from
MLX90614_CONST_RAW_EMISSIVITY_MAX, perform the calculation inline
and drio the MLX90614_CONST_EMISSIVITY_RESOLUTION.

Signed-off-by: Marek Vasut <marex@denx.de>
Acked-by: Crt Mori <cmo@melexis.com>
Link: https://lore.kernel.org/r/20230510102251.10118-4-marex@denx.de
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/temperature/mlx90614.c

index 840621f454ab61ec93d029619823c49e6f188a54..4f4cefc848c494645000f9d4796825b025b45db7 100644 (file)
@@ -63,7 +63,6 @@
 #define MLX90614_CONST_OFFSET_REM 500000 /* remainder of offset (273.15*50) */
 #define MLX90614_CONST_SCALE 20 /* Scale in milliKelvin (0.02 * 1000) */
 #define MLX90614_CONST_RAW_EMISSIVITY_MAX 65535 /* max value for emissivity */
-#define MLX90614_CONST_EMISSIVITY_RESOLUTION 15259 /* 1/65535 ~ 0.000015259 */
 #define MLX90614_CONST_FIR 0x7 /* Fixed value for FIR part of low pass filter */
 
 struct mlx90614_data {
@@ -283,7 +282,8 @@ static int mlx90614_read_raw(struct iio_dev *indio_dev,
                        *val2 = 0;
                } else {
                        *val = 0;
-                       *val2 = ret * MLX90614_CONST_EMISSIVITY_RESOLUTION;
+                       *val2 = ret * NSEC_PER_SEC /
+                               MLX90614_CONST_RAW_EMISSIVITY_MAX;
                }
                return IIO_VAL_INT_PLUS_NANO;
        case IIO_CHAN_INFO_LOW_PASS_FILTER_3DB_FREQUENCY: /* IIR setting with
@@ -321,7 +321,7 @@ static int mlx90614_write_raw(struct iio_dev *indio_dev,
                if (val < 0 || val2 < 0 || val > 1 || (val == 1 && val2 != 0))
                        return -EINVAL;
                val = val * MLX90614_CONST_RAW_EMISSIVITY_MAX +
-                       val2 / MLX90614_CONST_EMISSIVITY_RESOLUTION;
+                     val2 * MLX90614_CONST_RAW_EMISSIVITY_MAX / NSEC_PER_SEC;
 
                ret = mlx90614_power_get(data, false);
                if (ret < 0)