]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
thermal/drivers/qcom/tsens: Add support for IPQ5018 tsens
authorSricharan Ramabadhran <quic_srichara@quicinc.com>
Fri, 28 Feb 2025 05:11:38 +0000 (09:11 +0400)
committerDaniel Lezcano <daniel.lezcano@linaro.org>
Fri, 16 May 2025 10:50:01 +0000 (12:50 +0200)
IPQ5018 has tsens IP V1.0, 5 sensors of which 4 are in use and 1
interrupt. The IP does not have a RPM, hence use init routine for
tsens v1.0 without RPM which does not early enable.

Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: Sricharan Ramabadhran <quic_srichara@quicinc.com>
Signed-off-by: George Moussalem <george.moussalem@outlook.com>
Link: https://lore.kernel.org/r/DS7PR19MB8883BD0E36C08DD1D03CE1CB9DCC2@DS7PR19MB8883.namprd19.prod.outlook.com
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
drivers/thermal/qcom/tsens-v1.c
drivers/thermal/qcom/tsens.c
drivers/thermal/qcom/tsens.h

index 877b27274fd214914d55c5f4a81fa61a26c1275f..27360e70d62a94e52e67f5aaa45457be165bfeb3 100644 (file)
@@ -242,3 +242,17 @@ struct tsens_plat_data data_8976 = {
        .feat           = &tsens_v1_feat,
        .fields         = tsens_v1_regfields,
 };
+
+const struct tsens_ops ops_ipq5018 = {
+       .init           = init_tsens_v1_no_rpm,
+       .calibrate      = tsens_calibrate_common,
+       .get_temp       = get_temp_tsens_valid,
+};
+
+const struct tsens_plat_data data_ipq5018 = {
+       .num_sensors    = 5,
+       .ops            = &ops_ipq5018,
+       .hw_ids         = (unsigned int []){0, 1, 2, 3, 4},
+       .feat           = &tsens_v1_no_rpm_feat,
+       .fields         = tsens_v1_regfields,
+};
index 2cda92f3d125746bd3db47d91b2b856a3511bee6..a2422ebee81691fb25a55911fb4f532d36fe8433 100644 (file)
@@ -1108,6 +1108,9 @@ static SIMPLE_DEV_PM_OPS(tsens_pm_ops, tsens_suspend, tsens_resume);
 
 static const struct of_device_id tsens_table[] = {
        {
+               .compatible = "qcom,ipq5018-tsens",
+               .data = &data_ipq5018,
+       }, {
                .compatible = "qcom,ipq5332-tsens",
                .data = &data_ipq5332,
        }, {
index e3cb611426c425e219f3b1920d24a65cf3f552d8..2a7afa4c899b9ea6747e64f09e7b569c2e2bcf5d 100644 (file)
@@ -652,6 +652,9 @@ extern struct tsens_plat_data data_8226, data_8909, data_8916, data_8939, data_8
 /* TSENS v1 targets */
 extern struct tsens_plat_data data_tsens_v1, data_8937, data_8976, data_8956;
 
+/* TSENS v1 with no RPM targets */
+extern const struct tsens_plat_data data_ipq5018;
+
 /* TSENS v2 targets */
 extern struct tsens_plat_data data_8996, data_ipq8074, data_tsens_v2;
 extern const struct tsens_plat_data data_ipq5332, data_ipq5424;