diff mbox series

[2/2] iio: temperature: iqs620at-temp: Add support for V3 silicon

Message ID 20220123190106.80591-3-jeff@labundy.com (mailing list archive)
State Handled Elsewhere
Headers show
Series Add support for Azoteq IQS620A(T) V3 | expand

Commit Message

Jeff LaBundy Jan. 23, 2022, 7:01 p.m. UTC
The vendor introduced an updated revision of IQS620A(T) silicon
which is backwards-compatible with previous revisions, the only
exception being the offset used to derive temperature.

Enable this new revision by returning the appropriate offset as
a function of the hardware number provided by the parent MFD.

Signed-off-by: Jeff LaBundy <jeff@labundy.com>
---
 drivers/iio/temperature/iqs620at-temp.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Comments

Jonathan Cameron Jan. 24, 2022, 5:34 p.m. UTC | #1
On Sun, 23 Jan 2022 13:01:06 -0600
Jeff LaBundy <jeff@labundy.com> wrote:

> The vendor introduced an updated revision of IQS620A(T) silicon
> which is backwards-compatible with previous revisions, the only
> exception being the offset used to derive temperature.
> 
> Enable this new revision by returning the appropriate offset as
> a function of the hardware number provided by the parent MFD.
> 
> Signed-off-by: Jeff LaBundy <jeff@labundy.com>
Trivial comment inline but I'm fine with this either way.
Assuming it will go through mfd.

Acked-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>

> ---
>  drivers/iio/temperature/iqs620at-temp.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/iio/temperature/iqs620at-temp.c b/drivers/iio/temperature/iqs620at-temp.c
> index fe126e1fb783..e2f878d57af7 100644
> --- a/drivers/iio/temperature/iqs620at-temp.c
> +++ b/drivers/iio/temperature/iqs620at-temp.c
> @@ -17,6 +17,7 @@
>  
>  #define IQS620_TEMP_SCALE			1000
>  #define IQS620_TEMP_OFFSET			(-100)
> +#define IQS620_TEMP_OFFSET_V3			(-40)
>  
>  static int iqs620_temp_read_raw(struct iio_dev *indio_dev,
>  				struct iio_chan_spec const *chan,
> @@ -41,7 +42,8 @@ static int iqs620_temp_read_raw(struct iio_dev *indio_dev,
>  		return IIO_VAL_INT;
>  
>  	case IIO_CHAN_INFO_OFFSET:
> -		*val = IQS620_TEMP_OFFSET;
> +		*val = iqs62x->hw_num < IQS620_HW_NUM_V3 ? IQS620_TEMP_OFFSET
> +							 : IQS620_TEMP_OFFSET_V3;

Line is a bit long, so maybe it would be better to just use an if / else

		if (iqs6x->hw_num < IQS620_HW_NUM_V3)
			*val = IQS620_TEMP_OFFSET;
		else
			*val = IQS620_TEMP_OFFSET_V3;


>  		return IIO_VAL_INT;
>  
>  	default:
diff mbox series

Patch

diff --git a/drivers/iio/temperature/iqs620at-temp.c b/drivers/iio/temperature/iqs620at-temp.c
index fe126e1fb783..e2f878d57af7 100644
--- a/drivers/iio/temperature/iqs620at-temp.c
+++ b/drivers/iio/temperature/iqs620at-temp.c
@@ -17,6 +17,7 @@ 
 
 #define IQS620_TEMP_SCALE			1000
 #define IQS620_TEMP_OFFSET			(-100)
+#define IQS620_TEMP_OFFSET_V3			(-40)
 
 static int iqs620_temp_read_raw(struct iio_dev *indio_dev,
 				struct iio_chan_spec const *chan,
@@ -41,7 +42,8 @@  static int iqs620_temp_read_raw(struct iio_dev *indio_dev,
 		return IIO_VAL_INT;
 
 	case IIO_CHAN_INFO_OFFSET:
-		*val = IQS620_TEMP_OFFSET;
+		*val = iqs62x->hw_num < IQS620_HW_NUM_V3 ? IQS620_TEMP_OFFSET
+							 : IQS620_TEMP_OFFSET_V3;
 		return IIO_VAL_INT;
 
 	default: