diff --git a/qcom/holi-cdp-pm6125.dtsi b/qcom/holi-cdp-pm6125.dtsi index 4e49a2f06448..b6f3cd4993cc 100644 --- a/qcom/holi-cdp-pm6125.dtsi +++ b/qcom/holi-cdp-pm6125.dtsi @@ -2,6 +2,7 @@ #include #include #include "holi-pmic-overlay-pm6125.dtsi" +#include "holi-thermal-overlay-pm6125.dtsi" #include "display/holi-sde-display-cdp-pm6125.dtsi" #include #include "camera/holi-camera-pm6125-overlay.dtsi" diff --git a/qcom/holi-mtp-pm6125.dtsi b/qcom/holi-mtp-pm6125.dtsi index 9238fc933bd2..b67078e00d9a 100644 --- a/qcom/holi-mtp-pm6125.dtsi +++ b/qcom/holi-mtp-pm6125.dtsi @@ -2,6 +2,7 @@ #include #include #include "holi-pmic-overlay-pm6125.dtsi" +#include "holi-thermal-overlay-pm6125.dtsi" #include "display/holi-sde-display-mtp-pm6125.dtsi" #include #include "camera/holi-camera-pm6125-overlay.dtsi" diff --git a/qcom/holi-mtp-usbc-pm6125.dtsi b/qcom/holi-mtp-usbc-pm6125.dtsi index 7513687694f9..dc9f8d83d832 100644 --- a/qcom/holi-mtp-usbc-pm6125.dtsi +++ b/qcom/holi-mtp-usbc-pm6125.dtsi @@ -2,6 +2,7 @@ #include #include #include "holi-pmic-overlay-pm6125.dtsi" +#include "holi-thermal-overlay-pm6125.dtsi" #include "display/holi-sde-display-mtp-pm6125.dtsi" #include #include "camera/holi-camera-pm6125-overlay.dtsi" diff --git a/qcom/holi-qrd-pm6125.dtsi b/qcom/holi-qrd-pm6125.dtsi index 4a89749a9f4c..a8614cb12b42 100644 --- a/qcom/holi-qrd-pm6125.dtsi +++ b/qcom/holi-qrd-pm6125.dtsi @@ -1,6 +1,7 @@ #include #include #include "holi-pmic-overlay-pm6125.dtsi" +#include "holi-thermal-overlay-pm6125.dtsi" #include &sdhc_1 { @@ -315,3 +316,234 @@ qcom,parallel-output-mode = <2>; /* VBAT */ status = "ok"; }; + +&thermal_zones { + quiet-therm-step { + polling-delay-passive = <2000>; + polling-delay = <0>; + thermal-governor = "step_wise"; + thermal-sensors = <&pm6125_adc_tm ADC5_AMUX_THM2_100K_PU>; + trips { + battery_trip0: battery-trip0 { + temperature = <42000>; + hysteresis = <2000>; + type = "passive"; + }; + + modem_skin_trip0: modem-skin-trip0 { + temperature = <42000>; + hysteresis = <4000>; + type = "passive"; + }; + + gold_trip: gold-trip { + temperature = <43000>; + hysteresis = <0>; + type = "passive"; + }; + + battery_trip1: battery-trip1 { + temperature = <44000>; + hysteresis = <2000>; + type = "passive"; + }; + + modem_skin_trip1: modem-skin-trip1 { + temperature = <44000>; + hysteresis = <4000>; + type = "passive"; + }; + + silver_trip: silver-trip { + temperature = <45000>; + hysteresis = <0>; + type = "passive"; + }; + + battery_trip2: battery-trip2 { + temperature = <46000>; + hysteresis = <2000>; + type = "passive"; + }; + + battery_trip3: battery-trip3 { + temperature = <47000>; + hysteresis = <1000>; + type = "passive"; + }; + + battery_trip4: battery-trip4 { + temperature = <48000>; + hysteresis = <1000>; + type = "passive"; + }; + + cx_trip: cx-trip { + temperature = <55000>; + hysteresis = <5000>; + type = "passive"; + }; + }; + + cooling-maps { + cdsp-cdev { + trip = <&cx_trip>; + cooling-device = <&cdsp_sw 4 4>; + }; + + gpu-cdev0 { + trip = <&modem_skin_trip1>; + /* throttle to 650000000Hz */ + cooling-device = <&msm_gpu (THERMAL_MAX_LIMIT-4) + (THERMAL_MAX_LIMIT-4)>; + }; + + gpu-cdev1 { + trip = <&cx_trip>; + /* throttle to 565000000Hz */ + cooling-device = <&msm_gpu (THERMAL_MAX_LIMIT-3) + (THERMAL_MAX_LIMIT-3)>; + }; + + silver-cdev { + trip = <&silver_trip>; + /* throttle to 1478400KHz */ + cooling-device = <&CPU0 (THERMAL_MAX_LIMIT-6) + (THERMAL_MAX_LIMIT-6)>; + }; + + gold-cdev { + trip = <&gold_trip>; + /* throttle to 1536000KHz */ + cooling-device = <&CPU6 (THERMAL_MAX_LIMIT-5) + (THERMAL_MAX_LIMIT-5)>; + }; + + modem-skin-cdev0 { + trip = <&modem_skin_trip0>; + cooling-device = <&modem_skin 1 1>; + }; + + modem-skin-cdev1 { + trip = <&modem_skin_trip1>; + cooling-device = <&modem_skin 2 2>; + }; + + modem-skin-cdev2 { + trip = <&cx_trip>; + cooling-device = <&modem_skin 3 3>; + }; + + battery-cdev0 { + trip = <&battery_trip0>; + cooling-device = <&pm7250b_charger 6 6>; + }; + + battery-cdev1 { + trip = <&battery_trip1>; + cooling-device = <&pm7250b_charger 10 10>; + }; + + battery-cdev2 { + trip = <&battery_trip2>; + cooling-device = <&pm7250b_charger 14 14>; + }; + + battery-cdev3 { + trip = <&battery_trip3>; + cooling-device = <&pm7250b_charger 16 16>; + }; + + battery-cdev4 { + trip = <&battery_trip4>; + cooling-device = <&pm7250b_charger 18 18>; + }; + }; + }; + + pa-therm0-step { + polling-delay-passive = <0>; + polling-delay = <0>; + thermal-governor = "step_wise"; + thermal-sensors = <&pm6125_adc_tm ADC5_AMUX_THM1_100K_PU>; + trips { + modem_trip0: modem-trip0 { + temperature = <46000>; + hysteresis = <4000>; + type = "passive"; + }; + + modem_trip1: modem-trip1 { + temperature = <47000>; + hysteresis = <4000>; + type = "passive"; + }; + + modem_trip2: modem-trip2 { + temperature = <54000>; + hysteresis = <4000>; + type = "passive"; + }; + }; + + cooling-maps { + modem-cdev0 { + trip = <&modem_trip0>; + cooling-device = <&modem_pa 1 1>; + }; + + modem-cdev1 { + trip = <&modem_trip1>; + cooling-device = <&modem_pa 2 2>; + }; + + modem-cdev2 { + trip = <&modem_trip2>; + cooling-device = <&modem_pa 3 3>; + }; + }; + }; + + xo-therm-step { + polling-delay-passive = <0>; + polling-delay = <0>; + thermal-governor = "step_wise"; + thermal-sensors = <&pmk8350_adc_tm PMK8350_ADC7_AMUX_THM1_100K_PU>; + trips { + modem_pa_fr1_trip0: modem-pa-fr1-trip0 { + temperature = <45000>; + hysteresis = <4000>; + type = "passive"; + }; + + modem_pa_fr1_trip1: modem-pa-fr1-trip1 { + temperature = <46000>; + hysteresis = <4000>; + type = "passive"; + }; + + modem_pa_fr1_trip2: modem-pa-fr1-trip2 { + temperature = <56000>; + hysteresis = <4000>; + type = "passive"; + }; + }; + + cooling-maps { + modem_pa_fr1_cdev0 { + trip = <&modem_pa_fr1_trip0>; + cooling-device = <&modem_pa_fr1 1 1>; + }; + + modem_pa_fr1_cdev1 { + trip = <&modem_pa_fr1_trip1>; + cooling-device = <&modem_pa_fr1 2 2>; + }; + + modem_pa_fr1_cdev2 { + trip = <&modem_pa_fr1_trip2>; + cooling-device = <&modem_pa_fr1 3 3>; + }; + }; + }; +}; diff --git a/qcom/holi-regulators-pm6125.dtsi b/qcom/holi-regulators-pm6125.dtsi index 69afd4ccc6f4..519b66a0b9d6 100644 --- a/qcom/holi-regulators-pm6125.dtsi +++ b/qcom/holi-regulators-pm6125.dtsi @@ -433,9 +433,13 @@ qcom,use-voltage-level; }; - /* Dummy node */ gfx_cdev: gfx-cdev { - status = "disabled"; + status = "okay"; + compatible = "qcom,regulator-cooling-device"; + regulator-cdev-supply = <&S8A_LEVEL_AO>; + regulator-levels = ; + #cooling-cells = <2>; }; }; @@ -747,9 +751,13 @@ qcom,use-voltage-level; }; - /* Dummy node */ mx_cdev: mx-cdev-lvl { - status = "disabled"; + status = "okay"; + compatible = "qcom,regulator-cooling-device"; + regulator-cdev-supply = <&S1E_LEVEL>; + regulator-levels = ; + #cooling-cells = <2>; }; }; @@ -801,9 +809,13 @@ qcom,use-voltage-level; }; - /* Dummy node */ cx_cdev: cx-cdev-lvl { - status = "disabled"; + status = "okay"; + compatible = "qcom,regulator-cooling-device"; + regulator-cdev-supply = <&S2E_FLOOR_LEVEL>; + regulator-levels = ; + #cooling-cells = <2>; }; }; diff --git a/qcom/holi-thermal-overlay-pm6125.dtsi b/qcom/holi-thermal-overlay-pm6125.dtsi new file mode 100644 index 000000000000..7dd3277d4899 --- /dev/null +++ b/qcom/holi-thermal-overlay-pm6125.dtsi @@ -0,0 +1,134 @@ +#include + +&mdss_mdp { + #cooling-cells = <2>; +}; + +&pm7250b_charger { + #cooling-cells = <2>; +}; + +&thermal_zones { + socd { + cooling-maps { + socd_cpu6 { + trip = <&socd_trip>; + cooling-device = <&cpu6_isolate 1 1>; + }; + + socd_cpu7 { + trip = <&socd_trip>; + cooling-device = <&cpu7_isolate 1 1>; + }; + }; + }; + + pm7250b_tz { + cooling-maps { + battery_cdev0 { + trip = <&pm7250b_trip0>; + cooling-device = + <&pm7250b_charger (THERMAL_MAX_LIMIT-1) + (THERMAL_MAX_LIMIT-1)>; + }; + + battery_cdev1 { + trip = <&pm7250b_trip1>; + cooling-device = + <&pm7250b_charger THERMAL_MAX_LIMIT + THERMAL_MAX_LIMIT>; + }; + }; + }; + + pm6125_tz { + cooling-maps { + trip0_cpu6 { + trip = <&pm6125_trip0>; + cooling-device = + <&CPU6 THERMAL_MAX_LIMIT + THERMAL_MAX_LIMIT>; + }; + + trip1_cpu4 { + trip = <&pm6125_trip0>; + cooling-device = <&cpu4_isolate 1 1>; + }; + + trip1_cpu5 { + trip = <&pm6125_trip0>; + cooling-device = <&cpu5_isolate 1 1>; + }; + + trip1_cpu6 { + trip = <&pm6125_trip0>; + cooling-device = <&cpu6_isolate 1 1>; + }; + + trip1_cpu7 { + trip = <&pm6125_trip0>; + cooling-device = <&cpu7_isolate 1 1>; + }; + }; + }; + + pmr735a_tz { + cooling-maps { + trip0_modem_tj { + trip = <&pmr735a_trip0>; + cooling-device = + <&modem_tj THERMAL_MAX_LIMIT + THERMAL_MAX_LIMIT>; + }; + + trip0_modem_pa { + trip = <&pmr735a_trip0>; + cooling-device = + <&modem_pa THERMAL_MAX_LIMIT + THERMAL_MAX_LIMIT>; + }; + }; + }; + + pm7250b-bcl-lvl0 { + cooling-maps { + lbat0_cpu6 { + trip = <&b_bcl_lvl0>; + cooling-device = <&cpu6_isolate 1 1>; + }; + + lbat0_cpu7 { + trip = <&b_bcl_lvl0>; + cooling-device = <&cpu7_isolate 1 1>; + }; + }; + }; + + pm7250b-bcl-lvl1 { + cooling-maps { + lbat1_cpu6 { + trip = <&b_bcl_lvl1>; + cooling-device = <&cpu6_isolate 1 1>; + }; + + lbat1_cpu7 { + trip = <&b_bcl_lvl1>; + cooling-device = <&cpu7_isolate 1 1>; + }; + }; + }; + + pm7250b-bcl-lvl2 { + cooling-maps { + lbat2_cpu6 { + trip = <&b_bcl_lvl2>; + cooling-device = <&cpu6_isolate 1 1>; + }; + + lbat2_cpu7 { + trip = <&b_bcl_lvl2>; + cooling-device = <&cpu7_isolate 1 1>; + }; + }; + }; +}; diff --git a/qcom/pm6125.dtsi b/qcom/pm6125.dtsi index 7df8eb71874b..0d412a640202 100644 --- a/qcom/pm6125.dtsi +++ b/qcom/pm6125.dtsi @@ -145,3 +145,32 @@ }; }; }; + +&thermal_zones { + pm6125_tz { + polling-delay-passive = <100>; + polling-delay = <0>; + thermal-governor = "step_wise"; + thermal-sensors = <&pm6125_tz>; + + trips { + pm6125_trip0: trip0 { + temperature = <95000>; + hysteresis = <0>; + type = "passive"; + }; + + pm6125_trip1: trip1 { + temperature = <115000>; + hysteresis = <0>; + type = "critical"; + }; + + pm6125_trip2: trip2 { + temperature = <145000>; + hysteresis = <0>; + type = "critical"; + }; + }; + }; +};