]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
arm64: dts: qcom: sc7180: coachz: Add thermal config for skin temperature
authorMatthias Kaehlcke <mka@chromium.org>
Wed, 14 Apr 2021 18:10:26 +0000 (11:10 -0700)
committerBjorn Andersson <bjorn.andersson@linaro.org>
Mon, 31 May 2021 18:05:59 +0000 (13:05 -0500)
Add ADC and thermal monitor configuration for skin temperature,
plus a thermal zone that monitors the skin temperature and uses
the big cores as cooling devices.

CoachZ rev1 is stuffed with an incompatible thermistor for the
skin temperature, disable the thermal zone for rev1 to avoid
the use of bogus temperature values.

Reviewed-by: Douglas Anderson <dianders@chromium.org>
Signed-off-by: Matthias Kaehlcke <mka@chromium.org>
Link: https://lore.kernel.org/r/20210414111007.v1.1.I1a438604a79025307f177347d45815987b105cb5@changeid
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
arch/arm64/boot/dts/qcom/sc7180-trogdor-coachz-r1.dts
arch/arm64/boot/dts/qcom/sc7180-trogdor-coachz.dtsi

index 28812334ed04b13e06a4c899c4e1c71bf39eeec6..21b516e0694a4b59e5dead41e3bb84a5c4022253 100644 (file)
        status = "disabled";
 };
 
+/*
+ * CoachZ rev1 is stuffed with a 47k NTC as thermistor for skin temperature,
+ * which currently is not supported by the PM6150 ADC driver. Disable the
+ * skin temperature thermal zone to avoid using bogus temperature values.
+ */
+&skin_temp_thermal {
+       status = "disabled";
+};
+
 &tlmm {
        gpio-line-names = "HUB_RST_L",
                          "AP_RAM_ID0",
index 4c6e433c8226a3dd7a422eca5fa45d8ee3aa4675..8c1146c5bdfee08fdea0858a4fbc20b3cd719c7a 100644 (file)
@@ -25,6 +25,50 @@ ap_h1_spi: &spi0 {};
                IOVDD-supply = <&pp1800_l15a>;
                #sound-dai-cells = <0>;
        };
+
+       thermal-zones {
+               skin_temp_thermal: skin-temp-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <0>;
+
+                       thermal-sensors = <&pm6150_adc_tm 1>;
+                       sustainable-power = <814>;
+
+                       trips {
+                               skin_temp_alert0: trip-point0 {
+                                       temperature = <42000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+
+                               skin_temp_alert1: trip-point1 {
+                                       temperature = <45000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+
+                               skin-temp-crit {
+                                       temperature = <60000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&skin_temp_alert0>;
+                                       cooling-device = <&CPU6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&CPU7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+
+                               map1 {
+                                       trip = <&skin_temp_alert1>;
+                                       cooling-device = <&CPU6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&CPU7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
+               };
+       };
 };
 
 &ap_spi_fp {
@@ -77,6 +121,25 @@ ap_ts_pen_1v8: &i2c4 {
        compatible = "boe,nv110wtm-n61";
 };
 
+&pm6150_adc {
+       skin-temp-thermistor@4e {
+               reg = <ADC5_AMUX_THM2_100K_PU>;
+               qcom,ratiometric;
+               qcom,hw-settle-time = <200>;
+       };
+};
+
+&pm6150_adc_tm {
+       status = "okay";
+
+       skin-temp-thermistor@1 {
+               reg = <1>;
+               io-channels = <&pm6150_adc ADC5_AMUX_THM2_100K_PU>;
+               qcom,ratiometric;
+               qcom,hw-settle-time-us = <200>;
+       };
+};
+
 &pp3300_dx_edp {
        gpio = <&tlmm 67 GPIO_ACTIVE_HIGH>;
 };