Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 02a76444 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "ARM: dts: msm: Add TSENS config support for msmthorium"

parents 6cb76386 4e5955bf
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@ Required properties:
	       should be "qcom,msmzirc-tsens" for zirc TSENS driver.
	       should be "qcom,mdmfermium-tsens" for fermium TSENS driver.
	       should be "qcom,msmtitanium-tsens" for titanium TSENS driver.
	       should be "qcom,msmthorium-tsens" for thorium TSENS driver.
	       The compatible property is used to identify the respective fusemap to use
	       for the corresponding SoC.
- reg : offset and length of the TSENS registers.
+13 −0
Original line number Diff line number Diff line
@@ -178,6 +178,19 @@
		qcom,pipe-attr-ee;
	};

	tsens: tsens@4a8000 {
		compatible = "qcom,msmthorium-tsens";
		reg = <0x4a8000 0x2000>,
		      <0xa4000  0x1000>;
		reg-names = "tsens_physical", "tsens_eeprom_physical";
		interrupts = <0 184 0>;
		interrupt-names = "tsens-upper-lower";
		qcom,sensors = <11>;
		qcom,slope = <3200 3200 3200 3200 3200 3200 3200 3200 3200
								3200 3200>;
		qcom,sensor-id = <0 1 2 3 4 5 6 7 8 9 10>;
	};

	blsp1_uart2: serial@78b0000 {
		compatible = "qcom,msm-lsuart-v14";
		reg = <0x78b0000 0x200>;
+312 −103
Original line number Diff line number Diff line
@@ -594,59 +594,59 @@
#define TSENS4_OFFSET_ZIRC_MASK		0xf0
#define TSENS4_OFFSET_ZIRC_SHIFT	4

#define TSENS_MSM8952_BASE0_MASK                0x000000ff
#define TSENS_MSM8952_BASE1_MASK                0xff000000

#define TSENS0_MSM8952_POINT1_MASK              0x000001f8
#define TSENS1_MSM8952_POINT1_MASK              0x001f8000
#define TSENS2_MSM8952_POINT1_MASK_0_4          0xf8000000
#define TSENS2_MSM8952_POINT1_MASK_5            0x00000001
#define TSENS3_MSM8952_POINT1_MASK              0x00001f80
#define TSENS4_MSM8952_POINT1_MASK              0x01f80000
#define TSENS5_MSM8952_POINT1_MASK              0x00003f00
#define TSENS6_MSM8952_POINT1_MASK              0x03f00000
#define TSENS7_MSM8952_POINT1_MASK              0x0000003f
#define TSENS8_MSM8952_POINT1_MASK              0x0003f000
#define TSENS9_MSM8952_POINT1_MASK              0x0000003f
#define TSENS10_MSM8952_POINT1_MASK             0x0003f000

#define TSENS0_MSM8952_POINT2_MASK              0x00007e00
#define TSENS1_MSM8952_POINT2_MASK              0x07e00000
#define TSENS2_MSM8952_POINT2_MASK              0x0000007e
#define TSENS3_MSM8952_POINT2_MASK              0x0007e000
#define TSENS4_MSM8952_POINT2_MASK              0x7e000000
#define TSENS5_MSM8952_POINT2_MASK              0x000fc000
#define TSENS6_MSM8952_POINT2_MASK              0xfc000000
#define TSENS7_MSM8952_POINT2_MASK              0x00000fc0
#define TSENS8_MSM8952_POINT2_MASK              0x00fc0000
#define TSENS9_MSM8952_POINT2_MASK              0x00000fc0
#define TSENS10_MSM8952_POINT2_MASK             0x00fc0000

#define TSENS_MSM8952_TSENS_CAL_SEL     0x00000007
#define TSENS_MSM8952_BASE1_SHIFT       24

#define TSENS0_MSM8952_POINT1_SHIFT     3
#define TSENS1_MSM8952_POINT1_SHIFT     15
#define TSENS2_MSM8952_POINT1_SHIFT_0_4 27
#define TSENS2_MSM8952_POINT1_SHIFT_5   5
#define TSENS3_MSM8952_POINT1_SHIFT     7
#define TSENS4_MSM8952_POINT1_SHIFT     19
#define TSENS5_MSM8952_POINT1_SHIFT     8
#define TSENS6_MSM8952_POINT1_SHIFT     20
#define TSENS8_MSM8952_POINT1_SHIFT     12
#define TSENS10_MSM8952_POINT1_SHIFT    12

#define TSENS0_MSM8952_POINT2_SHIFT     9
#define TSENS1_MSM8952_POINT2_SHIFT     21
#define TSENS2_MSM8952_POINT2_SHIFT     1
#define TSENS3_MSM8952_POINT2_SHIFT     13
#define TSENS4_MSM8952_POINT2_SHIFT     25
#define TSENS5_MSM8952_POINT2_SHIFT     14
#define TSENS6_MSM8952_POINT2_SHIFT     26
#define TSENS7_MSM8952_POINT2_SHIFT     6
#define TSENS8_MSM8952_POINT2_SHIFT     18
#define TSENS9_MSM8952_POINT2_SHIFT     6
#define TSENS10_MSM8952_POINT2_SHIFT    18
#define TSENS_CONTR_14_BASE0_MASK                0x000000ff
#define TSENS_CONTR_14_BASE1_MASK                0xff000000

#define TSENS0_CONTR_14_POINT1_MASK              0x000001f8
#define TSENS1_CONTR_14_POINT1_MASK              0x001f8000
#define TSENS2_CONTR_14_POINT1_MASK_0_4          0xf8000000
#define TSENS2_CONTR_14_POINT1_MASK_5            0x00000001
#define TSENS3_CONTR_14_POINT1_MASK              0x00001f80
#define TSENS4_CONTR_14_POINT1_MASK              0x01f80000
#define TSENS5_CONTR_14_POINT1_MASK              0x00003f00
#define TSENS6_CONTR_14_POINT1_MASK              0x03f00000
#define TSENS7_CONTR_14_POINT1_MASK              0x0000003f
#define TSENS8_CONTR_14_POINT1_MASK              0x0003f000
#define TSENS9_CONTR_14_POINT1_MASK              0x0000003f
#define TSENS10_CONTR_14_POINT1_MASK             0x0003f000

#define TSENS0_CONTR_14_POINT2_MASK              0x00007e00
#define TSENS1_CONTR_14_POINT2_MASK              0x07e00000
#define TSENS2_CONTR_14_POINT2_MASK              0x0000007e
#define TSENS3_CONTR_14_POINT2_MASK              0x0007e000
#define TSENS4_CONTR_14_POINT2_MASK              0x7e000000
#define TSENS5_CONTR_14_POINT2_MASK              0x000fc000
#define TSENS6_CONTR_14_POINT2_MASK              0xfc000000
#define TSENS7_CONTR_14_POINT2_MASK              0x00000fc0
#define TSENS8_CONTR_14_POINT2_MASK              0x00fc0000
#define TSENS9_CONTR_14_POINT2_MASK              0x00000fc0
#define TSENS10_CONTR_14_POINT2_MASK             0x00fc0000

#define TSENS_CONTR_14_TSENS_CAL_SEL     0x00000007
#define TSENS_CONTR_14_BASE1_SHIFT       24

#define TSENS0_CONTR_14_POINT1_SHIFT     3
#define TSENS1_CONTR_14_POINT1_SHIFT     15
#define TSENS2_CONTR_14_POINT1_SHIFT_0_4 27
#define TSENS2_CONTR_14_POINT1_SHIFT_5   5
#define TSENS3_CONTR_14_POINT1_SHIFT     7
#define TSENS4_CONTR_14_POINT1_SHIFT     19
#define TSENS5_CONTR_14_POINT1_SHIFT     8
#define TSENS6_CONTR_14_POINT1_SHIFT     20
#define TSENS8_CONTR_14_POINT1_SHIFT     12
#define TSENS10_CONTR_14_POINT1_SHIFT    12

#define TSENS0_CONTR_14_POINT2_SHIFT     9
#define TSENS1_CONTR_14_POINT2_SHIFT     21
#define TSENS2_CONTR_14_POINT2_SHIFT     1
#define TSENS3_CONTR_14_POINT2_SHIFT     13
#define TSENS4_CONTR_14_POINT2_SHIFT     25
#define TSENS5_CONTR_14_POINT2_SHIFT     14
#define TSENS6_CONTR_14_POINT2_SHIFT     26
#define TSENS7_CONTR_14_POINT2_SHIFT     6
#define TSENS8_CONTR_14_POINT2_SHIFT     18
#define TSENS9_CONTR_14_POINT2_SHIFT     6
#define TSENS10_CONTR_14_POINT2_SHIFT    18

#define TSENS_TWO_POINT_CALIB_N_WA			0x6
#define TSENS_TWO_POINT_CALIB_N_OFFSET_WA		0x7
@@ -736,6 +736,7 @@ enum tsens_calib_fuse_map_type {
	TSENS_CALIB_FUSE_MAP_8992,
	TSENS_CALIB_FUSE_MAP_MSM8952,
	TSENS_CALIB_FUSE_MAP_MDMFERMIUM,
	TSENS_CALIB_FUSE_MAP_MSMTHORIUM,
	TSENS_CALIB_FUSE_MAP_NUM,
};

@@ -879,6 +880,9 @@ static struct of_device_id tsens_match[] = {
	{	.compatible = "qcom,msmtitanium-tsens",
		.data = (void *)TSENS_CALIB_FUSE_MAP_NONE,
	},
	{	.compatible = "qcom,msmthorium-tsens",
		.data = (void *)TSENS_CALIB_FUSE_MAP_MSMTHORIUM,
	},
	{}
};

@@ -2517,6 +2521,208 @@ static int tsens_hw_init(struct tsens_tm_device *tmdev)
	return 0;
}

static int tsens_calib_msmthorium_sensors(struct tsens_tm_device *tmdev)
{
	int i, tsens_base0_data = 0, tsens_base1_data = 0;
	int tsens0_point1 = 0, tsens0_point2 = 0;
	int tsens1_point1 = 0, tsens1_point2 = 0;
	int tsens2_point1 = 0, tsens2_point2 = 0;
	int tsens3_point1 = 0, tsens3_point2 = 0;
	int tsens4_point1 = 0, tsens4_point2 = 0;
	int tsens5_point1 = 0, tsens5_point2 = 0;
	int tsens6_point1 = 0, tsens6_point2 = 0;
	int tsens7_point1 = 0, tsens7_point2 = 0;
	int tsens8_point1 = 0, tsens8_point2 = 0;
	int tsens9_point1 = 0, tsens9_point2 = 0;
	int tsens10_point1 = 0, tsens10_point2 = 0;

	int tsens_calibration_mode = 0, temp = 0;
	uint32_t calib_data[5] = {0, 0, 0, 0, 0};
	uint32_t calib_tsens_point1_data[11], calib_tsens_point2_data[11];

	if (!tmdev->calibration_less_mode) {

		calib_data[0] = readl_relaxed(tmdev->tsens_calib_addr + 0x1D8);
		calib_data[1] = readl_relaxed(tmdev->tsens_calib_addr + 0x1DC);
		calib_data[2] = readl_relaxed(tmdev->tsens_calib_addr + 0x210);
		calib_data[3] = readl_relaxed(tmdev->tsens_calib_addr + 0x214);
		calib_data[4] = readl_relaxed(tmdev->tsens_calib_addr + 0x230);

		tsens_calibration_mode =
				(calib_data[2] &
					TSENS_CONTR_14_TSENS_CAL_SEL);

		pr_debug("calib mode is %d\n", tsens_calibration_mode);
	}

	if ((tsens_calibration_mode == TSENS_TWO_POINT_CALIB) ||
		(tsens_calibration_mode == TSENS_ONE_POINT_CALIB_OPTION_2)) {
		tsens_base0_data = (calib_data[0] &
						TSENS_CONTR_14_BASE0_MASK);
		tsens0_point1 = (calib_data[2] &
					TSENS0_CONTR_14_POINT1_MASK)
			>> TSENS0_CONTR_14_POINT1_SHIFT;
		tsens1_point1 = (calib_data[2] &
					TSENS1_CONTR_14_POINT1_MASK)
				>> TSENS1_CONTR_14_POINT1_SHIFT;
		tsens2_point1 = (calib_data[2] &
					TSENS2_CONTR_14_POINT1_MASK_0_4)
				>> TSENS2_CONTR_14_POINT1_SHIFT_0_4;
		temp = (calib_data[3] & TSENS2_CONTR_14_POINT1_MASK_5)
				<< TSENS2_CONTR_14_POINT1_SHIFT_5;
		tsens2_point1 |= temp;
		tsens3_point1 = (calib_data[3] &
					TSENS3_CONTR_14_POINT1_MASK)
				>> TSENS3_CONTR_14_POINT1_SHIFT;
		tsens4_point1 = (calib_data[3] &
					TSENS4_CONTR_14_POINT1_MASK)
				>> TSENS4_CONTR_14_POINT1_SHIFT;
		tsens5_point1 = (calib_data[0] &
					TSENS5_CONTR_14_POINT1_MASK)
				>> TSENS5_CONTR_14_POINT1_SHIFT;
		tsens6_point1 = (calib_data[0] &
					TSENS6_CONTR_14_POINT1_MASK)
				>> TSENS6_CONTR_14_POINT1_SHIFT;
		tsens7_point1 = (calib_data[1] &
					TSENS7_CONTR_14_POINT1_MASK);
		tsens8_point1 = (calib_data[1] &
					TSENS8_CONTR_14_POINT1_MASK)
				>> TSENS8_CONTR_14_POINT1_SHIFT;
		tsens9_point1 = (calib_data[4] &
					TSENS9_CONTR_14_POINT1_MASK);
		tsens10_point1 = (calib_data[4] &
					TSENS10_CONTR_14_POINT1_MASK)
				>> TSENS10_CONTR_14_POINT1_SHIFT;
	}

	if (tsens_calibration_mode == TSENS_TWO_POINT_CALIB) {
		tsens_base1_data = (calib_data[1] &
					TSENS_CONTR_14_BASE1_MASK)
				>> TSENS_CONTR_14_BASE1_SHIFT;
		tsens0_point2 = (calib_data[2] &
					TSENS0_CONTR_14_POINT2_MASK)
				>> TSENS0_CONTR_14_POINT2_SHIFT;
		tsens1_point2 = (calib_data[2] &
					TSENS1_CONTR_14_POINT2_MASK)
				>> TSENS1_CONTR_14_POINT2_SHIFT;
		tsens2_point2 =	(calib_data[3] &
					TSENS2_CONTR_14_POINT2_MASK)
				>> TSENS2_CONTR_14_POINT2_SHIFT;
		tsens3_point2 = (calib_data[3] &
					TSENS3_CONTR_14_POINT2_MASK)
				>> TSENS3_CONTR_14_POINT2_SHIFT;
		tsens4_point2 = (calib_data[3] &
					TSENS4_CONTR_14_POINT2_MASK)
				>> TSENS4_CONTR_14_POINT2_SHIFT;
		tsens5_point2 = (calib_data[0] &
					TSENS5_CONTR_14_POINT2_MASK)
				>> TSENS5_CONTR_14_POINT2_SHIFT;
		tsens6_point2 = (calib_data[0] &
					TSENS6_CONTR_14_POINT2_MASK)
				>> TSENS6_CONTR_14_POINT2_SHIFT;
		tsens7_point2 = (calib_data[1] &
					TSENS7_CONTR_14_POINT2_MASK)
				>> TSENS7_CONTR_14_POINT2_SHIFT;
		tsens8_point2 = (calib_data[1] &
					TSENS8_CONTR_14_POINT2_MASK)
				>> TSENS8_CONTR_14_POINT2_SHIFT;
		tsens9_point2 = (calib_data[4] &
					TSENS9_CONTR_14_POINT2_MASK)
				>> TSENS9_CONTR_14_POINT2_SHIFT;
		tsens10_point2 = (calib_data[4] &
					TSENS10_CONTR_14_POINT2_MASK)
				>> TSENS10_CONTR_14_POINT2_SHIFT;
	}

	if (tsens_calibration_mode == 0) {
		pr_debug("TSENS in calibrationless mode\n");
		for (i = 0; i < tmdev->tsens_num_sensor; i++) {
			calib_tsens_point2_data[i] = TSENS_NO_CALIB_POINT2_DATA;
			calib_tsens_point1_data[i] = TSENS_NO_CALIB_POINT1_DATA;
		}
	}

	if ((tsens_calibration_mode == TSENS_ONE_POINT_CALIB_OPTION_2) ||
		(tsens_calibration_mode == TSENS_TWO_POINT_CALIB)) {
		calib_tsens_point1_data[0] =
				(((tsens_base0_data) + tsens0_point1) << 2);
		calib_tsens_point1_data[1] =
				(((tsens_base0_data) + tsens1_point1) << 2);
		calib_tsens_point1_data[2] =
				(((tsens_base0_data) + tsens2_point1) << 2);
		calib_tsens_point1_data[3] =
				(((tsens_base0_data) + tsens3_point1) << 2);
		calib_tsens_point1_data[4] =
				(((tsens_base0_data) + tsens4_point1) << 2);
		calib_tsens_point1_data[5] =
				(((tsens_base0_data) + tsens5_point1) << 2);
		calib_tsens_point1_data[6] =
				(((tsens_base0_data) + tsens6_point1) << 2);
		calib_tsens_point1_data[7] =
				(((tsens_base0_data) + tsens7_point1) << 2);
		calib_tsens_point1_data[8] =
				(((tsens_base0_data) + tsens8_point1) << 2);
		calib_tsens_point1_data[9] =
				(((tsens_base0_data) + tsens9_point1) << 2);
		calib_tsens_point1_data[10] =
				(((tsens_base0_data) + tsens10_point1) << 2);
	}

	if (tsens_calibration_mode == TSENS_TWO_POINT_CALIB) {
		pr_debug("two point calibration calculation\n");
		calib_tsens_point2_data[0] =
				((tsens_base1_data + tsens0_point2) << 2);
		calib_tsens_point2_data[1] =
				((tsens_base1_data + tsens1_point2) << 2);
		calib_tsens_point2_data[2] =
				((tsens_base1_data + tsens2_point2) << 2);
		calib_tsens_point2_data[3] =
				((tsens_base1_data + tsens3_point2) << 2);
		calib_tsens_point2_data[4] =
				((tsens_base1_data + tsens4_point2) << 2);
		calib_tsens_point2_data[5] =
				((tsens_base1_data + tsens5_point2) << 2);
		calib_tsens_point2_data[6] =
				((tsens_base1_data + tsens6_point2) << 2);
		calib_tsens_point2_data[7] =
				((tsens_base1_data + tsens7_point2) << 2);
		calib_tsens_point2_data[8] =
				((tsens_base1_data + tsens8_point2) << 2);
		calib_tsens_point2_data[9] =
				((tsens_base1_data + tsens9_point2) << 2);
		calib_tsens_point2_data[10] =
				((tsens_base1_data + tsens10_point2) << 2);
	}

	for (i = 0; i < tmdev->tsens_num_sensor; i++) {
		int32_t num = 0, den = 0;

		tmdev->sensor[i].calib_data_point2 = calib_tsens_point2_data[i];
		tmdev->sensor[i].calib_data_point1 = calib_tsens_point1_data[i];
		pr_debug("sensor:%d - calib_data_point1:0x%x, calib_data_point2:0x%x\n",
				i, tmdev->sensor[i].calib_data_point1,
				tmdev->sensor[i].calib_data_point2);
		if (tsens_calibration_mode == TSENS_TWO_POINT_CALIB) {
			/*
			 * slope (m) = adc_code2 - adc_code1 (y2 - y1)
			 * temp_120_degc - temp_30_degc (x2 - x1)
			 */
			num = tmdev->sensor[i].calib_data_point2 -
					tmdev->sensor[i].calib_data_point1;
			num *= tmdev->tsens_factor;
			den = TSENS_CAL_DEGC_POINT2 - TSENS_CAL_DEGC_POINT1;
			tmdev->sensor[i].slope_mul_tsens_factor = num/den;
		}
		tmdev->sensor[i].offset = (tmdev->sensor[i].calib_data_point1 *
				tmdev->tsens_factor) - (TSENS_CAL_DEGC_POINT1 *
				tmdev->sensor[i].slope_mul_tsens_factor);
		pr_debug("offset:%d and slope:%d\n", tmdev->sensor[i].offset,
				tmdev->sensor[i].slope_mul_tsens_factor);
		tmdev->prev_reading_avail = false;
	}
	return 0;
}

static int tsens_calib_mdmfermium_sensors(struct tsens_tm_device *tmdev)
{
	int i, tsens_base0_data = 0, tsens_base1_data = 0;
@@ -2674,7 +2880,7 @@ static int tsens_calib_msm8952_sensors(struct tsens_tm_device *tmdev)

		tsens_calibration_mode =
				(calib_data[0] &
					TSENS_MSM8952_TSENS_CAL_SEL);
					TSENS_CONTR_14_TSENS_CAL_SEL);

		pr_debug("calib mode is %d\n", tsens_calibration_mode);
	}
@@ -2682,80 +2888,80 @@ static int tsens_calib_msm8952_sensors(struct tsens_tm_device *tmdev)
	if ((tsens_calibration_mode == TSENS_TWO_POINT_CALIB) ||
		(tsens_calibration_mode == TSENS_ONE_POINT_CALIB_OPTION_2)) {
		tsens_base0_data = (calib_data[2] &
						TSENS_MSM8952_BASE0_MASK);
						TSENS_CONTR_14_BASE0_MASK);
		tsens0_point1 = (calib_data[0] &
					TSENS0_MSM8952_POINT1_MASK)
			>> TSENS0_MSM8952_POINT1_SHIFT;
					TSENS0_CONTR_14_POINT1_MASK)
			>> TSENS0_CONTR_14_POINT1_SHIFT;
		tsens1_point1 = (calib_data[0] &
					TSENS1_MSM8952_POINT1_MASK)
				>> TSENS1_MSM8952_POINT1_SHIFT;
					TSENS1_CONTR_14_POINT1_MASK)
				>> TSENS1_CONTR_14_POINT1_SHIFT;
		tsens2_point1 = (calib_data[0] &
					TSENS2_MSM8952_POINT1_MASK_0_4)
				>> TSENS2_MSM8952_POINT1_SHIFT_0_4;
		temp = (calib_data[1] & TSENS2_MSM8952_POINT1_MASK_5)
				<< TSENS2_MSM8952_POINT1_SHIFT_5;
					TSENS2_CONTR_14_POINT1_MASK_0_4)
				>> TSENS2_CONTR_14_POINT1_SHIFT_0_4;
		temp = (calib_data[1] & TSENS2_CONTR_14_POINT1_MASK_5)
				<< TSENS2_CONTR_14_POINT1_SHIFT_5;
		tsens2_point1 |= temp;
		tsens3_point1 = (calib_data[1] &
					TSENS3_MSM8952_POINT1_MASK)
				>> TSENS3_MSM8952_POINT1_SHIFT;
					TSENS3_CONTR_14_POINT1_MASK)
				>> TSENS3_CONTR_14_POINT1_SHIFT;
		tsens4_point1 = (calib_data[1] &
					TSENS4_MSM8952_POINT1_MASK)
				>> TSENS4_MSM8952_POINT1_SHIFT;
					TSENS4_CONTR_14_POINT1_MASK)
				>> TSENS4_CONTR_14_POINT1_SHIFT;
		tsens5_point1 = (calib_data[2] &
					TSENS5_MSM8952_POINT1_MASK)
				>> TSENS5_MSM8952_POINT1_SHIFT;
					TSENS5_CONTR_14_POINT1_MASK)
				>> TSENS5_CONTR_14_POINT1_SHIFT;
		tsens6_point1 = (calib_data[2] &
					TSENS6_MSM8952_POINT1_MASK)
				>> TSENS6_MSM8952_POINT1_SHIFT;
					TSENS6_CONTR_14_POINT1_MASK)
				>> TSENS6_CONTR_14_POINT1_SHIFT;
		tsens7_point1 = (calib_data[3] &
					TSENS7_MSM8952_POINT1_MASK);
					TSENS7_CONTR_14_POINT1_MASK);
		tsens8_point1 = (calib_data[3] &
					TSENS8_MSM8952_POINT1_MASK)
				>> TSENS8_MSM8952_POINT1_SHIFT;
					TSENS8_CONTR_14_POINT1_MASK)
				>> TSENS8_CONTR_14_POINT1_SHIFT;
		tsens9_point1 = (calib_data[4] &
					TSENS9_MSM8952_POINT1_MASK);
					TSENS9_CONTR_14_POINT1_MASK);
		tsens10_point1 = (calib_data[4] &
					TSENS10_MSM8952_POINT1_MASK)
				>> TSENS10_MSM8952_POINT1_SHIFT;
					TSENS10_CONTR_14_POINT1_MASK)
				>> TSENS10_CONTR_14_POINT1_SHIFT;
	}

	if (tsens_calibration_mode == TSENS_TWO_POINT_CALIB) {
		tsens_base1_data = (calib_data[3] &
					TSENS_MSM8952_BASE1_MASK)
				>> TSENS_MSM8952_BASE1_SHIFT;
					TSENS_CONTR_14_BASE1_MASK)
				>> TSENS_CONTR_14_BASE1_SHIFT;
		tsens0_point2 = (calib_data[0] &
					TSENS0_MSM8952_POINT2_MASK)
				>> TSENS0_MSM8952_POINT2_SHIFT;
					TSENS0_CONTR_14_POINT2_MASK)
				>> TSENS0_CONTR_14_POINT2_SHIFT;
		tsens1_point2 = (calib_data[0] &
					TSENS1_MSM8952_POINT2_MASK)
				>> TSENS1_MSM8952_POINT2_SHIFT;
					TSENS1_CONTR_14_POINT2_MASK)
				>> TSENS1_CONTR_14_POINT2_SHIFT;
		tsens2_point2 =	(calib_data[1] &
					TSENS2_MSM8952_POINT2_MASK)
				>> TSENS2_MSM8952_POINT2_SHIFT;
					TSENS2_CONTR_14_POINT2_MASK)
				>> TSENS2_CONTR_14_POINT2_SHIFT;
		tsens3_point2 = (calib_data[1] &
					TSENS3_MSM8952_POINT2_MASK)
				>> TSENS3_MSM8952_POINT2_SHIFT;
					TSENS3_CONTR_14_POINT2_MASK)
				>> TSENS3_CONTR_14_POINT2_SHIFT;
		tsens4_point2 = (calib_data[1] &
					TSENS4_MSM8952_POINT2_MASK)
				>> TSENS4_MSM8952_POINT2_SHIFT;
					TSENS4_CONTR_14_POINT2_MASK)
				>> TSENS4_CONTR_14_POINT2_SHIFT;
		tsens5_point2 = (calib_data[2] &
					TSENS5_MSM8952_POINT2_MASK)
				>> TSENS5_MSM8952_POINT2_SHIFT;
					TSENS5_CONTR_14_POINT2_MASK)
				>> TSENS5_CONTR_14_POINT2_SHIFT;
		tsens6_point2 = (calib_data[2] &
					TSENS6_MSM8952_POINT2_MASK)
				>> TSENS6_MSM8952_POINT2_SHIFT;
					TSENS6_CONTR_14_POINT2_MASK)
				>> TSENS6_CONTR_14_POINT2_SHIFT;
		tsens7_point2 = (calib_data[3] &
					TSENS7_MSM8952_POINT2_MASK)
				>> TSENS7_MSM8952_POINT2_SHIFT;
					TSENS7_CONTR_14_POINT2_MASK)
				>> TSENS7_CONTR_14_POINT2_SHIFT;
		tsens8_point2 = (calib_data[3] &
					TSENS8_MSM8952_POINT2_MASK)
				>> TSENS8_MSM8952_POINT2_SHIFT;
					TSENS8_CONTR_14_POINT2_MASK)
				>> TSENS8_CONTR_14_POINT2_SHIFT;
		tsens9_point2 = (calib_data[4] &
					TSENS9_MSM8952_POINT2_MASK)
				>> TSENS9_MSM8952_POINT2_SHIFT;
					TSENS9_CONTR_14_POINT2_MASK)
				>> TSENS9_CONTR_14_POINT2_SHIFT;
		tsens10_point2 = (calib_data[4] &
					TSENS10_MSM8952_POINT2_MASK)
				>> TSENS10_MSM8952_POINT2_SHIFT;
					TSENS10_CONTR_14_POINT2_MASK)
				>> TSENS10_CONTR_14_POINT2_SHIFT;
	}

	if (tsens_calibration_mode == 0) {
@@ -4904,6 +5110,8 @@ static int tsens_calib_sensors(struct tsens_tm_device *tmdev)
		rc = tsens_calib_msm8952_sensors(tmdev);
	else if (tmdev->calib_mode == TSENS_CALIB_FUSE_MAP_MDMFERMIUM)
		rc = tsens_calib_mdmfermium_sensors(tmdev);
	else if (tmdev->calib_mode == TSENS_CALIB_FUSE_MAP_MSMTHORIUM)
		rc = tsens_calib_msmthorium_sensors(tmdev);
	else if (tmdev->calib_mode == TSENS_CALIB_FUSE_MAP_NONE) {
		pr_debug("Fuse map info not required\n");
		rc = 0;
@@ -5017,7 +5225,8 @@ static int get_device_tree_data(struct platform_device *pdev,
	else if (!strcmp(id->compatible, "qcom,msmtitanium-tsens")) {
		tmdev->tsens_type = TSENS_TYPE3;
		tsens_poll_check = 0;
	} else if (!strcmp(id->compatible, "qcom,msm8952-tsens"))
	} else if (!strcmp(id->compatible, "qcom,msm8952-tsens") ||
			(!strcmp(id->compatible, "qcom,msmthorium-tsens")))
		tmdev->tsens_type = TSENS_TYPE4;
	else
		tmdev->tsens_type = TSENS_TYPE0;