All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jonathan Cameron <jic23@kernel.org>
To: Crt Mori <cmo@melexis.com>
Cc: linux-iio@vger.kernel.org, Andy Shevchenko <andy.shevchenko@gmail.com>
Subject: Re: [PATCH v3] iio: temperature: mlx90632: Interface to change object ambient temperature
Date: Sun, 13 Sep 2020 10:22:15 +0100	[thread overview]
Message-ID: <20200913102215.7c79a0f8@archlinux> (raw)
In-Reply-To: <20200906210231.383976-1-cmo@melexis.com>

On Sun,  6 Sep 2020 23:02:31 +0200
Crt Mori <cmo@melexis.com> wrote:

> Since object temperature might be different than the sensor temperature
> the infrared sensors should provide an interface to inject ambient
> temperature. This was in past done via write to ambient temperature
> interface (in_temp_ambient_raw), but I think most people did not know
> about it. This solution introduces a new iio type of the CALIBAMBIENT
> which is hopefully more descriptive and more explicit about the purpose
> and capabilities of the sensors.
> 
> Signed-off-by: Crt Mori <cmo@melexis.com>
> Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>

Applied to the togreg branch of iio.git and pushed out as testing for
all the normal reasons involving autobuilders etc.

Thanks,

Jonathan

> ---
>  Documentation/ABI/testing/sysfs-bus-iio | 8 ++++++++
>  drivers/iio/industrialio-core.c         | 1 +
>  drivers/iio/temperature/mlx90632.c      | 9 +++++++--
>  include/linux/iio/types.h               | 1 +
>  4 files changed, 17 insertions(+), 2 deletions(-)
> 
> diff --git a/Documentation/ABI/testing/sysfs-bus-iio b/Documentation/ABI/testing/sysfs-bus-iio
> index 5c62bfb0f3f5..084436a315e2 100644
> --- a/Documentation/ABI/testing/sysfs-bus-iio
> +++ b/Documentation/ABI/testing/sysfs-bus-iio
> @@ -1740,3 +1740,11 @@ KernelVersion:	5.5
>  Contact:	linux-iio@vger.kernel.org
>  Description:
>  		One of the following thermocouple types: B, E, J, K, N, R, S, T.
> +
> +What:		/sys/bus/iio/devices/iio:deviceX/in_temp_object_calibambient
> +What:		/sys/bus/iio/devices/iio:deviceX/in_tempX_object_calibambient
> +KernelVersion:	5.9
> +Contact:	linux-iio@vger.kernel.org
> +Description:
> +		Calibrated ambient temperature for object temperature
> +		calculation in milli degrees Celsius.
> diff --git a/drivers/iio/industrialio-core.c b/drivers/iio/industrialio-core.c
> index 606d5e61c575..941011502f4d 100644
> --- a/drivers/iio/industrialio-core.c
> +++ b/drivers/iio/industrialio-core.c
> @@ -165,6 +165,7 @@ static const char * const iio_chan_info_postfix[] = {
>  	[IIO_CHAN_INFO_CALIBEMISSIVITY] = "calibemissivity",
>  	[IIO_CHAN_INFO_OVERSAMPLING_RATIO] = "oversampling_ratio",
>  	[IIO_CHAN_INFO_THERMOCOUPLE_TYPE] = "thermocouple_type",
> +	[IIO_CHAN_INFO_CALIBAMBIENT] = "calibambient",
>  };
>  
>  #if defined(CONFIG_DEBUG_FS)
> diff --git a/drivers/iio/temperature/mlx90632.c b/drivers/iio/temperature/mlx90632.c
> index 94bca2b2866a..048cafa04455 100644
> --- a/drivers/iio/temperature/mlx90632.c
> +++ b/drivers/iio/temperature/mlx90632.c
> @@ -761,7 +761,9 @@ static int mlx90632_read_raw(struct iio_dev *indio_dev,
>  			*val2 = data->emissivity * 1000;
>  		}
>  		return IIO_VAL_INT_PLUS_MICRO;
> -
> +	case IIO_CHAN_INFO_CALIBAMBIENT:
> +		*val = data->object_ambient_temperature;
> +		return IIO_VAL_INT;
>  	default:
>  		return -EINVAL;
>  	}
> @@ -781,6 +783,9 @@ static int mlx90632_write_raw(struct iio_dev *indio_dev,
>  			return -EINVAL;
>  		data->emissivity = val * 1000 + val2 / 1000;
>  		return 0;
> +	case IIO_CHAN_INFO_CALIBAMBIENT:
> +		data->object_ambient_temperature = val;
> +		return 0;
>  	default:
>  		return -EINVAL;
>  	}
> @@ -798,7 +803,7 @@ static const struct iio_chan_spec mlx90632_channels[] = {
>  		.modified = 1,
>  		.channel2 = IIO_MOD_TEMP_OBJECT,
>  		.info_mask_separate = BIT(IIO_CHAN_INFO_PROCESSED) |
> -			BIT(IIO_CHAN_INFO_CALIBEMISSIVITY),
> +			BIT(IIO_CHAN_INFO_CALIBEMISSIVITY) | BIT(IIO_CHAN_INFO_CALIBAMBIENT),
>  	},
>  };
>  
> diff --git a/include/linux/iio/types.h b/include/linux/iio/types.h
> index e6fd3645963c..1e3ed6f55bca 100644
> --- a/include/linux/iio/types.h
> +++ b/include/linux/iio/types.h
> @@ -59,6 +59,7 @@ enum iio_chan_info_enum {
>  	IIO_CHAN_INFO_CALIBEMISSIVITY,
>  	IIO_CHAN_INFO_OVERSAMPLING_RATIO,
>  	IIO_CHAN_INFO_THERMOCOUPLE_TYPE,
> +	IIO_CHAN_INFO_CALIBAMBIENT,
>  };
>  
>  #endif /* _IIO_TYPES_H_ */


      reply	other threads:[~2020-09-13  9:22 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-06 21:02 [PATCH v3] iio: temperature: mlx90632: Interface to change object ambient temperature Crt Mori
2020-09-13  9:22 ` Jonathan Cameron [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200913102215.7c79a0f8@archlinux \
    --to=jic23@kernel.org \
    --cc=andy.shevchenko@gmail.com \
    --cc=cmo@melexis.com \
    --cc=linux-iio@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.