On the SM8650 platform, the dynamic clock and voltage scaling (DCVS) for the CPUs is handled by hardware & firmware using factory and form-factor determined parameters in order to maximize frequency while keeping the temperature way below the junction temperature where the SoC would experience a thermal shutdown if not permanent damages. On the other side, the High Level Ooperating System (HLOS), like Linux, is able to adjust the CPU and GPU frequency using the internal SoC temperature sensors (here tsens) and it's UP/LOW interrupts, but it effectly does the same work twice for CPU in an less effective manner. Let's take the CPU Hardware & Firmware action in account and design the thermal zones trip points and cooling devices mapping to use the HLOS as a safety warant in case the platform experiences a temperature surge to helpfully avoid a thermal shutdown and handle the scenario gracefully. On the CPU side, the LMh hardware does the DCVS control loop, so only keep the critical trip point that would do a software system reboot as an emergency action to avoid the thermal shutdown. On the GPU side, the GPU can achieve much higher temperature, update the trip point with the downstream implementation as a reference. Those 2 changes optimizes the thermal management design by avoiding concurrent thermal management, calculations & avoidable interrupts for CPU, and allows us to use reach higher OPPs for the GPUs and squeeze more performances in both cases. While we're at it, also harmonize the remaining thermal blocks by using 110C as hot trip point, and 115 as critical trip point, and remove the unneeded polling-delay-passive properties. Signed-off-by: Neil Armstrong <neil.armstrong@xxxxxxxxxx> --- Changes in v4: - Also uniformize the other thermal blocks, using 110 as hot, 115 as critical - Also remove the uneeded polling-delay-passive - Link to v3: https://lore.kernel.org/r/20250129-topic-sm8650-thermal-cpu-idle-v3-0-62ab1a64098d@xxxxxxxxxx Changes in v3: - The GMU doesn't handle temperature, remove it from all texts, just bump the temps - Link to v2: https://lore.kernel.org/r/20250110-topic-sm8650-thermal-cpu-idle-v2-0-5787ad79abbb@xxxxxxxxxx Changes in v2: - Drop idle injection - only keep critical trip points - reword commmit msg and cover letter - Link to v1: https://lore.kernel.org/r/20250103-topic-sm8650-thermal-cpu-idle-v1-0-faa1f011ecd9@xxxxxxxxxx --- Neil Armstrong (4): arm64: dts: qcom: sm8650: drop cpu thermal passive trip points arm64: dts: qcom: sm8650: setup gpu thermal with higher temperatures arm64: dts: qcom: sm8650: harmonize all unregulated thermal trip points arm64: dts: qcom: sm8650: drop remaining polling-delay-passive properties arch/arm64/boot/dts/qcom/sm8650.dtsi | 430 ++++++++++------------------------- 1 file changed, 117 insertions(+), 313 deletions(-) --- base-commit: 8155b4ef3466f0e289e8fcc9e6e62f3f4dceeac2 change-id: 20250103-topic-sm8650-thermal-cpu-idle-1e19181a94ed Best regards, -- Neil Armstrong <neil.armstrong@xxxxxxxxxx>