From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 6C3BAFC0345 for ; Thu, 23 Apr 2026 15:23:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Cc:To:In-Reply-To:References :Message-Id:Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date: From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=+2AQHJXAix8UIwlLwfkFr/1VOjL9EcULNjZvsXFLBOQ=; b=wlEuP6tafmH1whA6MFwive9x4Q FnXUpKnG1SERMHawhjmHJp85URAAGR5yqO3z2g2m3hDMb5H7rQiEr9y/66lLDxU0cEI4fvdVhztl0 jCtSXClabifaPAhxlpFXC4kBQB/ZGDLVmXx6qsFc8V9FMVmVuoGI/cNYmAQfgPTtxS1AXvWNy8tEd YhyKpN+nS5Qa4ZBogl/k7gIuuQmkfjXEHoUgtduvIIbI73iNo9jir1pAmI/BZVBgKV9O8gIMGvAEA 0GTWJvDzLbMrvlXFjG6s1P/2aaKoSkUPuIHfamOv5ktN5n5JmhrHv8NSqZSZ3nFW4UnsOEIlAB3ii FSOkprvA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1wFvtn-0000000Bsmv-1mzW; Thu, 23 Apr 2026 15:23:27 +0000 Received: from mail-wr1-x430.google.com ([2a00:1450:4864:20::430]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1wFvtU-0000000BsX8-0oVx for linux-arm-kernel@lists.infradead.org; Thu, 23 Apr 2026 15:23:09 +0000 Received: by mail-wr1-x430.google.com with SMTP id ffacd0b85a97d-43cfbd17589so5412683f8f.0 for ; Thu, 23 Apr 2026 08:23:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1776957786; x=1777562586; darn=lists.infradead.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=+2AQHJXAix8UIwlLwfkFr/1VOjL9EcULNjZvsXFLBOQ=; b=X8oog8xC/1shrEbXPD76AzuV9YmcXZrGxpLGjhN8/8EnUPl1FawcNYAXhicFeopcfS 36LuOzzT1KhK2QT/KMbGlqee84LB1Uk4en5FoDKqyk+t3yvZweApIlABLIU0uyVq35PV wP8nOIdFrbrAJx9A3jtwKCZuZv8yFJ5i65h+DUtooAyR7cbufVLSPvcpH30kHdjw/z+G D2hazaksT8t7srjBJW21xHQJWnbH7HhxfAEGx0P/ePMcKY56jVvz4OIUkOZDeBIaPP6o 3KL2N4O0pYsEFgWC+XIQ7J3gfoiFv3+bxKmUzUizFKWdYtPHL2OMt9/AoTD4Bawz7xAR NBpA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776957786; x=1777562586; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=+2AQHJXAix8UIwlLwfkFr/1VOjL9EcULNjZvsXFLBOQ=; b=UunUpd9ReFN9vRQno1alHtpNugCLARVvYSooDIz1VvB4AOxw1DHaRmVfUApHb7S8z5 3nCQOSUvW7I5j5TU29oaeUK10QWou5C/pYkDZnWtOdDj6eGdoCXdGr9riz7S1cmoyEmW vxjsFB+rTKUY0DmqbwUewzDXf9JwEjhf1tA2795Pa10EL3ZyXnqHy/MzwespQ3qh7Ot9 52kdbqKoCnY3IzWvk7adWzZy5ifNRzZ0Q1wBJpjkWct4R/80m9tYiX+pEmj+nl9XD9xv HI4ExG+BZXdanyXEQyRtwvtLKiRO2CvT5kjEYwOEc8FXN28Nx7vzzDX6Hes4HmhltqcX MSNw== X-Forwarded-Encrypted: i=1; AFNElJ+WPyTmcMSdKqhy6iFlKiMbpbZefJvG9UypwPv9CqNaV1YPni5qcwPERRMBWXwlShfR+UCpZVeDoLFD6gDsDRiP@lists.infradead.org X-Gm-Message-State: AOJu0YyLlOqm53AgCufjWC2RlrgBciyi7DQZHF5X4FuOkUP+jNj79K+0 7ad4L34DdiXp/8ehu3kBA06TnSrlUEu7EgwnrfFuAQ2gjXdda/DqkXn216LuWoWwth8= X-Gm-Gg: AeBDievkl2jivlNhL0I41DKM59kwRyUg1zJQDTTCmALYY9AXaQVcBlMDXApiEMmkAvr b5TRda6LVH/I1M+BL1J+QH8OZh92bpDfzdGalReHb77q0A7bLtEPyw6QXfv6AOwfy2c4ag1bap6 wUhxuhWvI8NWg7bWpj9j90iO4qc9IXlYXQVXqGTsGX4S13phBtCQWjIKG1ZxaDW0CNFEAYwmUwF PfbjUnSFkWM+9GiJbevsHcaZzE8OzG+bxz3LfR5v7vj9tSWpPaZIViepOrwUTUq3mRLo0wE/Ngh alhwUYhJl99TWze/emvVqTOjzWqB3WxonqxoSrge/JEoVWVcFOwnxHXXVPhfZvQY600KtsGhsxB 7gdOdB9A/9BSz1oXIeuJASSMIBADViexb2UnXZAOY+q3sQHDl3x3kOlV982yU7LJlftECv7fx/8 mkvu1/jBNdSSG5IBCNp/rj64CWdmjWN3F1RJcsPoyE72vGdmlNV3G6XKkw8SNoHPUH68Pye2XUF Lfd0UBP1Q9zCw6pOg== X-Received: by 2002:a05:600c:3ba0:b0:485:ae14:8191 with SMTP id 5b1f17b1804b1-488fb73a089mr426452985e9.5.1776957786157; Thu, 23 Apr 2026 08:23:06 -0700 (PDT) Received: from ta2.c.googlers.com (17.83.155.104.bc.googleusercontent.com. [104.155.83.17]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4891f98728dsm90550755e9.23.2026.04.23.08.23.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 23 Apr 2026 08:23:05 -0700 (PDT) From: Tudor Ambarus Date: Thu, 23 Apr 2026 15:22:58 +0000 Subject: [PATCH v4 10/11] arm64: dts: exynos: gs101: Add thermal management unit MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20260423-acpm-tmu-v4-10-8b59f8548634@linaro.org> References: <20260423-acpm-tmu-v4-0-8b59f8548634@linaro.org> In-Reply-To: <20260423-acpm-tmu-v4-0-8b59f8548634@linaro.org> To: "Rafael J. Wysocki" , Zhang Rui , Lukasz Luba , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Krzysztof Kozlowski , Alim Akhtar , Bartlomiej Zolnierkiewicz , Kees Cook , "Gustavo A. R. Silva" , Peter Griffin , =?utf-8?q?Andr=C3=A9_Draszik?= , Daniel Lezcano , Sylwester Nawrocki , Chanwoo Choi , Michael Turquette , Stephen Boyd , Lee Jones Cc: willmcvicker@google.com, jyescas@google.com, shin.son@samsung.com, linux-samsung-soc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-hardening@vger.kernel.org, linux-clk@vger.kernel.org, Tudor Ambarus X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1776957778; l=7065; i=tudor.ambarus@linaro.org; s=20241212; h=from:subject:message-id; bh=KQQowGSYHyP5O60zag3Qa4kZIABUdv6AfqKEPj7hS28=; b=4CUGYuOoxwR0trgYo8nv8J6lmrRotEL68AOZIfM9WhNX9rc2cRay9r/oGiWTvQpEWWoVb2esY 03tUxY1bgkQBwXltokjCrC39Z3XqMm1ieeO+RgU2kHYfYIGt6tqjTXo X-Developer-Key: i=tudor.ambarus@linaro.org; a=ed25519; pk=uQzE0NXo3dIjeowMTOPCpIiPHEz12IA/MbyzrZVh9WI= X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260423_082308_318145_9BF3B9C7 X-CRM114-Status: GOOD ( 13.69 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Add the Thermal Management Unit (TMU) support for the Google GS101 SoC. Describe the TMU using a consolidated SoC node that includes memory resources for interrupt identification and a phandle to the ACPM IPC interface for functional control. Define thermal zones for the little, mid, and big CPU clusters, including associated trip points and cooling-device maps to enable thermal mitigation. Signed-off-by: Tudor Ambarus --- arch/arm64/boot/dts/exynos/google/gs101-tmu.dtsi | 136 +++++++++++++++++++++++ arch/arm64/boot/dts/exynos/google/gs101.dtsi | 18 +++ 2 files changed, 154 insertions(+) diff --git a/arch/arm64/boot/dts/exynos/google/gs101-tmu.dtsi b/arch/arm64/boot/dts/exynos/google/gs101-tmu.dtsi new file mode 100644 index 000000000000..b27d1a539ec2 --- /dev/null +++ b/arch/arm64/boot/dts/exynos/google/gs101-tmu.dtsi @@ -0,0 +1,136 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Google GS101 TMU configurations device tree source + * + * Copyright 2020 Samsung Electronics Co., Ltd. + * Copyright 2020 Google LLC. + * Copyright 2026 Linaro Ltd. + */ + +#include + +/ { + thermal-zones { + cpucl2-thermal { + polling-delay-passive = <0>; + polling-delay = <0>; + thermal-sensors = <&tmu_top 0>; + + trips { + big_switch_on: big-switch-on { + temperature = <80000>; + hysteresis = <2000>; + type = "passive"; + }; + + big_mitigate: big-mitigate { + temperature = <90000>; + hysteresis = <5000>; + type = "passive"; + }; + + big_hot: big-hot { + temperature = <100000>; + hysteresis = <5000>; + type = "hot"; + }; + + big_critical: big-critical { + temperature = <105000>; + hysteresis = <2000>; + type = "critical"; + }; + }; + + cooling-maps { + map0 { + trip = <&big_mitigate>; + cooling-device = <&cpu6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, + <&cpu7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; + }; + }; + }; + + cpucl1-thermal { + polling-delay-passive = <0>; + polling-delay = <0>; + thermal-sensors = <&tmu_top 1>; + + trips { + mid_switch_on: mid-switch-on { + temperature = <80000>; + hysteresis = <2000>; + type = "passive"; + }; + + mid_mitigate: mid-mitigate { + temperature = <90000>; + hysteresis = <5000>; + type = "passive"; + }; + + mid_hot: mid-hot { + temperature = <100000>; + hysteresis = <5000>; + type = "hot"; + }; + + mid_critical: mid-critical { + temperature = <105000>; + hysteresis = <2000>; + type = "critical"; + }; + }; + + cooling-maps { + map0 { + trip = <&mid_mitigate>; + cooling-device = <&cpu4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, + <&cpu5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; + }; + }; + }; + + cpucl0-thermal { + polling-delay-passive = <0>; + polling-delay = <0>; + thermal-sensors = <&tmu_top 2>; + + trips { + little_switch_on: little-switch-on { + temperature = <80000>; + hysteresis = <2000>; + type = "passive"; + }; + + little_mitigate: little-mitigate { + temperature = <90000>; + hysteresis = <5000>; + type = "passive"; + }; + + little_hot: little-hot { + temperature = <100000>; + hysteresis = <5000>; + type = "hot"; + }; + + little_critical: little-critical { + temperature = <105000>; + hysteresis = <2000>; + type = "critical"; + }; + }; + + cooling-maps { + map0 { + trip = <&little_mitigate>; + cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, + <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, + <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, + <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; + }; + }; + }; + }; +}; diff --git a/arch/arm64/boot/dts/exynos/google/gs101.dtsi b/arch/arm64/boot/dts/exynos/google/gs101.dtsi index d085f9fb0f62..4b8c7edaddb6 100644 --- a/arch/arm64/boot/dts/exynos/google/gs101.dtsi +++ b/arch/arm64/boot/dts/exynos/google/gs101.dtsi @@ -74,6 +74,7 @@ cpu0: cpu@0 { compatible = "arm,cortex-a55"; reg = <0x0000>; clocks = <&acpm_ipc GS101_CLK_ACPM_DVFS_CPUCL0>; + #cooling-cells = <2>; enable-method = "psci"; cpu-idle-states = <&ananke_cpu_sleep>; capacity-dmips-mhz = <250>; @@ -86,6 +87,7 @@ cpu1: cpu@100 { compatible = "arm,cortex-a55"; reg = <0x0100>; clocks = <&acpm_ipc GS101_CLK_ACPM_DVFS_CPUCL0>; + #cooling-cells = <2>; enable-method = "psci"; cpu-idle-states = <&ananke_cpu_sleep>; capacity-dmips-mhz = <250>; @@ -98,6 +100,7 @@ cpu2: cpu@200 { compatible = "arm,cortex-a55"; reg = <0x0200>; clocks = <&acpm_ipc GS101_CLK_ACPM_DVFS_CPUCL0>; + #cooling-cells = <2>; enable-method = "psci"; cpu-idle-states = <&ananke_cpu_sleep>; capacity-dmips-mhz = <250>; @@ -110,6 +113,7 @@ cpu3: cpu@300 { compatible = "arm,cortex-a55"; reg = <0x0300>; clocks = <&acpm_ipc GS101_CLK_ACPM_DVFS_CPUCL0>; + #cooling-cells = <2>; enable-method = "psci"; cpu-idle-states = <&ananke_cpu_sleep>; capacity-dmips-mhz = <250>; @@ -122,6 +126,7 @@ cpu4: cpu@400 { compatible = "arm,cortex-a76"; reg = <0x0400>; clocks = <&acpm_ipc GS101_CLK_ACPM_DVFS_CPUCL1>; + #cooling-cells = <2>; enable-method = "psci"; cpu-idle-states = <&enyo_cpu_sleep>; capacity-dmips-mhz = <620>; @@ -134,6 +139,7 @@ cpu5: cpu@500 { compatible = "arm,cortex-a76"; reg = <0x0500>; clocks = <&acpm_ipc GS101_CLK_ACPM_DVFS_CPUCL1>; + #cooling-cells = <2>; enable-method = "psci"; cpu-idle-states = <&enyo_cpu_sleep>; capacity-dmips-mhz = <620>; @@ -146,6 +152,7 @@ cpu6: cpu@600 { compatible = "arm,cortex-x1"; reg = <0x0600>; clocks = <&acpm_ipc GS101_CLK_ACPM_DVFS_CPUCL2>; + #cooling-cells = <2>; enable-method = "psci"; cpu-idle-states = <&hera_cpu_sleep>; capacity-dmips-mhz = <1024>; @@ -158,6 +165,7 @@ cpu7: cpu@700 { compatible = "arm,cortex-x1"; reg = <0x0700>; clocks = <&acpm_ipc GS101_CLK_ACPM_DVFS_CPUCL2>; + #cooling-cells = <2>; enable-method = "psci"; cpu-idle-states = <&hera_cpu_sleep>; capacity-dmips-mhz = <1024>; @@ -639,6 +647,15 @@ watchdog_cl1: watchdog@10070000 { status = "disabled"; }; + tmu_top: thermal-sensor@100a0000 { + compatible = "google,gs101-tmu-top"; + reg = <0x100a0000 0x800>; + clocks = <&cmu_misc CLK_GOUT_MISC_TMU_TOP_PCLK>; + interrupts = ; + samsung,acpm-ipc = <&acpm_ipc>; + #thermal-sensor-cells = <1>; + }; + trng: rng@10141400 { compatible = "google,gs101-trng", "samsung,exynos850-trng"; @@ -1861,3 +1878,4 @@ timer { }; #include "gs101-pinctrl.dtsi" +#include "gs101-tmu.dtsi" -- 2.54.0.545.g6539524ca2-goog