# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/thermal/renesas,r9a08g045-tsu.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Renesas RZ/G3S Thermal Sensor Unit

description:
  The thermal sensor unit (TSU) measures the temperature(Tj) inside
  the LSI.

maintainers:
  - Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>

$ref: thermal-sensor.yaml#

properties:
  compatible:
    const: renesas,r9a08g045-tsu

  reg:
    maxItems: 1

  clocks:
    items:
      - description: TSU module clock

  power-domains:
    maxItems: 1

  resets:
    items:
      - description: TSU module reset

  io-channels:
    items:
      - description: ADC channel which reports the TSU temperature

  io-channel-names:
    items:
      - const: tsu

  "#thermal-sensor-cells":
    const: 0

required:
  - compatible
  - reg
  - clocks
  - power-domains
  - resets
  - io-channels
  - io-channel-names
  - '#thermal-sensor-cells'

additionalProperties: false

examples:
  - |
    #include <dt-bindings/clock/r9a08g045-cpg.h>

    tsu: thermal@10059000 {
        compatible = "renesas,r9a08g045-tsu";
        reg = <0x10059000 0x1000>;
        clocks = <&cpg CPG_MOD R9A08G045_TSU_PCLK>;
        resets = <&cpg R9A08G045_TSU_PRESETN>;
        power-domains = <&cpg>;
        #thermal-sensor-cells = <0>;
        io-channels = <&adc 8>;
        io-channel-names = "tsu";
    };

    thermal-zones {
        cpu-thermal {
            polling-delay-passive = <250>;
            polling-delay = <1000>;
            thermal-sensors = <&tsu>;

            trips {
                sensor_crit: sensor-crit {
                    temperature = <125000>;
                    hysteresis = <1000>;
                    type = "critical";
                };
                target: trip-point {
                    temperature = <100000>;
                    hysteresis = <1000>;
                    type = "passive";
                };
            };
        };
    };
