From 625ee7f1cec0cbca9f08bf8404b192347927e650 Mon Sep 17 00:00:00 2001 From: Priyansh Jain Date: Thu, 3 Mar 2022 14:12:16 +0530 Subject: [PATCH] ARM: dts: qcom: Enable support for cooling devices for parrot Enable CPU hotplug, CPU isolate, GPU, NSP, DDR cooling devices. Add cooling device mapping to thermalzones. Change-Id: I316157a50eb33aaf5689b47512624cf7b53c942f --- qcom/parrot-thermal.dtsi | 307 ++++++++++++++++++++++++++++++++++++++- qcom/parrot.dtsi | 8 + 2 files changed, 309 insertions(+), 6 deletions(-) diff --git a/qcom/parrot-thermal.dtsi b/qcom/parrot-thermal.dtsi index 51531327..12708156 100644 --- a/qcom/parrot-thermal.dtsi +++ b/qcom/parrot-thermal.dtsi @@ -1,5 +1,9 @@ #include +&msm_gpu { + #cooling-cells = <2>; +}; + &soc { tsens0: thermal-sensor@c263000 { compatible = "qcom,tsens-v2"; @@ -22,6 +26,178 @@ interrupt-names = "uplow","critical"; #thermal-sensor-cells = <1>; }; + + qcom,cpu-pause { + compatible = "qcom,thermal-pause"; + + cpu0_pause: cpu0-pause { + qcom,cpus = <&CPU0>; + #cooling-cells = <2>; + }; + + cpu1_pause: cpu1-pause { + qcom,cpus = <&CPU1>; + #cooling-cells = <2>; + }; + + cpu2_pause: cpu2-pause { + qcom,cpus = <&CPU2>; + #cooling-cells = <2>; + }; + + cpu3_pause: cpu3-pause { + qcom,cpus = <&CPU3>; + #cooling-cells = <2>; + }; + + cpu5_pause: cpu5-pause { + qcom,cpus = <&CPU5>; + #cooling-cells = <2>; + }; + + cpu6_pause: cpu6-pause { + qcom,cpus = <&CPU6>; + #cooling-cells = <2>; + }; + + cpu7_pause: cpu7-pause { + qcom,cpus = <&CPU7>; + #cooling-cells = <2>; + }; + + APC1_pause: apc1-pause { + qcom,cpus = <&CPU5 &CPU6 &CPU7>; + #cooling-cells = <2>; + }; + + cpu_6_7_pause: cpu-6-7-pause { + qcom,cpus = <&CPU6 &CPU7>; + #cooling-cells = <2>; + }; + + /* Thermal-engine cooling devices */ + pause-cpu0 { + qcom,cpus = <&CPU0>; + qcom,cdev-alias = "pause-cpu0"; + }; + + pause-cpu1 { + qcom,cpus = <&CPU1>; + qcom,cdev-alias = "pause-cpu1"; + }; + + pause-cpu2 { + qcom,cpus = <&CPU2>; + qcom,cdev-alias = "pause-cpu2"; + }; + + pause-cpu3 { + qcom,cpus = <&CPU3>; + qcom,cdev-alias = "pause-cpu3"; + }; + + pause-cpu5 { + qcom,cpus = <&CPU5>; + qcom,cdev-alias = "pause-cpu5"; + }; + + pause-cpu6 { + qcom,cpus = <&CPU6>; + qcom,cdev-alias = "pause-cpu6"; + }; + + pause-cpu7 { + qcom,cpus = <&CPU7>; + qcom,cdev-alias = "pause-cpu7"; + }; + }; + + qcom,cpu-hotplug { + compatible = "qcom,cpu-hotplug"; + + cpu0_hotplug: cpu0-hotplug { + qcom,cpu = <&CPU0>; + #cooling-cells = <2>; + }; + + cpu1_hotplug: cpu1-hotplug { + qcom,cpu = <&CPU1>; + #cooling-cells = <2>; + }; + + cpu2_hotplug: cpu2-hotplug { + qcom,cpu = <&CPU2>; + #cooling-cells = <2>; + }; + + cpu3_hotplug: cpu3-hotplug { + qcom,cpu = <&CPU3>; + #cooling-cells = <2>; + }; + + cpu5_hotplug: cpu5-hotplug { + qcom,cpu = <&CPU5>; + #cooling-cells = <2>; + }; + + cpu6_hotplug: cpu6-hotplug { + qcom,cpu = <&CPU6>; + #cooling-cells = <2>; + }; + + cpu7_hotplug: cpu7-hotplug { + qcom,cpu = <&CPU7>; + #cooling-cells = <2>; + }; + }; + + thermal_ddr_freq_table: thermal-ddr-freq-table { + qcom,freq-tbl = < 2092800 >; + }; + + ddr_cdev: qcom,ddr-cdev { + compatible = "qcom,ddr-cooling-device"; + #cooling-cells = <2>; + qcom,freq-table = <&thermal_ddr_freq_table>; + qcom,bus-width = <4>; + interconnects = <&mc_virt MASTER_LLCC &mc_virt SLAVE_EBI1>; + }; + + qmi_tmd: qmi-tmd-devices { + compatible = "qcom,qmi-cooling-devices"; + cdsp { + qcom,instance-id = ; + + cdsp_sw: cdsp { + qcom,qmi-dev-name = "cdsp_sw"; + #cooling-cells = <2>; + }; + + cdsp_hw: cdsp_hw { + qcom,qmi-dev-name = "cdsp_hw"; + #cooling-cells = <2>; + }; + }; + }; + + qcom,cpufreq-cdev { + compatible = "qcom,cpufreq-cdev"; + qcom,cpus = <&CPU0 &CPU4>; + }; + + qcom,devfreq-cdev { + compatible = "qcom,devfreq-cdev"; + qcom,devfreq = <&msm_gpu>; + }; + + qcom,userspace-cdev { + compatible = "qcom,userspace-cooling-devices"; + + display_fps: display-fps { + qcom,max-level = <3>; + #cooling-cells = <2>; + }; + }; }; &thermal_zones { @@ -145,7 +321,7 @@ }; cpu-1-2 { - polling-delay-passive = <0>; + polling-delay-passive = <10>; polling-delay = <0>; thermal-sensors = <&tsens0 5>; trips { @@ -173,10 +349,17 @@ type = "passive"; }; }; + + cooling-maps { + cpu12_cdev { + trip = <&cpu5_emerg0>; + cooling-device = <&cpu5_pause 1 1>; + }; + }; }; cpu-1-3 { - polling-delay-passive = <0>; + polling-delay-passive = <10>; polling-delay = <0>; thermal-sensors = <&tsens0 6>; trips { @@ -204,10 +387,17 @@ type = "passive"; }; }; + + cooling-maps { + cpu13_cdev { + trip = <&cpu5_emerg1>; + cooling-device = <&cpu5_pause 1 1>; + }; + }; }; cpu-1-4 { - polling-delay-passive = <0>; + polling-delay-passive = <10>; polling-delay = <0>; thermal-sensors = <&tsens0 7>; trips { @@ -235,10 +425,17 @@ type = "passive"; }; }; + + cooling-maps { + cpu14_cdev { + trip = <&cpu6_emerg0>; + cooling-device = <&cpu6_pause 1 1>; + }; + }; }; cpu-1-5 { - polling-delay-passive = <0>; + polling-delay-passive = <10>; polling-delay = <0>; thermal-sensors = <&tsens0 8>; trips { @@ -266,10 +463,17 @@ type = "passive"; }; }; + + cooling-maps { + cpu15_cdev { + trip = <&cpu6_emerg1>; + cooling-device = <&cpu6_pause 1 1>; + }; + }; }; cpu-1-6 { - polling-delay-passive = <0>; + polling-delay-passive = <10>; polling-delay = <0>; thermal-sensors = <&tsens0 9>; trips { @@ -297,10 +501,17 @@ type = "passive"; }; }; + + cooling-maps { + cpu16_cdev { + trip = <&cpu7_emerg0>; + cooling-device = <&cpu7_pause 1 1>; + }; + }; }; cpu-1-7 { - polling-delay-passive = <0>; + polling-delay-passive = <10>; polling-delay = <0>; thermal-sensors = <&tsens0 10>; trips { @@ -328,6 +539,13 @@ type = "passive"; }; }; + + cooling-maps { + cpu17_cdev { + trip = <&cpu7_emerg1>; + cooling-device = <&cpu7_pause 1 1>; + }; + }; }; gpuss-0 { @@ -359,6 +577,13 @@ type = "passive"; }; }; + + cooling-maps { + gpu0_cdev { + trip = <&gpu0_tj_cfg>; + cooling-device = <&msm_gpu 0 THERMAL_NO_LIMIT>; + }; + }; }; gpuss-1 { @@ -390,6 +615,13 @@ type = "passive"; }; }; + + cooling-maps { + gpu1_cdev { + trip = <&gpu1_tj_cfg>; + cooling-device = <&msm_gpu 0 THERMAL_NO_LIMIT>; + }; + }; }; camera-0 { @@ -459,6 +691,13 @@ type = "passive"; }; }; + + cooling-maps { + cpu00_cdev { + trip = <&cpu0_emerg>; + cooling-device = <&cpu0_pause 1 1>; + }; + }; }; cpu-0-1 { @@ -490,6 +729,13 @@ type = "passive"; }; }; + + cooling-maps { + cpu01_cdev { + trip = <&cpu1_emerg>; + cooling-device = <&cpu1_pause 1 1>; + }; + }; }; cpu-0-2 { @@ -521,6 +767,13 @@ type = "passive"; }; }; + + cooling-maps { + cpu02_cdev { + trip = <&cpu2_emerg>; + cooling-device = <&cpu2_pause 1 1>; + }; + }; }; cpu-0-3 { @@ -552,6 +805,13 @@ type = "passive"; }; }; + + cooling-maps { + cpu03_cdev { + trip = <&cpu3_emerg>; + cooling-device = <&cpu3_pause 1 1>; + }; + }; }; nspss-0 { @@ -583,6 +843,14 @@ type = "passive"; }; }; + + cooling-maps { + nsp_cdev { + trip = <&nspss_0_config>; + cooling-device = <&cdsp_sw THERMAL_NO_LIMIT + THERMAL_NO_LIMIT>; + }; + }; }; nspss-1 { @@ -614,6 +882,14 @@ type = "passive"; }; }; + + cooling-maps { + nsp_cdev { + trip = <&nspss_1_config>; + cooling-device = <&cdsp_sw THERMAL_NO_LIMIT + THERMAL_NO_LIMIT>; + }; + }; }; video { @@ -658,6 +934,25 @@ type = "passive"; }; }; + + cooling-maps { + gold_cdev { + trip = <&ddr_config0>; + cooling-device = <&CPU4 + THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; + }; + + gold_plus_cdev { + trip = <&ddr_config0>; + cooling-device = <&CPU7 + THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; + }; + + ddr_cdev { + trip = <&ddr_config0>; + cooling-device = <&ddr_cdev 1 1>; + }; + }; }; mdmss-0 { diff --git a/qcom/parrot.dtsi b/qcom/parrot.dtsi index 34e5d2b2..bdc238cc 100644 --- a/qcom/parrot.dtsi +++ b/qcom/parrot.dtsi @@ -54,6 +54,7 @@ power-domain-names = "psci"; qcom,freq-domain = <&cpufreq_hw 0 4>; next-level-cache = <&L2_0>; + #cooling-cells = <2>; L2_0: l2-cache { compatible = "arm,arch-cache"; cache-level = <2>; @@ -78,6 +79,7 @@ power-domain-names = "psci"; qcom,freq-domain = <&cpufreq_hw 0 4>; next-level-cache = <&L2_1>; + #cooling-cells = <2>; L2_1: l2-cache { compatible = "arm,arch-cache"; cache-level = <2>; @@ -97,6 +99,7 @@ power-domain-names = "psci"; qcom,freq-domain = <&cpufreq_hw 0 4>; next-level-cache = <&L2_2>; + #cooling-cells = <2>; L2_2: l2-cache { compatible = "arm,arch-cache"; cache-level = <2>; @@ -116,6 +119,7 @@ power-domain-names = "psci"; qcom,freq-domain = <&cpufreq_hw 0 4>; next-level-cache = <&L2_3>; + #cooling-cells = <2>; L2_3: l2-cache { compatible = "arm,arch-cache"; cache-level = <2>; @@ -134,6 +138,7 @@ power-domains = <&CPU_PD4>; power-domain-names = "psci"; qcom,freq-domain = <&cpufreq_hw 1 4>; + #cooling-cells = <2>; L2_4: l2-cache { compatible = "arm,arch-cache"; cache-level = <2>; @@ -153,6 +158,7 @@ power-domain-names = "psci"; qcom,freq-domain = <&cpufreq_hw 1 4>; next-level-cache = <&L2_5>; + #cooling-cells = <2>; L2_5: l2-cache { compatible = "arm,arch-cache"; cache-level = <2>; @@ -172,6 +178,7 @@ power-domain-names = "psci"; qcom,freq-domain = <&cpufreq_hw 1 4>; next-level-cache = <&L2_6>; + #cooling-cells = <2>; L2_6: l2-cache { compatible = "arm,arch-cache"; cache-level = <2>; @@ -191,6 +198,7 @@ power-domain-names = "psci"; qcom,freq-domain = <&cpufreq_hw 1 4>; next-level-cache = <&L2_7>; + #cooling-cells = <2>; L2_7: l2-cache { compatible = "arm,arch-cache"; cache-level = <2>;