Commit 8a0377bf authored by Marek Vasut's avatar Marek Vasut Committed by Jonathan Cameron

iio: mlx90614: Drop MLX90614_CONST_EMISSIVITY_RESOLUTION

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: default avatarMarek Vasut <marex@denx.de>
Acked-by: default avatarCrt Mori <cmo@melexis.com>
Link: https://lore.kernel.org/r/20230510102251.10118-4-marex@denx.deSigned-off-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
parent 02214837
...@@ -63,7 +63,6 @@ ...@@ -63,7 +63,6 @@
#define MLX90614_CONST_OFFSET_REM 500000 /* remainder of offset (273.15*50) */ #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_SCALE 20 /* Scale in milliKelvin (0.02 * 1000) */
#define MLX90614_CONST_RAW_EMISSIVITY_MAX 65535 /* max value for emissivity */ #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 */ #define MLX90614_CONST_FIR 0x7 /* Fixed value for FIR part of low pass filter */
struct mlx90614_data { struct mlx90614_data {
...@@ -283,7 +282,8 @@ static int mlx90614_read_raw(struct iio_dev *indio_dev, ...@@ -283,7 +282,8 @@ static int mlx90614_read_raw(struct iio_dev *indio_dev,
*val2 = 0; *val2 = 0;
} else { } else {
*val = 0; *val = 0;
*val2 = ret * MLX90614_CONST_EMISSIVITY_RESOLUTION; *val2 = ret * NSEC_PER_SEC /
MLX90614_CONST_RAW_EMISSIVITY_MAX;
} }
return IIO_VAL_INT_PLUS_NANO; return IIO_VAL_INT_PLUS_NANO;
case IIO_CHAN_INFO_LOW_PASS_FILTER_3DB_FREQUENCY: /* IIR setting with 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, ...@@ -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)) if (val < 0 || val2 < 0 || val > 1 || (val == 1 && val2 != 0))
return -EINVAL; return -EINVAL;
val = val * MLX90614_CONST_RAW_EMISSIVITY_MAX + 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); ret = mlx90614_power_get(data, false);
if (ret < 0) if (ret < 0)
......
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