[PATCH] ARM: dts: sun8i-h3: Add thermal trip points/cooling maps

19 views
Skip to first unread message

Ondrej Jirman

unread,
Feb 22, 2020, 4:42:32 PM2/22/20
to linux...@googlegroups.com, Ondrej Jirman, Rob Herring, Mark Rutland, Maxime Ripard, Chen-Yu Tsai, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, moderated list:ARM/Allwinner sunXi SoC support, open list
This enables passive cooling by down-regulating CPU voltage
and frequency.

Signed-off-by: Ondrej Jirman <meg...@megous.com>
---
arch/arm/boot/dts/sun8i-h3.dtsi | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)

diff --git a/arch/arm/boot/dts/sun8i-h3.dtsi b/arch/arm/boot/dts/sun8i-h3.dtsi
index 7d2e30a00cd2a..dca51548881a8 100644
--- a/arch/arm/boot/dts/sun8i-h3.dtsi
+++ b/arch/arm/boot/dts/sun8i-h3.dtsi
@@ -41,6 +41,7 @@
*/

#include "sunxi-h3-h5.dtsi"
+#include <dt-bindings/thermal/thermal.h>

/ {
cpus {
@@ -204,6 +205,30 @@ cpu_thermal: cpu-thermal {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&ths 0>;
+
+ trips {
+ cpu_hot_trip: cpu-hot {
+ temperature = <80000>;
+ hysteresis = <2000>;
+ type = "passive";
+ };
+
+ cpu_very_hot_trip: cpu-very-hot {
+ temperature = <100000>;
+ hysteresis = <0>;
+ type = "critical";
+ };
+ };
+
+ cooling-maps {
+ cpu-hot-limit {
+ trip = <&cpu_hot_trip>;
+ 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>;
+ };
+ };
};
};
};
--
2.25.1

Chen-Yu Tsai

unread,
Feb 22, 2020, 10:29:46 PM2/22/20
to Ondrej Jirman, linux-sunxi, Rob Herring, Mark Rutland, Maxime Ripard, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, moderated list:ARM/Allwinner sunXi SoC support, open list
On Sun, Feb 23, 2020 at 5:42 AM Ondrej Jirman <meg...@megous.com> wrote:
>
> This enables passive cooling by down-regulating CPU voltage
> and frequency.


Please state for the record how the trip points were derived. Were they from
the BSP? Or the user manual?

ChenYu

> Signed-off-by: Ondrej Jirman <meg...@megous.com>

Ondřej Jirman

unread,
Feb 23, 2020, 5:16:51 AM2/23/20
to Chen-Yu Tsai, linux-sunxi, Rob Herring, Mark Rutland, Maxime Ripard, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, moderated list:ARM/Allwinner sunXi SoC support, open list
Hello,

On Sun, Feb 23, 2020 at 11:29:31AM +0800, Chen-Yu Tsai wrote:
> On Sun, Feb 23, 2020 at 5:42 AM Ondrej Jirman <meg...@megous.com> wrote:
> >
> > This enables passive cooling by down-regulating CPU voltage
> > and frequency.
>
>
> Please state for the record how the trip points were derived. Were they from
> the BSP? Or the user manual?

I used a slightly lowered value from the BSP code. 110 seemed like a lot for
the critical temp. So I rounded it off to 100°C.

https://megous.com/git/linux/tree/drivers/thermal/sunxi-temperature.c?h=a83t-3.4-bsp-tbs-a711#n1139

H3 lists the same recommended ambient temperature range as A83T. -20 to 70 °C.

regards,
o.

Ondrej Jirman

unread,
Feb 24, 2020, 11:54:52 AM2/24/20
to linux...@googlegroups.com, Ondrej Jirman, Rob Herring, Mark Rutland, Maxime Ripard, Chen-Yu Tsai, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, moderated list:ARM/Allwinner sunXi SoC support, open list
This enables passive cooling by down-regulating CPU voltage
and frequency.

For trip points, I used a slightly lowered values from the BSP
code. The critical temperature of 110°C from BSP code seemed
like a lot, so I rounded it off to 100°C.

The critical trip point value is 30°C above the maximum recommended
ambient temperature (70°C) for the SoC from the datasheet, so there's
some headroom even at such a high ambient temperature.

Signed-off-by: Ondrej Jirman <meg...@megous.com>
---
arch/arm/boot/dts/sun8i-h3.dtsi | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)

v2:
- added more detail to the commit description

diff --git a/arch/arm/boot/dts/sun8i-h3.dtsi b/arch/arm/boot/dts/sun8i-h3.dtsi
index 20217e2ca4d3a..e83aa6866e7ea 100644
--- a/arch/arm/boot/dts/sun8i-h3.dtsi
+++ b/arch/arm/boot/dts/sun8i-h3.dtsi
@@ -41,6 +41,7 @@
*/

#include "sunxi-h3-h5.dtsi"
+#include <dt-bindings/thermal/thermal.h>

/ {
cpu0_opp_table: opp_table0 {
@@ -227,6 +228,30 @@ cpu_thermal: cpu-thermal {
Reply all
Reply to author
Forward
0 new messages