Message ID | 20230510102251.10118-4-marex@denx.de (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
Series | [v3,1/6] dt-bindings: iio: temperature: melexis,mlx90614: Document MLX90615 support | expand |
Acked-by: Crt Mori <cmo@melexis.com> On Wed, 10 May 2023 at 12:23, Marek Vasut <marex@denx.de> wrote: > > 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> > --- > Cc: Crt Mori <cmo@melexis.com> > Cc: Jonathan Cameron <jic23@kernel.org> > Cc: Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org> > Cc: Lars-Peter Clausen <lars@metafoo.de> > Cc: Marek Vasut <marex@denx.de> > Cc: Peter Meerwald <pmeerw@pmeerw.net> > Cc: Rob Herring <robh+dt@kernel.org> > Cc: devicetree@vger.kernel.org > Cc: linux-iio@vger.kernel.org > --- > V3: New patch > --- > drivers/iio/temperature/mlx90614.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/drivers/iio/temperature/mlx90614.c b/drivers/iio/temperature/mlx90614.c > index b0f69a7b05abc..ecd27fe0c8666 100644 > --- a/drivers/iio/temperature/mlx90614.c > +++ b/drivers/iio/temperature/mlx90614.c > @@ -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) > -- > 2.39.2 >
diff --git a/drivers/iio/temperature/mlx90614.c b/drivers/iio/temperature/mlx90614.c index b0f69a7b05abc..ecd27fe0c8666 100644 --- a/drivers/iio/temperature/mlx90614.c +++ b/drivers/iio/temperature/mlx90614.c @@ -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)
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> --- Cc: Crt Mori <cmo@melexis.com> Cc: Jonathan Cameron <jic23@kernel.org> Cc: Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org> Cc: Lars-Peter Clausen <lars@metafoo.de> Cc: Marek Vasut <marex@denx.de> Cc: Peter Meerwald <pmeerw@pmeerw.net> Cc: Rob Herring <robh+dt@kernel.org> Cc: devicetree@vger.kernel.org Cc: linux-iio@vger.kernel.org --- V3: New patch --- drivers/iio/temperature/mlx90614.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)