@@ -31,6 +31,7 @@ properties:
items:
- enum:
- qcom,msm8976-tsens
+ - qcom,msm8992-tsens
- qcom,msm8994-tsens
- qcom,qcs404-tsens
- const: qcom,tsens-v1
@@ -541,6 +541,17 @@ static int calibrate_8994(struct tsens_priv *priv)
base1[i] = base1[0];
}
+ /* 8992 features less sensors and remaps some */
+ if (priv->num_sensors == 13) {
+ p[6] = p[7];
+ p[7] = p[9];
+ p[8] = p[10];
+ p[9] = p[11];
+ p[10] = p[12];
+ p[11] = p[13];
+ p[12] = p[14];
+ }
+
compute_intercept_slope_8994(priv, base0, base1, p, mode);
kfree(calib0);
kfree(calib1);
@@ -642,6 +653,20 @@ struct tsens_plat_data data_8976 = {
.fields = tsens_v1_regfields,
};
+static const struct tsens_ops ops_8992 = {
+ .init = init_common,
+ .calibrate = calibrate_8994,
+ .get_temp = get_temp_tsens_valid,
+};
+
+struct tsens_plat_data data_8992 = {
+ .num_sensors = 13,
+ .ops = &ops_8992,
+ .hw_ids = (unsigned int []){ 0, 1, 2, 3, 4, 5, 7, 9, 10, 11, 12, 13, 14 },
+ .feat = &tsens_v1_feat,
+ .fields = tsens_v1_regfields,
+};
+
static const struct tsens_ops ops_8994 = {
.init = init_common,
.calibrate = calibrate_8994,
@@ -903,6 +903,9 @@ static const struct of_device_id tsens_table[] = {
}, {
.compatible = "qcom,msm8974-tsens",
.data = &data_8974,
+ }, {
+ .compatible = "qcom,msm8992-tsens",
+ .data = &data_8992,
}, {
.compatible = "qcom,msm8994-tsens",
.data = &data_8994,
@@ -588,7 +588,7 @@ extern struct tsens_plat_data data_8960;
extern struct tsens_plat_data data_8916, data_8939, data_8974;
/* TSENS v1 targets */
-extern struct tsens_plat_data data_tsens_v1, data_8976, data_8994;
+extern struct tsens_plat_data data_tsens_v1, data_8976, data_8992, data_8994;
/* TSENS v2 targets */
extern struct tsens_plat_data data_8996, data_tsens_v2;
MSM8992 is more or less a cut-down MSM8994, so it only makes sense that TSENS support only requires a few lines on top of the bigger brother's code. Signed-off-by: Konrad Dybcio <konrad.dybcio@somainline.org> --- .../bindings/thermal/qcom-tsens.yaml | 1 + drivers/thermal/qcom/tsens-v1.c | 25 +++++++++++++++++++ drivers/thermal/qcom/tsens.c | 3 +++ drivers/thermal/qcom/tsens.h | 2 +- 4 files changed, 30 insertions(+), 1 deletion(-)