diff --git a/qcom/sun-thermal.dtsi b/qcom/sun-thermal.dtsi index 78f62b03..c0a7eb03 100644 --- a/qcom/sun-thermal.dtsi +++ b/qcom/sun-thermal.dtsi @@ -5,6 +5,10 @@ #include +&msm_gpu { + #cooling-cells = <2>; +}; + &soc { tsens0: tsens0@c228000 { compatible = "qcom,tsens-v2"; @@ -49,6 +53,161 @@ 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>; + }; + + cpu4_pause: cpu4-pause { + qcom,cpus = <&CPU4>; + #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>; + }; + + //TODO: what about core 0, we can't pause all? + APC0_MX_CX_PAUSE: apc0-mx-cx-pause { + qcom,cpus = <&CPU1 &CPU2 &CPU3 &CPU4 &CPU5>; + #cooling-cells = <2>; + }; + + APC1_MX_CX_PAUSE: apc1-mx-cx-pause { + qcom,cpus = <&CPU6 &CPU7>; + #cooling-cells = <2>; + }; + + cpu_1_2_3_4_5_pause: cpu-1-2-3-4-5-pause { + qcom,cpus = <&CPU1 &CPU2 &CPU3 &CPU4 &CPU5>; + #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-cpu4 { + qcom,cpus = <&CPU4>; + qcom,cdev-alias = "pause-cpu4"; + }; + + 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>; + }; + + cpu4_hotplug: cpu4-hotplug { + qcom,cpu = <&CPU4>; + #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>; + }; + }; + + qcom,devfreq-cdev { + compatible = "qcom,devfreq-cdev"; + qcom,devfreq = <&msm_gpu>; + }; }; &thermal_zones { @@ -106,6 +265,18 @@ type = "passive"; }; }; + + cooling-maps { + cpu000_cdev { + trip = <&cpu0_emerg0>; + cooling-device = <&cpu0_pause 1 1>; + }; + + cpu000_cdev1 { + trip = <&cpu0_emerg0_1>; + cooling-device = <&cpu0_hotplug 1 1>; + }; + }; }; cpu-0-0-1 { @@ -143,6 +314,18 @@ type = "passive"; }; }; + + cooling-maps { + cpu001_cdev { + trip = <&cpu0_emerg1>; + cooling-device = <&cpu0_pause 1 1>; + }; + + cpu001_cdev1 { + trip = <&cpu0_emerg1_1>; + cooling-device = <&cpu0_hotplug 1 1>; + }; + }; }; cpu-0-1-0 { @@ -180,6 +363,18 @@ type = "passive"; }; }; + + cooling-maps { + cpu010_cdev { + trip = <&cpu1_emerg0>; + cooling-device = <&cpu1_pause 1 1>; + }; + + cpu010_cdev1 { + trip = <&cpu1_emerg0_1>; + cooling-device = <&cpu1_hotplug 1 1>; + }; + }; }; cpu-0-1-1 { @@ -217,6 +412,18 @@ type = "passive"; }; }; + + cooling-maps { + cpu011_cdev { + trip = <&cpu1_emerg1>; + cooling-device = <&cpu1_pause 1 1>; + }; + + cpu011_cdev1 { + trip = <&cpu1_emerg1_1>; + cooling-device = <&cpu1_hotplug 1 1>; + }; + }; }; cpu-0-2-0 { @@ -254,6 +461,18 @@ type = "passive"; }; }; + + cooling-maps { + cpu020_cdev { + trip = <&cpu2_emerg0>; + cooling-device = <&cpu2_pause 1 1>; + }; + + cpu020_cdev1 { + trip = <&cpu2_emerg0_1>; + cooling-device = <&cpu2_hotplug 1 1>; + }; + }; }; cpu-0-2-1 { @@ -291,6 +510,18 @@ type = "passive"; }; }; + + cooling-maps { + cpu021_cdev { + trip = <&cpu2_emerg1>; + cooling-device = <&cpu2_pause 1 1>; + }; + + cpu021_cdev1 { + trip = <&cpu2_emerg1_1>; + cooling-device = <&cpu2_hotplug 1 1>; + }; + }; }; cpu-0-3-0 { @@ -328,6 +559,18 @@ type = "passive"; }; }; + + cooling-maps { + cpu030_cdev { + trip = <&cpu3_emerg0>; + cooling-device = <&cpu3_pause 1 1>; + }; + + cpu030_cdev1 { + trip = <&cpu3_emerg0_1>; + cooling-device = <&cpu3_hotplug 1 1>; + }; + }; }; cpu-0-3-1 { @@ -365,6 +608,18 @@ type = "passive"; }; }; + + cooling-maps { + cpu031_cdev { + trip = <&cpu3_emerg1>; + cooling-device = <&cpu3_pause 1 1>; + }; + + cpu031_cdev1 { + trip = <&cpu3_emerg1_1>; + cooling-device = <&cpu3_hotplug 1 1>; + }; + }; }; cpu-0-4-0 { @@ -402,6 +657,18 @@ type = "passive"; }; }; + + cooling-maps { + cpu040_cdev { + trip = <&cpu4_emerg0>; + cooling-device = <&cpu4_pause 1 1>; + }; + + cpu040_cdev1 { + trip = <&cpu4_emerg0_1>; + cooling-device = <&cpu4_hotplug 1 1>; + }; + }; }; cpu-0-4-1 { @@ -439,6 +706,18 @@ type = "passive"; }; }; + + cooling-maps { + cpu041_cdev { + trip = <&cpu4_emerg1>; + cooling-device = <&cpu4_pause 1 1>; + }; + + cpu041_cdev1 { + trip = <&cpu4_emerg1_1>; + cooling-device = <&cpu4_hotplug 1 1>; + }; + }; }; cpu-0-5-0 { @@ -476,6 +755,18 @@ type = "passive"; }; }; + + cooling-maps { + cpu050_cdev { + trip = <&cpu5_emerg0>; + cooling-device = <&cpu5_pause 1 1>; + }; + + cpu050_cdev1 { + trip = <&cpu5_emerg0_1>; + cooling-device = <&cpu5_hotplug 1 1>; + }; + }; }; cpu-0-5-1 { @@ -513,6 +804,18 @@ type = "passive"; }; }; + + cooling-maps { + cpu051_cdev { + trip = <&cpu5_emerg1>; + cooling-device = <&cpu5_pause 1 1>; + }; + + cpu051_cdev1 { + trip = <&cpu5_emerg1_1>; + cooling-device = <&cpu5_hotplug 1 1>; + }; + }; }; cpuss-0-0 { @@ -607,6 +910,18 @@ type = "passive"; }; }; + + cooling-maps { + cpu100_cdev { + trip = <&cpu6_emerg0>; + cooling-device = <&cpu6_pause 1 1>; + }; + + cpu100_cdev1 { + trip = <&cpu6_emerg0_1>; + cooling-device = <&cpu6_hotplug 1 1>; + }; + }; }; cpu-1-0-1 { @@ -644,6 +959,18 @@ type = "passive"; }; }; + + cooling-maps { + cpu101_cdev { + trip = <&cpu6_emerg1>; + cooling-device = <&cpu6_pause 1 1>; + }; + + cpu101_cdev1 { + trip = <&cpu6_emerg1_1>; + cooling-device = <&cpu6_hotplug 1 1>; + }; + }; }; cpu-1-1-0 { @@ -681,6 +1008,18 @@ type = "passive"; }; }; + + cooling-maps { + cpu110_cdev { + trip = <&cpu7_emerg0>; + cooling-device = <&cpu7_pause 1 1>; + }; + + cpu110_cdev1 { + trip = <&cpu7_emerg0_1>; + cooling-device = <&cpu7_hotplug 1 1>; + }; + }; }; cpu-1-1-1 { @@ -718,6 +1057,18 @@ type = "passive"; }; }; + + cooling-maps { + cpu111_cdev { + trip = <&cpu7_emerg1>; + cooling-device = <&cpu7_pause 1 1>; + }; + + cpu111_cdev1 { + trip = <&cpu7_emerg1_1>; + cooling-device = <&cpu7_hotplug 1 1>; + }; + }; }; cpuss-1-0 { @@ -1006,6 +1357,13 @@ type = "passive"; }; }; + + cooling-maps { + gpu0_cdev { + trip = <&gpu0_tj_cfg>; + cooling-device = <&msm_gpu 0 THERMAL_NO_LIMIT>; + }; + }; }; gpuss-1 { @@ -1037,6 +1395,13 @@ type = "passive"; }; }; + + cooling-maps { + gpu1_cdev { + trip = <&gpu1_tj_cfg>; + cooling-device = <&msm_gpu 0 THERMAL_NO_LIMIT>; + }; + }; }; gpuss-2 { @@ -1068,6 +1433,13 @@ type = "passive"; }; }; + + cooling-maps { + gpu2_cdev { + trip = <&gpu2_tj_cfg>; + cooling-device = <&msm_gpu 0 THERMAL_NO_LIMIT>; + }; + }; }; gpuss-3 { @@ -1099,6 +1471,13 @@ type = "passive"; }; }; + + cooling-maps { + gpu3_cdev { + trip = <&gpu3_tj_cfg>; + cooling-device = <&msm_gpu 0 THERMAL_NO_LIMIT>; + }; + }; }; gpuss-4 { @@ -1130,6 +1509,13 @@ type = "passive"; }; }; + + cooling-maps { + gpu4_cdev { + trip = <&gpu4_tj_cfg>; + cooling-device = <&msm_gpu 0 THERMAL_NO_LIMIT>; + }; + }; }; gpuss-5 { @@ -1161,6 +1547,13 @@ type = "passive"; }; }; + + cooling-maps { + gpu5_cdev { + trip = <&gpu5_tj_cfg>; + cooling-device = <&msm_gpu 0 THERMAL_NO_LIMIT>; + }; + }; }; gpuss-6 { @@ -1192,6 +1585,13 @@ type = "passive"; }; }; + + cooling-maps { + gpu6_cdev { + trip = <&gpu6_tj_cfg>; + cooling-device = <&msm_gpu 0 THERMAL_NO_LIMIT>; + }; + }; }; gpuss-7 { @@ -1223,6 +1623,13 @@ type = "passive"; }; }; + + cooling-maps { + gpu7_cdev { + trip = <&gpu7_tj_cfg>; + cooling-device = <&msm_gpu 0 THERMAL_NO_LIMIT>; + }; + }; }; mdmss-0 { diff --git a/qcom/sun.dtsi b/qcom/sun.dtsi index b623723d..6d840a2e 100644 --- a/qcom/sun.dtsi +++ b/qcom/sun.dtsi @@ -59,6 +59,7 @@ cpu-idle-states = <&MEDIUM_OFF_C4>; power-domains = <&CPU_PD0>; power-domain-names = "psci"; + #cooling-cells = <2>; next-level-cache = <&L2_0>; L2_0: l2-cache { compatible = "arm,arch-cache"; @@ -74,6 +75,7 @@ cpu-idle-states = <&MEDIUM_OFF_C4>; power-domains = <&CPU_PD1>; power-domain-names = "psci"; + #cooling-cells = <2>; next-level-cache = <&L2_0>; }; @@ -85,6 +87,7 @@ cpu-idle-states = <&MEDIUM_OFF_C4>; power-domains = <&CPU_PD2>; power-domain-names = "psci"; + #cooling-cells = <2>; next-level-cache = <&L2_0>; }; @@ -96,6 +99,7 @@ cpu-idle-states = <&MEDIUM_OFF_C4>; power-domains = <&CPU_PD3>; power-domain-names = "psci"; + #cooling-cells = <2>; next-level-cache = <&L2_0>; }; @@ -107,6 +111,7 @@ cpu-idle-states = <&MEDIUM_OFF_C4>; power-domains = <&CPU_PD4>; power-domain-names = "psci"; + #cooling-cells = <2>; next-level-cache = <&L2_0>; }; @@ -118,6 +123,7 @@ cpu-idle-states = <&MEDIUM_OFF_C4>; power-domains = <&CPU_PD5>; power-domain-names = "psci"; + #cooling-cells = <2>; next-level-cache = <&L2_0>; }; @@ -129,6 +135,7 @@ cpu-idle-states = <&LARGE_OFF_C4>; power-domains = <&CPU_PD6>; power-domain-names = "psci"; + #cooling-cells = <2>; next-level-cache = <&L2_6>; L2_6: l2-cache { compatible = "arm,arch-cache"; @@ -144,6 +151,7 @@ cpu-idle-states = <&LARGE_OFF_C4>; power-domains = <&CPU_PD7>; power-domain-names = "psci"; + #cooling-cells = <2>; next-level-cache = <&L2_6>; };