This patch series introduces thermal sensor declaration to the Meson A1
common dtsi file. It also sets up thermal zones for the AD402 reference
board. It depends on the series with A1 thermal support at [1].
Changes v2 since v1 at [2]:
- provide Neil RvB for cooling-cells dts patch
- purge unnecessary 'amlogic,a1-thermal' fallback
Links:
[1] - https://lore.kernel.org/all/[email protected]/
[2] - https://lore.kernel.org/all/[email protected]/
Signed-off-by: Dmitry Rokosov <[email protected]>
Dmitry Rokosov (3):
arm64: dts: amlogic: a1: add cooling-cells for DVFS feature
arm64: dts: amlogic: a1: introduce cpu temperature sensor
arm64: dts: amlogic: ad402: setup thermal-zones
.../arm64/boot/dts/amlogic/meson-a1-ad402.dts | 45 +++++++++++++++++++
arch/arm64/boot/dts/amlogic/meson-a1.dtsi | 13 ++++++
2 files changed, 58 insertions(+)
--
2.43.0
It's used for CPU with DVFS feature to specify minimum and maximum
cooling state used in the reference.
Without these values DVFS will not work and dtbs_check will raise the
error.
Signed-off-by: Dmitry Rokosov <[email protected]>
Reviewed-by: Neil Armstrong <[email protected]>
---
arch/arm64/boot/dts/amlogic/meson-a1.dtsi | 2 ++
1 file changed, 2 insertions(+)
diff --git a/arch/arm64/boot/dts/amlogic/meson-a1.dtsi b/arch/arm64/boot/dts/amlogic/meson-a1.dtsi
index fbee986421f1..f65d4a77ee52 100644
--- a/arch/arm64/boot/dts/amlogic/meson-a1.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-a1.dtsi
@@ -32,6 +32,7 @@ cpu0: cpu@0 {
reg = <0x0 0x0>;
enable-method = "psci";
next-level-cache = <&l2>;
+ #cooling-cells = <2>;
};
cpu1: cpu@1 {
@@ -40,6 +41,7 @@ cpu1: cpu@1 {
reg = <0x0 0x1>;
enable-method = "psci";
next-level-cache = <&l2>;
+ #cooling-cells = <2>;
};
l2: l2-cache0 {
--
2.43.0
The A1 SoC family has only one thermal sensor for CPU temperature
measurement. It is required to set the TS clock rate to 500kHz to make
it workable.
Signed-off-by: Dmitry Rokosov <[email protected]>
---
arch/arm64/boot/dts/amlogic/meson-a1.dtsi | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/arch/arm64/boot/dts/amlogic/meson-a1.dtsi b/arch/arm64/boot/dts/amlogic/meson-a1.dtsi
index f65d4a77ee52..de77eb53d1dc 100644
--- a/arch/arm64/boot/dts/amlogic/meson-a1.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-a1.dtsi
@@ -854,6 +854,17 @@ usb2_phy1: phy@4000 {
power-domains = <&pwrc PWRC_USB_ID>;
};
+ cpu_temp: temperature-sensor@4c00 {
+ compatible = "amlogic,a1-cpu-thermal";
+ reg = <0x0 0x4c00 0x0 0x50>;
+ interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clkc_periphs CLKID_TS>;
+ assigned-clocks = <&clkc_periphs CLKID_TS>;
+ assigned-clock-rates = <500000>;
+ #thermal-sensor-cells = <0>;
+ amlogic,ao-secure = <&sec_AO>;
+ };
+
hwrng: rng@5118 {
compatible = "amlogic,meson-rng";
reg = <0x0 0x5118 0x0 0x4>;
--
2.43.0
There is one thermal zone with 3 trip points: soc_passive, soc_hot, and
soc_critical, as well as two cooling maps.
Signed-off-by: Dmitry Rokosov <[email protected]>
---
.../arm64/boot/dts/amlogic/meson-a1-ad402.dts | 45 +++++++++++++++++++
1 file changed, 45 insertions(+)
diff --git a/arch/arm64/boot/dts/amlogic/meson-a1-ad402.dts b/arch/arm64/boot/dts/amlogic/meson-a1-ad402.dts
index 6c02301840ff..2d22e8b45c6d 100644
--- a/arch/arm64/boot/dts/amlogic/meson-a1-ad402.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-a1-ad402.dts
@@ -7,6 +7,7 @@
/dts-v1/;
#include "meson-a1.dtsi"
+#include <dt-bindings/thermal/thermal.h>
#include <dt-bindings/gpio/gpio.h>
@@ -177,6 +178,50 @@ codec {
};
};
};
+
+ thermal-zones {
+ soc_thermal: soc_thermal {
+ polling-delay = <1000>;
+ polling-delay-passive = <100>;
+ sustainable-power = <130>;
+
+ thermal-sensors = <&cpu_temp>;
+
+ trips {
+ soc_passive: soc-passive {
+ temperature = <70000>;
+ hysteresis = <2000>;
+ type = "passive";
+ };
+
+ soc_hot: soc-hot {
+ temperature = <85000>;
+ hysteresis = <5000>;
+ type = "hot";
+ };
+
+ soc_critical: soc-critical {
+ temperature = <110000>;
+ hysteresis = <1000>;
+ type = "critical";
+ };
+ };
+
+ soc_cooling_maps: cooling-maps {
+ map0 {
+ trip = <&soc_passive>;
+ cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+ <&cpu1 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>;
+ };
+ };
+ };
+ };
};
/* Bluetooth HCI H4 */
--
2.43.0
Hello Neil,
A1 Thermal Sensor was applied to linux-pm for v6.10-rc1:
https://lore.kernel.org/all/[email protected]/
Could you please advise if it's enough to proceed with this series? Or
do I need to do something more?
On Thu, Mar 28, 2024 at 10:26:34PM +0300, Dmitry Rokosov wrote:
> This patch series introduces thermal sensor declaration to the Meson A1
> common dtsi file. It also sets up thermal zones for the AD402 reference
> board. It depends on the series with A1 thermal support at [1].
>
> Changes v2 since v1 at [2]:
> - provide Neil RvB for cooling-cells dts patch
> - purge unnecessary 'amlogic,a1-thermal' fallback
>
> Links:
> [1] - https://lore.kernel.org/all/[email protected]/
> [2] - https://lore.kernel.org/all/[email protected]/
>
> Signed-off-by: Dmitry Rokosov <[email protected]>
>
> Dmitry Rokosov (3):
> arm64: dts: amlogic: a1: add cooling-cells for DVFS feature
> arm64: dts: amlogic: a1: introduce cpu temperature sensor
> arm64: dts: amlogic: ad402: setup thermal-zones
>
> .../arm64/boot/dts/amlogic/meson-a1-ad402.dts | 45 +++++++++++++++++++
> arch/arm64/boot/dts/amlogic/meson-a1.dtsi | 13 ++++++
> 2 files changed, 58 insertions(+)
--
Thank you,
Dmitry
Hello Neil,
Excuse me, pls ping.
On Fri, May 03, 2024 at 09:42:22PM +0300, Dmitry Rokosov wrote:
> Hello Neil,
>
> A1 Thermal Sensor was applied to linux-pm for v6.10-rc1:
>
> https://lore.kernel.org/all/[email protected]/
>
> Could you please advise if it's enough to proceed with this series? Or
> do I need to do something more?
>
> On Thu, Mar 28, 2024 at 10:26:34PM +0300, Dmitry Rokosov wrote:
> > This patch series introduces thermal sensor declaration to the Meson A1
> > common dtsi file. It also sets up thermal zones for the AD402 reference
> > board. It depends on the series with A1 thermal support at [1].
> >
> > Changes v2 since v1 at [2]:
> > - provide Neil RvB for cooling-cells dts patch
> > - purge unnecessary 'amlogic,a1-thermal' fallback
> >
> > Links:
> > [1] - https://lore.kernel.org/all/[email protected]/
> > [2] - https://lore.kernel.org/all/[email protected]/
> >
> > Signed-off-by: Dmitry Rokosov <[email protected]>
> >
> > Dmitry Rokosov (3):
> > arm64: dts: amlogic: a1: add cooling-cells for DVFS feature
> > arm64: dts: amlogic: a1: introduce cpu temperature sensor
> > arm64: dts: amlogic: ad402: setup thermal-zones
> >
> > .../arm64/boot/dts/amlogic/meson-a1-ad402.dts | 45 +++++++++++++++++++
> > arch/arm64/boot/dts/amlogic/meson-a1.dtsi | 13 ++++++
> > 2 files changed, 58 insertions(+)
>
> --
> Thank you,
> Dmitry
--
Thank you,
Dmitry
Hi,
On Thu, 28 Mar 2024 22:26:34 +0300, Dmitry Rokosov wrote:
> This patch series introduces thermal sensor declaration to the Meson A1
> common dtsi file. It also sets up thermal zones for the AD402 reference
> board. It depends on the series with A1 thermal support at [1].
>
> Changes v2 since v1 at [2]:
> - provide Neil RvB for cooling-cells dts patch
> - purge unnecessary 'amlogic,a1-thermal' fallback
>
> [...]
Thanks, Applied to https://git.kernel.org/pub/scm/linux/kernel/git/amlogic/linux.git (v6.11/arm64-dt)
[1/3] arm64: dts: amlogic: a1: add cooling-cells for DVFS feature
https://git.kernel.org/amlogic/c/947bde9069c8241afe401433a6eff276595bb073
[2/3] arm64: dts: amlogic: a1: introduce cpu temperature sensor
https://git.kernel.org/amlogic/c/049d141161903e656d9475950bb976240802c01c
[3/3] arm64: dts: amlogic: ad402: setup thermal-zones
https://git.kernel.org/amlogic/c/593ab951232be4779e77f5b1bee0bef4e6fc1022
These changes has been applied on the intermediate git tree [1].
The v6.11/arm64-dt branch will then be sent via a formal Pull Request to the Linux SoC maintainers
for inclusion in their intermediate git branches in order to be sent to Linus during
the next merge window, or sooner if it's a set of fixes.
In the cases of fixes, those will be merged in the current release candidate
kernel and as soon they appear on the Linux master branch they will be
backported to the previous Stable and Long-Stable kernels [2].
The intermediate git branches are merged daily in the linux-next tree [3],
people are encouraged testing these pre-release kernels and report issues on the
relevant mailing-lists.
If problems are discovered on those changes, please submit a signed-off-by revert
patch followed by a corrective changeset.
[1] https://git.kernel.org/pub/scm/linux/kernel/git/amlogic/linux.git
[2] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
[3] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
--
Neil