The Renesas RZ/G3E SoC includes a Thermal Sensor Unit (TSU) block designed
to measure the junction temperature. The device provides real-time temperature
measurements for thermal management, utilizing a single dedicated channel
(channel 1) for temperature sensing.
Signed-off-by: John Madieu <john.madieu.xa@bp.renesas.com>
---
v1 -> v2:
* Fix reg property specifier to get rid of yamlint warnings
* Fix IRQ name to reflect TSU expectations
v2 -> v3:
* Remove useless 'renesas,tsu-operating-mode' property
.../thermal/renesas,r9a09g047-tsu.yaml | 113 ++++++++++++++++++
1 file changed, 113 insertions(+)
create mode 100644 Documentation/devicetree/bindings/thermal/renesas,r9a09g047-tsu.yaml
diff --git a/Documentation/devicetree/bindings/thermal/renesas,r9a09g047-tsu.yaml b/Documentation/devicetree/bindings/thermal/renesas,r9a09g047-tsu.yaml
new file mode 100644
index 000000000000..46f0646d1c4f
--- /dev/null
+++ b/Documentation/devicetree/bindings/thermal/renesas,r9a09g047-tsu.yaml
@@ -0,0 +1,113 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/thermal/renesas,r9a09g047-tsu.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Renesas RZ/G3E Temperature Sensor Unit (TSU)
+
+maintainers:
+ - John Madieu <john.madieu.xa@bp.renesas.com>
+
+description:
+ The Temperature Sensor Unit (TSU) is an integrated thermal sensor that
+ monitors the chip temperature on the Renesas RZ/G3E SoC. The TSU provides
+ real-time temperature measurements for thermal management.
+
+properties:
+ compatible:
+ const: renesas,r9a09g047-tsu
+
+ reg:
+ maxItems: 1
+
+ clocks:
+ maxItems: 1
+
+ resets:
+ maxItems: 1
+
+ power-domains:
+ maxItems: 1
+
+ interrupts:
+ description: |
+ Interrupt specifiers for the TSU:
+ - S12TSUADI1: Conversion complete interrupt signal (pulse)
+ - S12TSUADCMPI1: Comparison result interrupt signal (level)
+
+ interrupt-names:
+ items:
+ - const: adi
+ - const: adcmpi
+
+ "#thermal-sensor-cells":
+ const: 0
+
+ renesas,tsu-calibration-sys:
+ $ref: /schemas/types.yaml#/definitions/phandle
+ description: |
+ Phandle to the system controller (sys) that contains the TSU
+ calibration values used for temperature calculations.
+
+required:
+ - compatible
+ - reg
+ - clocks
+ - resets
+ - power-domains
+ - interrupts
+ - interrupt-names
+ - "#thermal-sensor-cells"
+ - renesas,tsu-calibration-sys
+
+additionalProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/clock/renesas,r9a09g047-cpg.h>
+ #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+ tsu: thermal@14002000 {
+ compatible = "renesas,r9a09g047-tsu";
+ reg = <0x14002000 0x1000>;
+ clocks = <&cpg CPG_MOD 0x10a>;
+ resets = <&cpg 0xf8>;
+ power-domains = <&cpg>;
+ interrupts = <GIC_SPI 250 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 251 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "adi", "adcmpi";
+ #thermal-sensor-cells = <0>;
+ renesas,tsu-calibration-sys = <&sys>;
+ };
+
+ thermal-zones {
+ cpu-thermal {
+ polling-delay = <1000>;
+ polling-delay-passive = <250>;
+ thermal-sensors = <&tsu>;
+
+ cooling-maps {
+ map0 {
+ trip = <&target>;
+ cooling-device = <&cpu0 0 3>, <&cpu1 0 3>,
+ <&cpu2 0 3>, <&cpu3 0 3>;
+ contribution = <1024>;
+ };
+ };
+
+ trips {
+ target: trip-point {
+ temperature = <95000>;
+ hysteresis = <1000>;
+ type = "passive";
+ };
+
+ sensor_crit: sensor-crit {
+ temperature = <120000>;
+ hysteresis = <1000>;
+ type = "critical";
+ };
+ };
+ };
+ };
--
2.25.1
On Sat, Mar 15, 2025 at 09:12:12AM +0100, John Madieu wrote:
> The Renesas RZ/G3E SoC includes a Thermal Sensor Unit (TSU) block designed
> to measure the junction temperature. The device provides real-time temperature
> measurements for thermal management, utilizing a single dedicated channel
> (channel 1) for temperature sensing.
Please wrap commit message according to Linux coding style / submission
process (neither too early nor over the limit):
https://elixir.bootlin.com/linux/v6.4-rc1/source/Documentation/process/submitting-patches.rst#L597
Please run scripts/checkpatch.pl and fix reported warnings. After that,
run also 'scripts/checkpatch.pl --strict' and (probably) fix more
warnings. Some warnings can be ignored, especially from --strict run,
but the code here looks like it needs a fix. Feel free to get in touch
if the warning is not clear.
>
> Signed-off-by: John Madieu <john.madieu.xa@bp.renesas.com>
> ---
> v1 -> v2:
> * Fix reg property specifier to get rid of yamlint warnings
> * Fix IRQ name to reflect TSU expectations
...
> + interrupts:
> + description: |
> + Interrupt specifiers for the TSU:
> + - S12TSUADI1: Conversion complete interrupt signal (pulse)
> + - S12TSUADCMPI1: Comparison result interrupt signal (level)
Same problems as before - you need to list and describe items to have
constraints. Otherwise why 5 interrupts are allowed but only two
interrupt-names (test this)?
There is no syntax like above in any other bindings. If you found such,
please share the filename so we can fix it.
> +
> + interrupt-names:
> + items:
> + - const: adi
> + - const: adcmpi
> +
> + "#thermal-sensor-cells":
> + const: 0
> +
> + renesas,tsu-calibration-sys:
> + $ref: /schemas/types.yaml#/definitions/phandle
> + description: |
> + Phandle to the system controller (sys) that contains the TSU
> + calibration values used for temperature calculations.
> +
> +required:
> + - compatible
> + - reg
> + - clocks
> + - resets
> + - power-domains
> + - interrupts
> + - interrupt-names
> + - "#thermal-sensor-cells"
> + - renesas,tsu-calibration-sys
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + #include <dt-bindings/clock/renesas,r9a09g047-cpg.h>
> + #include <dt-bindings/interrupt-controller/arm-gic.h>
> +
> + tsu: thermal@14002000 {
> + compatible = "renesas,r9a09g047-tsu";
> + reg = <0x14002000 0x1000>;
> + clocks = <&cpg CPG_MOD 0x10a>;
> + resets = <&cpg 0xf8>;
> + power-domains = <&cpg>;
> + interrupts = <GIC_SPI 250 IRQ_TYPE_EDGE_RISING>,
> + <GIC_SPI 251 IRQ_TYPE_LEVEL_HIGH>;
> + interrupt-names = "adi", "adcmpi";
> + #thermal-sensor-cells = <0>;
> + renesas,tsu-calibration-sys = <&sys>;
> + };
> +
> + thermal-zones {
Drop the node, no need to show how to use provider binding.
Best regards,
Krzysztof
© 2016 - 2025 Red Hat, Inc.