thermal: tsens: Add generic support for TSENS v2 IP
authorAmit Kucheria <amit.kucheria@linaro.org>
Wed, 18 Jul 2018 06:43:12 +0000 (12:13 +0530)
committerEduardo Valentin <edubezval@gmail.com>
Fri, 27 Jul 2018 22:09:28 +0000 (15:09 -0700)
SDM845 uses v2 of the TSENS IP block but the get_temp() function appears to
be identical across v2.x.y in code seen so far. We use the generic
get_temp() function defined as part of ops_generic_v2.

Signed-off-by: Amit Kucheria <amit.kucheria@linaro.org>
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Tested-by: Matthias Kaehlcke <mka@chromium.org>
Reviewed-by: Douglas Anderson <dianders@chromium.org>
Signed-off-by: Eduardo Valentin <edubezval@gmail.com>
drivers/thermal/qcom/tsens-v2.c
drivers/thermal/qcom/tsens.c
drivers/thermal/qcom/tsens.h

index 44d3736109d6107afb7de51fa50f2905dc960dae..f40150fd7eae281bc2a6d918f48180daf6813c15 100644 (file)
@@ -69,6 +69,11 @@ static const struct tsens_ops ops_generic_v2 = {
        .get_temp       = get_temp_tsens_v2,
 };
 
+const struct tsens_data data_tsens_v2 = {
+       .ops            = &ops_generic_v2,
+};
+
+/* Kept around for backward compatibility with old msm8996.dtsi */
 const struct tsens_data data_8996 = {
        .num_sensors    = 13,
        .ops            = &ops_generic_v2,
index 3440166c2ae922859afb62fdf8901c1092fc8697..a2c9bfae3d867e8aa5e7ef2daa146212e673ff72 100644 (file)
@@ -72,6 +72,9 @@ static const struct of_device_id tsens_table[] = {
        }, {
                .compatible = "qcom,msm8996-tsens",
                .data = &data_8996,
+       }, {
+               .compatible = "qcom,tsens-v2",
+               .data = &data_tsens_v2,
        },
        {}
 };
index d785b37b47d23053806f2f2d71762cdcc6cddebf..14331eb45a86b80b3b0f581621586f1312a98110 100644 (file)
@@ -88,6 +88,9 @@ void compute_intercept_slope(struct tsens_device *, u32 *, u32 *, u32);
 int init_common(struct tsens_device *);
 int get_temp_common(struct tsens_device *, int, int *);
 
-extern const struct tsens_data data_8916, data_8974, data_8960, data_8996;
+/* TSENS v1 targets */
+extern const struct tsens_data data_8916, data_8974, data_8960;
+/* TSENS v2 targets */
+extern const struct tsens_data data_8996, data_tsens_v2;
 
 #endif /* __QCOM_TSENS_H__ */