From patchwork Sat May 18 12:12:06 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Raphael Gallais-Pou X-Patchwork-Id: 13667601 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 74EFFC25B74 for ; Sat, 18 May 2024 12:13:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:Cc:To:In-Reply-To:References:Message-Id :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=lSBHbMtSZTo5ud+fIZ7wBZlHiIL0OajmndwhagOgbvM=; b=FG3vBX0B4Imwyx PVNM/vy6J/EzNH4/LSfthF+y/5vCrO48oWij3XcAHa6KmF8A/XREusXD+3VhMnoRusAT50rJxwC8Q 4h2VS67irn7KgCNTJhjPhF/u/h25ZznUF7DJgBfnnhvDZtiQn9hGBWdOlIx4XYJXgWsg7LyIu1HdZ mbXVphaOrcIbbus+tqWdr7JhIS6duxiaJq8cBjLY+e8P+BpAARVeTwgGe/mWVy/ix1nPH6PvL/Hc5 Ln7GQveEN7Lz4oc8t9h/j5uxxZctwfTjhez6JrZjJrFaoVcY1kJygb1sRu0YEImVDdTry5VEWc/n5 uia1YUgTrp6dVSOZtrWg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1s8Ivt-0000000A2Rz-0Sgg; Sat, 18 May 2024 12:13:01 +0000 Received: from mail-lf1-x129.google.com ([2a00:1450:4864:20::129]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1s8Ivo-0000000A2Q8-2ixz for linux-arm-kernel@lists.infradead.org; Sat, 18 May 2024 12:12:59 +0000 Received: by mail-lf1-x129.google.com with SMTP id 2adb3069b0e04-51f99f9e0faso3299647e87.2 for ; Sat, 18 May 2024 05:12:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1716034371; x=1716639171; 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=c+CcrlNbsHEM5IbBF+aEvbweCw5RwAqEr0nCDuf0P80=; b=AOPPh+dQPqusWXiE6cC/WCmwq8UwNnC3exTysSqoY4J8ooT5GBamNo3Jmn0ANMRQm0 1+fZEIr2fEAP8mpcgMzIFcL+hSrKYXEDXHDmg7vW4GGad9KpFQ/IhReuRATFAwTQFbe9 2TYfh/T7cwlzpn2OxLZx0+EJpGm74Zwwk7ZjA5V9+LjNUm+qGvT3Q92S2FuEWuLfnLwL qO77xsJbOGVaHG04n0N9OesDfAhLBmfJ8UDxGZ4WzjOYanPcx/QFH1tUQRWsJRyJx4fJ l/xbd3c/iGUrhKFFyCNOSMGfVfgfHQVlbKDXvkrA/kRc7Bv+ZxClDCfdl33v+mz/ryJT bLPQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1716034371; x=1716639171; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=c+CcrlNbsHEM5IbBF+aEvbweCw5RwAqEr0nCDuf0P80=; b=aI3lBn5DACfvBQ82PpOdL0g8LAUDZAGAqlavnW7MWRbzq0gS+wA3g7NUdaxfh+B/kH KkGze8SlBdYWCCCFfE+xcV0cspCxra0sv+yjoOlj44DAULs50otpftsw5QojnUOmAamU ljHC3JiSKoM2RchLRbNeSEC3I9Ge6UJfCFCFbK63ESeiEi1Rpkx7XJTSUD6W7j8wYBUI 99tD4vWBMFzUN7InbgSiYK+oePC/CehHt1tPciR6l7eP7pL/3iG9u2I+BFZosF8HZP5+ nqTLwMwyHX3zuAflSVuqknrCLYJ/26zuHIB1I6R6AsMLKWNoXfyT8NVk1jBWvTHPzrkx eVaQ== X-Forwarded-Encrypted: i=1; AJvYcCWe1QGvgOasv5s62sku6Fe245Um3zr2SVHhs9eB4c9gvpgVeSKTOJQiUFYlSlRU1RFvuC93csFkLmsSPzL8BGNyuzLPgDcIMdQNcUe9MD32zpcKa9I= X-Gm-Message-State: AOJu0YwLnw+rWQn9pga5bKPJU1WNuKWwaL14/pxMs6EIsg5NYAc2ATFZ RSKQHd9jA5EAGOMl2iG62vd41jDce//5sRUHqdSqJPvSEtDLzTZK X-Google-Smtp-Source: AGHT+IGCqom0f/JiQFDnaCldSas0fyciwxHluc+scNBqYPHfPb0Rl7baW0X6/IEtd7zm1t+AwIBO0A== X-Received: by 2002:a05:6512:1304:b0:51c:5171:bbed with SMTP id 2adb3069b0e04-5221006e625mr19978831e87.15.1716034371324; Sat, 18 May 2024 05:12:51 -0700 (PDT) Received: from localhost ([2001:861:3385:e20:6384:4cf:52c5:3194]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-521f38d8688sm3543568e87.213.2024.05.18.05.12.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 18 May 2024 05:12:51 -0700 (PDT) From: Raphael Gallais-Pou Date: Sat, 18 May 2024 14:12:06 +0200 Subject: [PATCH 3/3] ARM: dts: sti: add thermal-zones support on stih418 MIME-Version: 1.0 Message-Id: <20240518-thermal-v1-3-7dfca3ed454b@gmail.com> References: <20240518-thermal-v1-0-7dfca3ed454b@gmail.com> In-Reply-To: <20240518-thermal-v1-0-7dfca3ed454b@gmail.com> To: "Rafael J. Wysocki" , Daniel Lezcano , Zhang Rui , Lukasz Luba , Maxime Coquelin , Alexandre Torgue , Patrice Chotard , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org X-Mailer: b4 0.13.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240518_051256_755235_9CB56CA9 X-CRM114-Status: GOOD ( 15.77 ) 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 a 'thermal-zones' node for stih418. A thermal-zone needs three components: - thermal sensors, described in an earlier commit[1] - cooling devices, specified for each CPU - a thermal zone, describing the overall behavior. The thermal zone needs references to both CPUs and thermal sensors, which phandle are also added. The thermal management will then be achieved on CPUs using the cpufreq framework. [1] https://lore.kernel.org/lkml/20240320-thermal-v3-2-700296694c4a@gmail.com/ Signed-off-by: Raphael Gallais-Pou Reviewed-by: Patrice Chotard --- arch/arm/boot/dts/st/stih407-family.dtsi | 6 +++-- arch/arm/boot/dts/st/stih418.dtsi | 41 +++++++++++++++++++++++++++++--- 2 files changed, 42 insertions(+), 5 deletions(-) diff --git a/arch/arm/boot/dts/st/stih407-family.dtsi b/arch/arm/boot/dts/st/stih407-family.dtsi index 29302e74aa1d..35a55aef7f4b 100644 --- a/arch/arm/boot/dts/st/stih407-family.dtsi +++ b/arch/arm/boot/dts/st/stih407-family.dtsi @@ -33,7 +33,7 @@ delta_reserved: rproc@44000000 { cpus { #address-cells = <1>; #size-cells = <0>; - cpu@0 { + cpu0: cpu@0 { device_type = "cpu"; compatible = "arm,cortex-a9"; reg = <0>; @@ -52,8 +52,9 @@ cpu@0 { clock-latency = <100000>; cpu0-supply = <&pwm_regulator>; st,syscfg = <&syscfg_core 0x8e0>; + #cooling-cells = <2>; }; - cpu@1 { + cpu1: cpu@1 { device_type = "cpu"; compatible = "arm,cortex-a9"; reg = <1>; @@ -66,6 +67,7 @@ cpu@1 { 1200000 0 800000 0 500000 0>; + #cooling-cells = <2>; }; }; diff --git a/arch/arm/boot/dts/st/stih418.dtsi b/arch/arm/boot/dts/st/stih418.dtsi index b35b9b7a7ccc..6622ffa8ecfa 100644 --- a/arch/arm/boot/dts/st/stih418.dtsi +++ b/arch/arm/boot/dts/st/stih418.dtsi @@ -6,23 +6,26 @@ #include "stih418-clock.dtsi" #include "stih407-family.dtsi" #include "stih410-pinctrl.dtsi" +#include / { cpus { #address-cells = <1>; #size-cells = <0>; - cpu@2 { + cpu2: cpu@2 { device_type = "cpu"; compatible = "arm,cortex-a9"; reg = <2>; /* u-boot puts hpen in SBC dmem at 0xa4 offset */ cpu-release-addr = <0x94100A4>; + #cooling-cells = <2>; }; - cpu@3 { + cpu3: cpu@3 { device_type = "cpu"; compatible = "arm,cortex-a9"; reg = <3>; /* u-boot puts hpen in SBC dmem at 0xa4 offset */ cpu-release-addr = <0x94100A4>; + #cooling-cells = <2>; }; }; @@ -44,6 +47,38 @@ usb2_picophy2: phy3 { reset-names = "global", "port"; }; + thermal-zones { + cpu_thermal: cpu-thermal { + polling-delay-passive = <250>; /* 250ms */ + polling-delay = <1000>; /* 1000ms */ + + thermal-sensors = <&thermal>; + + trips { + cpu_crit: cpu-crit { + temperature = <95000>; /* 95C */ + hysteresis = <2000>; + type = "critical"; + }; + cpu_alert: cpu-alert { + temperature = <85000>; /* 85C */ + hysteresis = <2000>; + type = "passive"; + }; + }; + + cooling-maps { + map { + trip = <&cpu_alert>; + 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>; + }; + }; + }; + }; + soc { rng11: rng@8a8a000 { status = "disabled"; @@ -107,7 +142,7 @@ mmc0: sdhci@9060000 { assigned-clock-rates = <200000000>; }; - thermal@91a0000 { + thermal: thermal@91a0000 { compatible = "st,stih407-thermal"; reg = <0x91a0000 0x28>; clock-names = "thermal";