drivers: thermal: tsens: Merge tsens-8974 into tsens-v0_1
authorAmit Kucheria <amit.kucheria@linaro.org>
Wed, 20 Mar 2019 13:17:49 +0000 (18:47 +0530)
committerEduardo Valentin <edubezval@gmail.com>
Tue, 14 May 2019 03:35:37 +0000 (20:35 -0700)
8974 and 8916 have the same version of the TSENS IP. Merge the files to
allow for better code reuse.

Signed-off-by: Amit Kucheria <amit.kucheria@linaro.org>
Signed-off-by: Eduardo Valentin <edubezval@gmail.com>
drivers/thermal/qcom/Makefile
drivers/thermal/qcom/tsens-8974.c [deleted file]
drivers/thermal/qcom/tsens-v0_1.c
drivers/thermal/qcom/tsens.h

index 1f2fafd..7fa3cad 100644 (file)
@@ -1,3 +1,3 @@
 obj-$(CONFIG_QCOM_TSENS)       += qcom_tsens.o
-qcom_tsens-y                   += tsens.o tsens-common.o tsens-v0_1.o tsens-8974.o tsens-8960.o tsens-v2.o
+qcom_tsens-y                   += tsens.o tsens-common.o tsens-v0_1.o tsens-8960.o tsens-v2.o
 obj-$(CONFIG_QCOM_SPMI_TEMP_ALARM)     += qcom-spmi-temp-alarm.o
diff --git a/drivers/thermal/qcom/tsens-8974.c b/drivers/thermal/qcom/tsens-8974.c
deleted file mode 100644 (file)
index 303157f..0000000
+++ /dev/null
@@ -1,236 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/*
- * Copyright (c) 2015, The Linux Foundation. All rights reserved.
- */
-
-#include <linux/platform_device.h>
-#include "tsens.h"
-
-/* eeprom layout data for 8974 */
-#define BASE1_MASK             0xff
-#define S0_P1_MASK             0x3f00
-#define S1_P1_MASK             0xfc000
-#define S2_P1_MASK             0x3f00000
-#define S3_P1_MASK             0xfc000000
-#define S4_P1_MASK             0x3f
-#define S5_P1_MASK             0xfc0
-#define S6_P1_MASK             0x3f000
-#define S7_P1_MASK             0xfc0000
-#define S8_P1_MASK             0x3f000000
-#define S8_P1_MASK_BKP         0x3f
-#define S9_P1_MASK             0x3f
-#define S9_P1_MASK_BKP         0xfc0
-#define S10_P1_MASK            0xfc0
-#define S10_P1_MASK_BKP                0x3f000
-#define CAL_SEL_0_1            0xc0000000
-#define CAL_SEL_2              0x40000000
-#define CAL_SEL_SHIFT          30
-#define CAL_SEL_SHIFT_2                28
-
-#define S0_P1_SHIFT            8
-#define S1_P1_SHIFT            14
-#define S2_P1_SHIFT            20
-#define S3_P1_SHIFT            26
-#define S5_P1_SHIFT            6
-#define S6_P1_SHIFT            12
-#define S7_P1_SHIFT            18
-#define S8_P1_SHIFT            24
-#define S9_P1_BKP_SHIFT                6
-#define S10_P1_SHIFT           6
-#define S10_P1_BKP_SHIFT       12
-
-#define BASE2_SHIFT            12
-#define BASE2_BKP_SHIFT                18
-#define S0_P2_SHIFT            20
-#define S0_P2_BKP_SHIFT                26
-#define S1_P2_SHIFT            26
-#define S2_P2_BKP_SHIFT                6
-#define S3_P2_SHIFT            6
-#define S3_P2_BKP_SHIFT                12
-#define S4_P2_SHIFT            12
-#define S4_P2_BKP_SHIFT                18
-#define S5_P2_SHIFT            18
-#define S5_P2_BKP_SHIFT                24
-#define S6_P2_SHIFT            24
-#define S7_P2_BKP_SHIFT                6
-#define S8_P2_SHIFT            6
-#define S8_P2_BKP_SHIFT                12
-#define S9_P2_SHIFT            12
-#define S9_P2_BKP_SHIFT                18
-#define S10_P2_SHIFT           18
-#define S10_P2_BKP_SHIFT       24
-
-#define BASE2_MASK             0xff000
-#define BASE2_BKP_MASK         0xfc0000
-#define S0_P2_MASK             0x3f00000
-#define S0_P2_BKP_MASK         0xfc000000
-#define S1_P2_MASK             0xfc000000
-#define S1_P2_BKP_MASK         0x3f
-#define S2_P2_MASK             0x3f
-#define S2_P2_BKP_MASK         0xfc0
-#define S3_P2_MASK             0xfc0
-#define S3_P2_BKP_MASK         0x3f000
-#define S4_P2_MASK             0x3f000
-#define S4_P2_BKP_MASK         0xfc0000
-#define S5_P2_MASK             0xfc0000
-#define S5_P2_BKP_MASK         0x3f000000
-#define S6_P2_MASK             0x3f000000
-#define S6_P2_BKP_MASK         0x3f
-#define S7_P2_MASK             0x3f
-#define S7_P2_BKP_MASK         0xfc0
-#define S8_P2_MASK             0xfc0
-#define S8_P2_BKP_MASK         0x3f000
-#define S9_P2_MASK             0x3f000
-#define S9_P2_BKP_MASK         0xfc0000
-#define S10_P2_MASK            0xfc0000
-#define S10_P2_BKP_MASK                0x3f000000
-
-#define BKP_SEL                        0x3
-#define BKP_REDUN_SEL          0xe0000000
-#define BKP_REDUN_SHIFT                29
-
-#define BIT_APPEND             0x3
-
-static int calibrate_8974(struct tsens_priv *priv)
-{
-       int base1 = 0, base2 = 0, i;
-       u32 p1[11], p2[11];
-       int mode = 0;
-       u32 *calib, *bkp;
-       u32 calib_redun_sel;
-
-       calib = (u32 *)qfprom_read(priv->dev, "calib");
-       if (IS_ERR(calib))
-               return PTR_ERR(calib);
-
-       bkp = (u32 *)qfprom_read(priv->dev, "calib_backup");
-       if (IS_ERR(bkp))
-               return PTR_ERR(bkp);
-
-       calib_redun_sel =  bkp[1] & BKP_REDUN_SEL;
-       calib_redun_sel >>= BKP_REDUN_SHIFT;
-
-       if (calib_redun_sel == BKP_SEL) {
-               mode = (calib[4] & CAL_SEL_0_1) >> CAL_SEL_SHIFT;
-               mode |= (calib[5] & CAL_SEL_2) >> CAL_SEL_SHIFT_2;
-
-               switch (mode) {
-               case TWO_PT_CALIB:
-                       base2 = (bkp[2] & BASE2_BKP_MASK) >> BASE2_BKP_SHIFT;
-                       p2[0] = (bkp[2] & S0_P2_BKP_MASK) >> S0_P2_BKP_SHIFT;
-                       p2[1] = (bkp[3] & S1_P2_BKP_MASK);
-                       p2[2] = (bkp[3] & S2_P2_BKP_MASK) >> S2_P2_BKP_SHIFT;
-                       p2[3] = (bkp[3] & S3_P2_BKP_MASK) >> S3_P2_BKP_SHIFT;
-                       p2[4] = (bkp[3] & S4_P2_BKP_MASK) >> S4_P2_BKP_SHIFT;
-                       p2[5] = (calib[4] & S5_P2_BKP_MASK) >> S5_P2_BKP_SHIFT;
-                       p2[6] = (calib[5] & S6_P2_BKP_MASK);
-                       p2[7] = (calib[5] & S7_P2_BKP_MASK) >> S7_P2_BKP_SHIFT;
-                       p2[8] = (calib[5] & S8_P2_BKP_MASK) >> S8_P2_BKP_SHIFT;
-                       p2[9] = (calib[5] & S9_P2_BKP_MASK) >> S9_P2_BKP_SHIFT;
-                       p2[10] = (calib[5] & S10_P2_BKP_MASK) >> S10_P2_BKP_SHIFT;
-                       /* Fall through */
-               case ONE_PT_CALIB:
-               case ONE_PT_CALIB2:
-                       base1 = bkp[0] & BASE1_MASK;
-                       p1[0] = (bkp[0] & S0_P1_MASK) >> S0_P1_SHIFT;
-                       p1[1] = (bkp[0] & S1_P1_MASK) >> S1_P1_SHIFT;
-                       p1[2] = (bkp[0] & S2_P1_MASK) >> S2_P1_SHIFT;
-                       p1[3] = (bkp[0] & S3_P1_MASK) >> S3_P1_SHIFT;
-                       p1[4] = (bkp[1] & S4_P1_MASK);
-                       p1[5] = (bkp[1] & S5_P1_MASK) >> S5_P1_SHIFT;
-                       p1[6] = (bkp[1] & S6_P1_MASK) >> S6_P1_SHIFT;
-                       p1[7] = (bkp[1] & S7_P1_MASK) >> S7_P1_SHIFT;
-                       p1[8] = (bkp[2] & S8_P1_MASK_BKP) >> S8_P1_SHIFT;
-                       p1[9] = (bkp[2] & S9_P1_MASK_BKP) >> S9_P1_BKP_SHIFT;
-                       p1[10] = (bkp[2] & S10_P1_MASK_BKP) >> S10_P1_BKP_SHIFT;
-                       break;
-               }
-       } else {
-               mode = (calib[1] & CAL_SEL_0_1) >> CAL_SEL_SHIFT;
-               mode |= (calib[3] & CAL_SEL_2) >> CAL_SEL_SHIFT_2;
-
-               switch (mode) {
-               case TWO_PT_CALIB:
-                       base2 = (calib[2] & BASE2_MASK) >> BASE2_SHIFT;
-                       p2[0] = (calib[2] & S0_P2_MASK) >> S0_P2_SHIFT;
-                       p2[1] = (calib[2] & S1_P2_MASK) >> S1_P2_SHIFT;
-                       p2[2] = (calib[3] & S2_P2_MASK);
-                       p2[3] = (calib[3] & S3_P2_MASK) >> S3_P2_SHIFT;
-                       p2[4] = (calib[3] & S4_P2_MASK) >> S4_P2_SHIFT;
-                       p2[5] = (calib[3] & S5_P2_MASK) >> S5_P2_SHIFT;
-                       p2[6] = (calib[3] & S6_P2_MASK) >> S6_P2_SHIFT;
-                       p2[7] = (calib[4] & S7_P2_MASK);
-                       p2[8] = (calib[4] & S8_P2_MASK) >> S8_P2_SHIFT;
-                       p2[9] = (calib[4] & S9_P2_MASK) >> S9_P2_SHIFT;
-                       p2[10] = (calib[4] & S10_P2_MASK) >> S10_P2_SHIFT;
-                       /* Fall through */
-               case ONE_PT_CALIB:
-               case ONE_PT_CALIB2:
-                       base1 = calib[0] & BASE1_MASK;
-                       p1[0] = (calib[0] & S0_P1_MASK) >> S0_P1_SHIFT;
-                       p1[1] = (calib[0] & S1_P1_MASK) >> S1_P1_SHIFT;
-                       p1[2] = (calib[0] & S2_P1_MASK) >> S2_P1_SHIFT;
-                       p1[3] = (calib[0] & S3_P1_MASK) >> S3_P1_SHIFT;
-                       p1[4] = (calib[1] & S4_P1_MASK);
-                       p1[5] = (calib[1] & S5_P1_MASK) >> S5_P1_SHIFT;
-                       p1[6] = (calib[1] & S6_P1_MASK) >> S6_P1_SHIFT;
-                       p1[7] = (calib[1] & S7_P1_MASK) >> S7_P1_SHIFT;
-                       p1[8] = (calib[1] & S8_P1_MASK) >> S8_P1_SHIFT;
-                       p1[9] = (calib[2] & S9_P1_MASK);
-                       p1[10] = (calib[2] & S10_P1_MASK) >> S10_P1_SHIFT;
-                       break;
-               }
-       }
-
-       switch (mode) {
-       case ONE_PT_CALIB:
-               for (i = 0; i < priv->num_sensors; i++)
-                       p1[i] += (base1 << 2) | BIT_APPEND;
-               break;
-       case TWO_PT_CALIB:
-               for (i = 0; i < priv->num_sensors; i++) {
-                       p2[i] += base2;
-                       p2[i] <<= 2;
-                       p2[i] |= BIT_APPEND;
-               }
-               /* Fall through */
-       case ONE_PT_CALIB2:
-               for (i = 0; i < priv->num_sensors; i++) {
-                       p1[i] += base1;
-                       p1[i] <<= 2;
-                       p1[i] |= BIT_APPEND;
-               }
-               break;
-       default:
-               for (i = 0; i < priv->num_sensors; i++)
-                       p2[i] = 780;
-               p1[0] = 502;
-               p1[1] = 509;
-               p1[2] = 503;
-               p1[3] = 509;
-               p1[4] = 505;
-               p1[5] = 509;
-               p1[6] = 507;
-               p1[7] = 510;
-               p1[8] = 508;
-               p1[9] = 509;
-               p1[10] = 508;
-               break;
-       }
-
-       compute_intercept_slope(priv, p1, p2, mode);
-
-       return 0;
-}
-
-static const struct tsens_ops ops_8974 = {
-       .init           = init_common,
-       .calibrate      = calibrate_8974,
-       .get_temp       = get_temp_common,
-};
-
-const struct tsens_plat_data data_8974 = {
-       .num_sensors    = 11,
-       .ops            = &ops_8974,
-       .reg_offsets    = { [SROT_CTRL_OFFSET] = 0x0 },
-};
index 3090959..a6e26be 100644 (file)
 #define MSM8916_CAL_SEL_MASK   0xe0000000
 #define MSM8916_CAL_SEL_SHIFT  29
 
+/* eeprom layout data for 8974 */
+#define BASE1_MASK             0xff
+#define S0_P1_MASK             0x3f00
+#define S1_P1_MASK             0xfc000
+#define S2_P1_MASK             0x3f00000
+#define S3_P1_MASK             0xfc000000
+#define S4_P1_MASK             0x3f
+#define S5_P1_MASK             0xfc0
+#define S6_P1_MASK             0x3f000
+#define S7_P1_MASK             0xfc0000
+#define S8_P1_MASK             0x3f000000
+#define S8_P1_MASK_BKP         0x3f
+#define S9_P1_MASK             0x3f
+#define S9_P1_MASK_BKP         0xfc0
+#define S10_P1_MASK            0xfc0
+#define S10_P1_MASK_BKP                0x3f000
+#define CAL_SEL_0_1            0xc0000000
+#define CAL_SEL_2              0x40000000
+#define CAL_SEL_SHIFT          30
+#define CAL_SEL_SHIFT_2                28
+
+#define S0_P1_SHIFT            8
+#define S1_P1_SHIFT            14
+#define S2_P1_SHIFT            20
+#define S3_P1_SHIFT            26
+#define S5_P1_SHIFT            6
+#define S6_P1_SHIFT            12
+#define S7_P1_SHIFT            18
+#define S8_P1_SHIFT            24
+#define S9_P1_BKP_SHIFT                6
+#define S10_P1_SHIFT           6
+#define S10_P1_BKP_SHIFT       12
+
+#define BASE2_SHIFT            12
+#define BASE2_BKP_SHIFT                18
+#define S0_P2_SHIFT            20
+#define S0_P2_BKP_SHIFT                26
+#define S1_P2_SHIFT            26
+#define S2_P2_BKP_SHIFT                6
+#define S3_P2_SHIFT            6
+#define S3_P2_BKP_SHIFT                12
+#define S4_P2_SHIFT            12
+#define S4_P2_BKP_SHIFT                18
+#define S5_P2_SHIFT            18
+#define S5_P2_BKP_SHIFT                24
+#define S6_P2_SHIFT            24
+#define S7_P2_BKP_SHIFT                6
+#define S8_P2_SHIFT            6
+#define S8_P2_BKP_SHIFT                12
+#define S9_P2_SHIFT            12
+#define S9_P2_BKP_SHIFT                18
+#define S10_P2_SHIFT           18
+#define S10_P2_BKP_SHIFT       24
+
+#define BASE2_MASK             0xff000
+#define BASE2_BKP_MASK         0xfc0000
+#define S0_P2_MASK             0x3f00000
+#define S0_P2_BKP_MASK         0xfc000000
+#define S1_P2_MASK             0xfc000000
+#define S1_P2_BKP_MASK         0x3f
+#define S2_P2_MASK             0x3f
+#define S2_P2_BKP_MASK         0xfc0
+#define S3_P2_MASK             0xfc0
+#define S3_P2_BKP_MASK         0x3f000
+#define S4_P2_MASK             0x3f000
+#define S4_P2_BKP_MASK         0xfc0000
+#define S5_P2_MASK             0xfc0000
+#define S5_P2_BKP_MASK         0x3f000000
+#define S6_P2_MASK             0x3f000000
+#define S6_P2_BKP_MASK         0x3f
+#define S7_P2_MASK             0x3f
+#define S7_P2_BKP_MASK         0xfc0
+#define S8_P2_MASK             0xfc0
+#define S8_P2_BKP_MASK         0x3f000
+#define S9_P2_MASK             0x3f000
+#define S9_P2_BKP_MASK         0xfc0000
+#define S10_P2_MASK            0xfc0000
+#define S10_P2_BKP_MASK                0x3f000000
+
+#define BKP_SEL                        0x3
+#define BKP_REDUN_SEL          0xe0000000
+#define BKP_REDUN_SHIFT                29
+
+#define BIT_APPEND             0x3
+
 static int calibrate_8916(struct tsens_priv *priv)
 {
        int base0 = 0, base1 = 0, i;
@@ -91,6 +176,138 @@ static int calibrate_8916(struct tsens_priv *priv)
        return 0;
 }
 
+static int calibrate_8974(struct tsens_priv *priv)
+{
+       int base1 = 0, base2 = 0, i;
+       u32 p1[11], p2[11];
+       int mode = 0;
+       u32 *calib, *bkp;
+       u32 calib_redun_sel;
+
+       calib = (u32 *)qfprom_read(priv->dev, "calib");
+       if (IS_ERR(calib))
+               return PTR_ERR(calib);
+
+       bkp = (u32 *)qfprom_read(priv->dev, "calib_backup");
+       if (IS_ERR(bkp))
+               return PTR_ERR(bkp);
+
+       calib_redun_sel =  bkp[1] & BKP_REDUN_SEL;
+       calib_redun_sel >>= BKP_REDUN_SHIFT;
+
+       if (calib_redun_sel == BKP_SEL) {
+               mode = (calib[4] & CAL_SEL_0_1) >> CAL_SEL_SHIFT;
+               mode |= (calib[5] & CAL_SEL_2) >> CAL_SEL_SHIFT_2;
+
+               switch (mode) {
+               case TWO_PT_CALIB:
+                       base2 = (bkp[2] & BASE2_BKP_MASK) >> BASE2_BKP_SHIFT;
+                       p2[0] = (bkp[2] & S0_P2_BKP_MASK) >> S0_P2_BKP_SHIFT;
+                       p2[1] = (bkp[3] & S1_P2_BKP_MASK);
+                       p2[2] = (bkp[3] & S2_P2_BKP_MASK) >> S2_P2_BKP_SHIFT;
+                       p2[3] = (bkp[3] & S3_P2_BKP_MASK) >> S3_P2_BKP_SHIFT;
+                       p2[4] = (bkp[3] & S4_P2_BKP_MASK) >> S4_P2_BKP_SHIFT;
+                       p2[5] = (calib[4] & S5_P2_BKP_MASK) >> S5_P2_BKP_SHIFT;
+                       p2[6] = (calib[5] & S6_P2_BKP_MASK);
+                       p2[7] = (calib[5] & S7_P2_BKP_MASK) >> S7_P2_BKP_SHIFT;
+                       p2[8] = (calib[5] & S8_P2_BKP_MASK) >> S8_P2_BKP_SHIFT;
+                       p2[9] = (calib[5] & S9_P2_BKP_MASK) >> S9_P2_BKP_SHIFT;
+                       p2[10] = (calib[5] & S10_P2_BKP_MASK) >> S10_P2_BKP_SHIFT;
+                       /* Fall through */
+               case ONE_PT_CALIB:
+               case ONE_PT_CALIB2:
+                       base1 = bkp[0] & BASE1_MASK;
+                       p1[0] = (bkp[0] & S0_P1_MASK) >> S0_P1_SHIFT;
+                       p1[1] = (bkp[0] & S1_P1_MASK) >> S1_P1_SHIFT;
+                       p1[2] = (bkp[0] & S2_P1_MASK) >> S2_P1_SHIFT;
+                       p1[3] = (bkp[0] & S3_P1_MASK) >> S3_P1_SHIFT;
+                       p1[4] = (bkp[1] & S4_P1_MASK);
+                       p1[5] = (bkp[1] & S5_P1_MASK) >> S5_P1_SHIFT;
+                       p1[6] = (bkp[1] & S6_P1_MASK) >> S6_P1_SHIFT;
+                       p1[7] = (bkp[1] & S7_P1_MASK) >> S7_P1_SHIFT;
+                       p1[8] = (bkp[2] & S8_P1_MASK_BKP) >> S8_P1_SHIFT;
+                       p1[9] = (bkp[2] & S9_P1_MASK_BKP) >> S9_P1_BKP_SHIFT;
+                       p1[10] = (bkp[2] & S10_P1_MASK_BKP) >> S10_P1_BKP_SHIFT;
+                       break;
+               }
+       } else {
+               mode = (calib[1] & CAL_SEL_0_1) >> CAL_SEL_SHIFT;
+               mode |= (calib[3] & CAL_SEL_2) >> CAL_SEL_SHIFT_2;
+
+               switch (mode) {
+               case TWO_PT_CALIB:
+                       base2 = (calib[2] & BASE2_MASK) >> BASE2_SHIFT;
+                       p2[0] = (calib[2] & S0_P2_MASK) >> S0_P2_SHIFT;
+                       p2[1] = (calib[2] & S1_P2_MASK) >> S1_P2_SHIFT;
+                       p2[2] = (calib[3] & S2_P2_MASK);
+                       p2[3] = (calib[3] & S3_P2_MASK) >> S3_P2_SHIFT;
+                       p2[4] = (calib[3] & S4_P2_MASK) >> S4_P2_SHIFT;
+                       p2[5] = (calib[3] & S5_P2_MASK) >> S5_P2_SHIFT;
+                       p2[6] = (calib[3] & S6_P2_MASK) >> S6_P2_SHIFT;
+                       p2[7] = (calib[4] & S7_P2_MASK);
+                       p2[8] = (calib[4] & S8_P2_MASK) >> S8_P2_SHIFT;
+                       p2[9] = (calib[4] & S9_P2_MASK) >> S9_P2_SHIFT;
+                       p2[10] = (calib[4] & S10_P2_MASK) >> S10_P2_SHIFT;
+                       /* Fall through */
+               case ONE_PT_CALIB:
+               case ONE_PT_CALIB2:
+                       base1 = calib[0] & BASE1_MASK;
+                       p1[0] = (calib[0] & S0_P1_MASK) >> S0_P1_SHIFT;
+                       p1[1] = (calib[0] & S1_P1_MASK) >> S1_P1_SHIFT;
+                       p1[2] = (calib[0] & S2_P1_MASK) >> S2_P1_SHIFT;
+                       p1[3] = (calib[0] & S3_P1_MASK) >> S3_P1_SHIFT;
+                       p1[4] = (calib[1] & S4_P1_MASK);
+                       p1[5] = (calib[1] & S5_P1_MASK) >> S5_P1_SHIFT;
+                       p1[6] = (calib[1] & S6_P1_MASK) >> S6_P1_SHIFT;
+                       p1[7] = (calib[1] & S7_P1_MASK) >> S7_P1_SHIFT;
+                       p1[8] = (calib[1] & S8_P1_MASK) >> S8_P1_SHIFT;
+                       p1[9] = (calib[2] & S9_P1_MASK);
+                       p1[10] = (calib[2] & S10_P1_MASK) >> S10_P1_SHIFT;
+                       break;
+               }
+       }
+
+       switch (mode) {
+       case ONE_PT_CALIB:
+               for (i = 0; i < priv->num_sensors; i++)
+                       p1[i] += (base1 << 2) | BIT_APPEND;
+               break;
+       case TWO_PT_CALIB:
+               for (i = 0; i < priv->num_sensors; i++) {
+                       p2[i] += base2;
+                       p2[i] <<= 2;
+                       p2[i] |= BIT_APPEND;
+               }
+               /* Fall through */
+       case ONE_PT_CALIB2:
+               for (i = 0; i < priv->num_sensors; i++) {
+                       p1[i] += base1;
+                       p1[i] <<= 2;
+                       p1[i] |= BIT_APPEND;
+               }
+               break;
+       default:
+               for (i = 0; i < priv->num_sensors; i++)
+                       p2[i] = 780;
+               p1[0] = 502;
+               p1[1] = 509;
+               p1[2] = 503;
+               p1[3] = 509;
+               p1[4] = 505;
+               p1[5] = 509;
+               p1[6] = 507;
+               p1[7] = 510;
+               p1[8] = 508;
+               p1[9] = 509;
+               p1[10] = 508;
+               break;
+       }
+
+       compute_intercept_slope(priv, p1, p2, mode);
+
+       return 0;
+}
+
 static const struct tsens_ops ops_8916 = {
        .init           = init_common,
        .calibrate      = calibrate_8916,
@@ -103,3 +320,15 @@ const struct tsens_plat_data data_8916 = {
        .reg_offsets    = { [SROT_CTRL_OFFSET] = 0x0 },
        .hw_ids         = (unsigned int []){0, 1, 2, 4, 5 },
 };
+
+static const struct tsens_ops ops_8974 = {
+       .init           = init_common,
+       .calibrate      = calibrate_8974,
+       .get_temp       = get_temp_common,
+};
+
+const struct tsens_plat_data data_8974 = {
+       .num_sensors    = 11,
+       .ops            = &ops_8974,
+       .reg_offsets    = { [SROT_CTRL_OFFSET] = 0x0 },
+};
index 4d6a406..27b8f74 100644 (file)
@@ -116,8 +116,12 @@ void compute_intercept_slope(struct tsens_priv *priv, u32 *pt1, u32 *pt2, u32 mo
 int init_common(struct tsens_priv *priv);
 int get_temp_common(struct tsens_priv *priv, int i, int *temp);
 
-/* TSENS v1 targets */
-extern const struct tsens_plat_data data_8916, data_8974, data_8960;
+/* TSENS target */
+extern const struct tsens_plat_data data_8960;
+
+/* TSENS v0.1 targets */
+extern const struct tsens_plat_data data_8916, data_8974;
+
 /* TSENS v2 targets */
 extern const struct tsens_plat_data data_8996, data_tsens_v2;