From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752795AbbHMO25 (ORCPT ); Thu, 13 Aug 2015 10:28:57 -0400 Received: from fw-tnat.cambridge.arm.com ([217.140.96.140]:42345 "EHLO cam-smtp0.cambridge.arm.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752012AbbHMO2z (ORCPT ); Thu, 13 Aug 2015 10:28:55 -0400 From: Punit Agrawal To: Liviu Dudau Cc: "linux-pm\@vger.kernel.org" , "lm-sensors\@lm-sensors.org" , "linux-kernel\@vger.kernel.org" , "devicetree\@vger.kernel.org" , Rob Herring , Mark Rutland , Sudeep Holla Subject: Re: [PATCH v2 10/10] arm64: dts: Create SoC thermal zone for Juno References: <1438615378-14241-1-git-send-email-punit.agrawal@arm.com> <1438615378-14241-11-git-send-email-punit.agrawal@arm.com> <20150812155500.GW20890@e106497-lin.cambridge.arm.com> Date: Thu, 13 Aug 2015 15:28:45 +0100 In-Reply-To: <20150812155500.GW20890@e106497-lin.cambridge.arm.com> (Liviu Dudau's message of "Wed, 12 Aug 2015 16:55:00 +0100") Message-ID: <9hh1tf7i7oi.fsf@e105922-lin.cambridge.arm.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.4 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Liviu, Thanks for having a look. Liviu Dudau writes: > On Mon, Aug 03, 2015 at 04:22:58PM +0100, Punit Agrawal wrote: >> Setup a thermal zone driven by the SoC temperature sensor on Juno >> r0. Create passive trip points and bind them to cpufreq cooling >> devices that support the power extensions. > > Hi Punit, > >> >> Signed-off-by: Punit Agrawal >> Cc: Rob Herring >> Cc: Mark Rutland >> Cc: Liviu Dudau >> Cc: Sudeep Holla >> --- >> arch/arm64/boot/dts/arm/juno.dts | 50 ++++++++++++++++++++++++++++++++++++++++ >> 1 file changed, 50 insertions(+) >> >> diff --git a/arch/arm64/boot/dts/arm/juno.dts b/arch/arm64/boot/dts/arm/juno.dts >> index d2e67f3..664961c 100644 >> --- a/arch/arm64/boot/dts/arm/juno.dts >> +++ b/arch/arm64/boot/dts/arm/juno.dts >> @@ -9,6 +9,7 @@ >> /dts-v1/; >> >> #include >> +#include >> >> / { >> model = "ARM Juno development board (r0)"; >> @@ -90,6 +91,8 @@ >> next-level-cache = <&A57_L2>; >> clocks = <&scpi_dvfs 0>; >> cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; >> + #cooling-cells = <2>; >> + dynamic-power-coefficient = <530>; > > The Documentation/devicetree/bindings/thermal/thermal.txt document describes two additional > required properties, cooling-min-state and cooling-max-state which are missing here. > The bindings do suggest that the cooling-*-state are required but I couldn't find any code making use of this property. I'll send a patch with the next version making those properties optional. >> }; >> >> A57_1: cpu@1 { >> @@ -100,6 +103,8 @@ >> next-level-cache = <&A57_L2>; >> clocks = <&scpi_dvfs 0>; >> cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; >> + #cooling-cells = <2>; >> + dynamic-power-coefficient = <530>; >> }; >> >> A53_0: cpu@100 { >> @@ -110,6 +115,8 @@ >> next-level-cache = <&A53_L2>; >> clocks = <&scpi_dvfs 1>; >> cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; >> + #cooling-cells = <2>; >> + dynamic-power-coefficient = <140>; >> }; >> >> A53_1: cpu@101 { >> @@ -120,6 +127,8 @@ >> next-level-cache = <&A53_L2>; >> clocks = <&scpi_dvfs 1>; >> cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; >> + #cooling-cells = <2>; >> + dynamic-power-coefficient = <140>; >> }; >> >> A53_2: cpu@102 { >> @@ -130,6 +139,8 @@ >> next-level-cache = <&A53_L2>; >> clocks = <&scpi_dvfs 1>; >> cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; >> + #cooling-cells = <2>; >> + dynamic-power-coefficient = <140>; >> }; >> >> A53_3: cpu@103 { >> @@ -140,6 +151,8 @@ >> next-level-cache = <&A53_L2>; >> clocks = <&scpi_dvfs 1>; >> cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; >> + #cooling-cells = <2>; >> + dynamic-power-coefficient = <140>; >> }; >> >> A57_L2: l2-cache0 { >> @@ -167,5 +180,42 @@ >> <&A53_3>; >> }; >> >> + thermal-zones { >> + soc_thermal { >> + polling-delay = <1000>; >> + polling-delay-passive = <100>; >> + sustainable-power = <2500>; >> + >> + thermal-sensors = <&scpi_sensors0 3>; >> + >> + trips { >> + threshold: trip-point@0 { > > You also need a reg= property if you have the @index thing. > Having looked at the examples, I don't need to have the @index for the trip points. I'll update in the next version. Thanks, Punit > Best regards, > Liviu > >> + temperature = <55000>; >> + hysteresis = <1000>; >> + type = "passive"; >> + }; >> + target: trip-point@1 { >> + temperature = <65000>; >> + hysteresis = <1000>; >> + type = "passive"; >> + }; >> + }; >> + >> + cooling-maps { >> + map0 { >> + trip = <&target>; >> + cooling-device = <&A53_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; >> + contribution = <2048>; >> + }; >> + map1 { >> + trip = <&target>; >> + cooling-device = <&A57_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; >> + contribution = <1024>; >> + }; >> + >> + }; >> + }; >> + }; >> + >> #include "juno-base.dtsi" >> }; >> -- >> 2.1.4 >>