[PATCH 3/3] arm64: dts: exynosautov920: Add tmu hardware binding
Krzysztof Kozlowski
krzk at kernel.org
Sat Aug 30 02:08:02 PDT 2025
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 at samsung.com>
> ---
> .../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 at 10070000 {
> samsung,cluster-index = <1>;
> };
>
> + tmuctrl_top: tmutop-thermal at 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
More information about the linux-arm-kernel
mailing list