thermal/drivers/tsens: Add IPQ8074 support
authorRobert Marko <robimarko@gmail.com>
Thu, 18 Aug 2022 22:02:44 +0000 (00:02 +0200)
committerDaniel Lezcano <daniel.lezcano@kernel.org>
Wed, 14 Dec 2022 14:25:40 +0000 (15:25 +0100)
Qualcomm IPQ8074 uses tsens v2.3 IP, however unlike other tsens v2 IP
it only has one IRQ, that is used for up/low as well as critical.
It also does not support negative trip temperatures.

Signed-off-by: Robert Marko <robimarko@gmail.com>
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Link: https://lore.kernel.org/r/20220818220245.338396-4-robimarko@gmail.com
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
drivers/thermal/qcom/tsens-v2.c
drivers/thermal/qcom/tsens.c
drivers/thermal/qcom/tsens.h

index 9babc69bfd22e00b789a941edfcb242e99ff094f..29a61d2d6ca312c715a086e848ae0978aaf7dbd2 100644 (file)
@@ -39,6 +39,17 @@ static struct tsens_features tsens_v2_feat = {
        .trip_max_temp  = 120000,
 };
 
+static struct tsens_features ipq8074_feat = {
+       .ver_major      = VER_2_X,
+       .crit_int       = 1,
+       .combo_int      = 1,
+       .adc            = 0,
+       .srot_split     = 1,
+       .max_sensors    = 16,
+       .trip_min_temp  = 0,
+       .trip_max_temp  = 204000,
+};
+
 static const struct reg_field tsens_v2_regfields[MAX_REGFIELDS] = {
        /* ----- SROT ------ */
        /* VERSION */
@@ -104,6 +115,12 @@ struct tsens_plat_data data_tsens_v2 = {
        .fields = tsens_v2_regfields,
 };
 
+struct tsens_plat_data data_ipq8074 = {
+       .ops            = &ops_generic_v2,
+       .feat           = &ipq8074_feat,
+       .fields = tsens_v2_regfields,
+};
+
 /* Kept around for backward compatibility with old msm8996.dtsi */
 struct tsens_plat_data data_8996 = {
        .num_sensors    = 13,
index f31510489a9abf1c3db31e6d2ef3a9ae05958d44..b7d978295b2f9d131ada00a1db87584cb466c7fa 100644 (file)
@@ -980,6 +980,9 @@ static const struct of_device_id tsens_table[] = {
        {
                .compatible = "qcom,ipq8064-tsens",
                .data = &data_8960,
+       }, {
+               .compatible = "qcom,ipq8074-tsens",
+               .data = &data_ipq8074,
        }, {
                .compatible = "qcom,mdm9607-tsens",
                .data = &data_9607,
index 8dc21ca0f2a3fcb804c86d94d41cae01c3bb58b8..899af128855f74dd376d5685aefde76013b8246a 100644 (file)
@@ -597,6 +597,6 @@ extern struct tsens_plat_data data_8916, data_8939, data_8974, data_9607;
 extern struct tsens_plat_data data_tsens_v1, data_8976;
 
 /* TSENS v2 targets */
-extern struct tsens_plat_data data_8996, data_tsens_v2;
+extern struct tsens_plat_data data_8996, data_ipq8074, data_tsens_v2;
 
 #endif /* __QCOM_TSENS_H__ */