iio: temperature: iqs620at-temp: Add support for V3 silicon
authorJeff LaBundy <jeff@labundy.com>
Sun, 23 Jan 2022 19:01:06 +0000 (13:01 -0600)
committerLee Jones <lee.jones@linaro.org>
Mon, 14 Feb 2022 13:07:33 +0000 (13:07 +0000)
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>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
drivers/iio/temperature/iqs620at-temp.c

index fe126e1..e2f878d 100644 (file)
@@ -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: