Re: [PATCH 3/3] arm64: dts: exynosautov920: Add tmu hardware binding

From: Krzysztof Kozlowski
Date: Sat Aug 30 2025 - 05:08:19 EST


On 25/08/2025 08:49, Shin Son wrote:
> Create a new exynosautov920-tmu.dtsi describing new TMU hardware
> and include it from exynosautov920.dtsi.
>
> The exynosautov920-tmu node uses the misc clock as its source
> and exposes two new DT properties:
>
> - tmu-name: identifies the TMU variant for sensor skipping
> - sensor-index-ranges: defines valid sensor index ranges for the bitmap
>
> This TMU binding defines six thermal zones with a critical trip point
> at 125 degrees:
>
> tmu_top : cpucl0-left, cpucl1
> tmu_sub0: cpucl0-right, cpucl2
> tmu_sub1: g3d, npu
>
> Signed-off-by: Shin Son <shin.son@xxxxxxxxxxx>
> ---
> .../boot/dts/exynos/exynosautov920-tmu.dtsi | 92 +++++++++++++++++++
> .../arm64/boot/dts/exynos/exynosautov920.dtsi | 34 +++++++
> 2 files changed, 126 insertions(+)
> create mode 100644 arch/arm64/boot/dts/exynos/exynosautov920-tmu.dtsi
>
> diff --git a/arch/arm64/boot/dts/exynos/exynosautov920-tmu.dtsi b/arch/arm64/boot/dts/exynos/exynosautov920-tmu.dtsi
> new file mode 100644
> index 000000000000..fa88e9bcdfec
> --- /dev/null
> +++ b/arch/arm64/boot/dts/exynos/exynosautov920-tmu.dtsi
> @@ -0,0 +1,92 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/*
> + * Samsung's ExynosAuto920 TMU configurations device tree source
> + *
> + * Copyright (c) 2020 Samsung Electronics Co., Ltd.
> + *
> + * Samsung's ExynosAuto920 SoC TMU(Thermal Managemenut Unit) are listed as
> + * device tree nodes in this file.
> + */
> +
> +/ {
> + thermal-zones {
> + cpucl0left-thermal {
> + polling-delay-passive = <0>;
> + polling-delay = <0>;
> + thermal-sensors = <&tmuctrl_top 0>;
> +
> + trips {
> + cpucl0_0_critical: cpucl0-0-critical {
> + temperature = <125000>; /* millicelsius */
> + hysteresis = <0>; /* millicelsius */
> + type = "critical";
> + };
> + };
> + };

Missing blank line.

> + cpucl0right-thermal {

It does not look like you tested the DTS against bindings. Please run
`make dtbs_check W=1` (see
Documentation/devicetree/bindings/writing-schema.rst or
https://www.linaro.org/blog/tips-and-tricks-for-validating-devicetree-sources-with-the-devicetree-schema/
for instructions).
Maybe you need to update your dtschema and yamllint. Don't rely on
distro packages for dtschema and be sure you are using the latest
released dtschema.

> + polling-delay-passive = <0>;
> + polling-delay = <0>;
> + thermal-sensors = <&tmuctrl_sub0 0>;
> +
> + trips {
> + cpucl0_1_critical: cpucl0-1-critical {
> + temperature = <125000>; /* millicelsius */
> + hysteresis = <0>; /* millicelsius */
> + type = "critical";
> + };
> + };
> + };
> + cpucl1-thermal {
> + polling-delay-passive = <0>;
> + polling-delay = <0>;
> + thermal-sensors = <&tmuctrl_top 1>;
> +
> + trips {
> + cpucl1_critical: cpucl1-critical {
> + temperature = <125000>; /* millicelsius */
> + hysteresis = <0>; /* millicelsius */
> + type = "critical";
> + };
> + };
> + };
> + cpucl2-thermal {
> + polling-delay-passive = <0>;
> + polling-delay = <0>;
> + thermal-sensors = <&tmuctrl_sub0 1>;
> +
> + trips {
> + cpucl2_critical: cpucl2-critical {
> + temperature = <125000>; /* millicelsius */
> + hysteresis = <0>; /* millicelsius */
> + type = "critical";
> + };
> + };
> + };
> + g3d-thermal {
> + polling-delay-passive = <0>;
> + polling-delay = <0>;
> + thermal-sensors = <&tmuctrl_sub1 0>;
> +
> + trips {
> + g3d_critical: g3d-critical {
> + temperature = <125000>; /* millicelsius */
> + hysteresis = <0>; /* millicelsius */
> + type = "critical";
> + };
> + };
> + };
> + npu-thermal {
> + polling-delay-passive = <0>;
> + polling-delay = <0>;
> + thermal-sensors = <&tmuctrl_sub1 1>;
> +
> + trips {
> + npu_critical: npu-critical {
> + temperature = <125000>; /* millicelsius */
> + hysteresis = <0>; /* millicelsius */
> + type = "critical";
> + };
> + };
> + };
> + };
> +};
> diff --git a/arch/arm64/boot/dts/exynos/exynosautov920.dtsi b/arch/arm64/boot/dts/exynos/exynosautov920.dtsi
> index 0fdf2062930a..a4ff941f8e43 100644
> --- a/arch/arm64/boot/dts/exynos/exynosautov920.dtsi
> +++ b/arch/arm64/boot/dts/exynos/exynosautov920.dtsi
> @@ -330,6 +330,39 @@ watchdog_cl1: watchdog@10070000 {
> samsung,cluster-index = <1>;
> };
>
> + tmuctrl_top: tmutop-thermal@100a0000 {

Node names should be generic. See also an explanation and list of
examples (not exhaustive) in DT specification:
https://devicetree-specification.readthedocs.io/en/latest/chapter2-devicetree-basics.html#generic-names-recommendation
If you cannot find a name matching your device, please check in kernel
sources for similar cases or you can grow the spec (via pull request to
DT spec repo).


Best regards,
Krzysztof