| From e214e895c37e478f7c3f86bd29a22442c18ef793 Mon Sep 17 00:00:00 2001 |
| From: Matthias Kaehlcke <mka@chromium.org> |
| Date: Thu, 15 Apr 2021 13:04:00 -0700 |
| Subject: [PATCH] FROMLIST: arm64: dts: qcom: sc7180: coachz: Add thermal |
| config for skin temperature |
| |
| 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. |
| |
| Signed-off-by: Matthias Kaehlcke <mka@chromium.org> |
| (am from https://patchwork.kernel.org/project/linux-arm-msm/patch/20210414111007.v1.1.I1a438604a79025307f177347d45815987b105cb5@changeid/) |
| |
| BUG=b:177008768 |
| TEST=data from ODM confirms that with a high CPU load skin |
| temperature remains <= 45degC and throttling isn't overly |
| aggressive. |
| |
| Change-Id: I1a438604a79025307f177347d45815987b105cb5 |
| Signed-off-by: Matthias Kaehlcke <mka@chromium.org> |
| Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/2718273 |
| Reviewed-by: Sean Paul <seanpaul@chromium.org> |
| Reviewed-by: Douglas Anderson <dianders@chromium.org> |
| Commit-Queue: Douglas Anderson <dianders@chromium.org> |
| (cherry picked from commit feb8000f04e357f0068df995c2786aab7ad21f12) |
| Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/2831390 |
| --- |
| .../dts/qcom/sc7180-trogdor-coachz-r1.dts | 9 +++ |
| .../boot/dts/qcom/sc7180-trogdor-coachz.dtsi | 63 +++++++++++++++++++ |
| 2 files changed, 72 insertions(+) |
| |
| diff --git a/arch/arm64/boot/dts/qcom/sc7180-trogdor-coachz-r1.dts b/arch/arm64/boot/dts/qcom/sc7180-trogdor-coachz-r1.dts |
| index 1b1dbdb2a82f..d86906ab0b6a 100644 |
| --- a/arch/arm64/boot/dts/qcom/sc7180-trogdor-coachz-r1.dts |
| +++ b/arch/arm64/boot/dts/qcom/sc7180-trogdor-coachz-r1.dts |
| @@ -14,6 +14,15 @@ / { |
| compatible = "google,coachz-rev1", "qcom,sc7180"; |
| }; |
| |
| +/* |
| + * 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", |
| diff --git a/arch/arm64/boot/dts/qcom/sc7180-trogdor-coachz.dtsi b/arch/arm64/boot/dts/qcom/sc7180-trogdor-coachz.dtsi |
| index 4c6e433c8226..8c1146c5bdfe 100644 |
| --- a/arch/arm64/boot/dts/qcom/sc7180-trogdor-coachz.dtsi |
| +++ b/arch/arm64/boot/dts/qcom/sc7180-trogdor-coachz.dtsi |
| @@ -25,6 +25,50 @@ adau7002: audio-codec-1 { |
| 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 @@ &panel { |
| 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>; |
| }; |
| -- |
| 2.31.1.607.g51e8a6a459-goog |
| |