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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [Linux SoC Development]     [Linux Rockchip Development]     [Linux for Synopsys ARC Processors]    
  • [Linux on Unisoc (RDA Micro) SoCs]     [Linux Actions SoC]     [Linux USB Development]     [Video for Linux]     [Linux Audio Users]     [Linux SCSI]     [Yosemite News]

  •   Powered by Linux