mirror of
https://github.com/coolsnowwolf/lede.git
synced 2025-04-16 04:13:31 +00:00

1. Fixes CPU and regulator boot problems 2. Enable CPUFREQ, I2C, RTC and THERMAL support 3. Disabled annoying debug logs, refresh kconfig 4. Fix compilation failure due to wrong kconfig Fixes: #10042 Signed-off-by: AmadeusGhost <amadeus@openjmu.xyz>
146 lines
4.4 KiB
Diff
146 lines
4.4 KiB
Diff
From 9073f694efd8733b0e7c97d3396d81161bd05582 Mon Sep 17 00:00:00 2001
|
|
From: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
|
|
Date: Mon, 21 Dec 2020 19:13:05 +0100
|
|
Subject: [PATCH] ARM: dts: meson8b: add the thermal-zones with cooling
|
|
configuration
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
The vendor kernel uses the following thermal-zone settings:
|
|
<= 70°C:
|
|
- CPU frequency limited to 1.488GHz
|
|
- GPU limited to 511MHz and 2 cores (pixel processors)
|
|
|
|
<= 80°C:
|
|
- CPU frequency limited to 1.2GHz
|
|
- GPU limited to 435MHz and 2 cores (pixel processors)
|
|
|
|
<= 90°C:
|
|
- CPU frequency limited to 0.804GHz
|
|
- GPU limited to 328MHz and 1 core (pixel processor)
|
|
|
|
Add simplified thermal configuration which is taken from the
|
|
GXBB/GXL/GXM SoC family (which uses the same manufacturing process and
|
|
has the same maximum junction temperature of 125°C). With this the
|
|
thermal framework will try to keep the SoC temperature at or below 80°C
|
|
which is identical to the vendor kernel (with the exception of one CPU
|
|
frequency step from 1.488GHz to 1.536GHz).
|
|
|
|
The number of GPU cores are not taken into account as this is not
|
|
supported.
|
|
|
|
Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
|
|
Reviewed-by: Neil Armstrong <narmstrong@baylibre.com>
|
|
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
|
|
Link: https://lore.kernel.org/r/20201221181306.904272-5-martin.blumenstingl@googlemail.com
|
|
---
|
|
arch/arm/boot/dts/meson8b.dtsi | 54 ++++++++++++++++++++++++++++++++++
|
|
1 file changed, 54 insertions(+)
|
|
|
|
--- a/arch/arm/boot/dts/meson8b.dtsi
|
|
+++ b/arch/arm/boot/dts/meson8b.dtsi
|
|
@@ -10,6 +10,7 @@
|
|
#include <dt-bindings/power/meson8-power.h>
|
|
#include <dt-bindings/reset/amlogic,meson8b-reset.h>
|
|
#include <dt-bindings/reset/amlogic,meson8b-clkc-reset.h>
|
|
+#include <dt-bindings/thermal/thermal.h>
|
|
#include "meson.dtsi"
|
|
|
|
/ {
|
|
@@ -26,6 +27,7 @@
|
|
resets = <&clkc CLKC_RESET_CPU0_SOFT_RESET>;
|
|
operating-points-v2 = <&cpu_opp_table>;
|
|
clocks = <&clkc CLKID_CPUCLK>;
|
|
+ #cooling-cells = <2>; /* min followed by max */
|
|
};
|
|
|
|
cpu1: cpu@201 {
|
|
@@ -37,6 +39,7 @@
|
|
resets = <&clkc CLKC_RESET_CPU1_SOFT_RESET>;
|
|
operating-points-v2 = <&cpu_opp_table>;
|
|
clocks = <&clkc CLKID_CPUCLK>;
|
|
+ #cooling-cells = <2>; /* min followed by max */
|
|
};
|
|
|
|
cpu2: cpu@202 {
|
|
@@ -48,6 +51,7 @@
|
|
resets = <&clkc CLKC_RESET_CPU2_SOFT_RESET>;
|
|
operating-points-v2 = <&cpu_opp_table>;
|
|
clocks = <&clkc CLKID_CPUCLK>;
|
|
+ #cooling-cells = <2>; /* min followed by max */
|
|
};
|
|
|
|
cpu3: cpu@203 {
|
|
@@ -59,6 +63,7 @@
|
|
resets = <&clkc CLKC_RESET_CPU3_SOFT_RESET>;
|
|
operating-points-v2 = <&cpu_opp_table>;
|
|
clocks = <&clkc CLKID_CPUCLK>;
|
|
+ #cooling-cells = <2>; /* min followed by max */
|
|
};
|
|
};
|
|
|
|
@@ -167,6 +172,54 @@
|
|
};
|
|
};
|
|
|
|
+ thermal-zones {
|
|
+ soc {
|
|
+ polling-delay-passive = <250>; /* milliseconds */
|
|
+ polling-delay = <1000>; /* milliseconds */
|
|
+ thermal-sensors = <&thermal_sensor>;
|
|
+
|
|
+ cooling-maps {
|
|
+ map0 {
|
|
+ trip = <&soc_passive>;
|
|
+ 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>,
|
|
+ <&mali THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
|
|
+ };
|
|
+
|
|
+ map1 {
|
|
+ trip = <&soc_hot>;
|
|
+ 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>,
|
|
+ <&mali THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
|
|
+ };
|
|
+ };
|
|
+
|
|
+ trips {
|
|
+ soc_passive: soc-passive {
|
|
+ temperature = <80000>; /* millicelsius */
|
|
+ hysteresis = <2000>; /* millicelsius */
|
|
+ type = "passive";
|
|
+ };
|
|
+
|
|
+ soc_hot: soc-hot {
|
|
+ temperature = <90000>; /* millicelsius */
|
|
+ hysteresis = <2000>; /* millicelsius */
|
|
+ type = "hot";
|
|
+ };
|
|
+
|
|
+ soc_critical: soc-critical {
|
|
+ temperature = <110000>; /* millicelsius */
|
|
+ hysteresis = <2000>; /* millicelsius */
|
|
+ type = "critical";
|
|
+ };
|
|
+ };
|
|
+ };
|
|
+ };
|
|
+
|
|
mmcbus: bus@c8000000 {
|
|
compatible = "simple-bus";
|
|
reg = <0xc8000000 0x8000>;
|
|
@@ -221,6 +274,7 @@
|
|
clocks = <&clkc CLKID_CLK81>, <&clkc CLKID_MALI>;
|
|
clock-names = "bus", "core";
|
|
operating-points-v2 = <&gpu_opp_table>;
|
|
+ #cooling-cells = <2>; /* min followed by max */
|
|
};
|
|
};
|
|
}; /* end of / */
|