Re: [PATCH 3/7] dt-bindings: thermal: r9a09g047-tsu: Document the TSU unit
From: Rob Herring
Date: Thu Feb 20 2025 - 14:17:29 EST
On Thu, Feb 20, 2025 at 04:26:08PM +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.
>
> Signed-off-by: John Madieu <john.madieu.xa@xxxxxxxxxxxxxx>
> ---
> .../thermal/renesas,r9a09g047-tsu.yaml | 123 ++++++++++++++++++
> 1 file changed, 123 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..dbd3860a31d0
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/thermal/renesas,r9a09g047-tsu.yaml
> @@ -0,0 +1,123 @@
> +# 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@xxxxxxxxxxxxxx>
> +
> +description: |
Don't need '|' if there is no formatting to preserve.
> + The Temperature Sensor Unit (TSU) is an integrated thermal sensor that monitors
Wrap lines at <80 char.
> + 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: S12TSUADI1
> + - const: S12TSUADCMPI1
Odd names for the interrupts... 'S12TSUAD' is the same for both, so that
part is redundant from my perspective. I guess if these strings are
meaningful for anyone familiar with this h/w, then it's fine.
> +
> + "#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.
> +
> + renesas,tsu-operating-mode:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + enum: [0, 1]
> + description: |
> + TSU operating mode:
> + 0: Mode 0 - Conversion started by software
> + 1: Mode 1 - Conversion started by ELC trigger
> +
> +required:
> + - compatible
> + - reg
> + - clocks
> + - resets
> + - power-domains
> + - interrupts
> + - interrupt-names
> + - "#thermal-sensor-cells"
> + - renesas,tsu-operating-mode
> + - 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 = <0 0x14002000 0 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 = "S12TSUADI1", "S12TSUADCMPI1";
> + #thermal-sensor-cells = <0>;
> + renesas,tsu-operating-mode = <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
>