# SPDX-License-Identifier: GPL-2.0-only
# Copyright (C) 2020 Renesas Electronics Corp.
%YAML 1.2
---
$id: http://devicetree.org/schemas/thermal/rcar-gen3-thermal.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Renesas R-Car Gen3 Thermal Sensor

description:
  On R-Car Gen3 SoCs, the thermal sensor controllers (TSC) control the thermal
  sensors (THS) which are the analog circuits for measuring temperature (Tj)
  inside the LSI.

maintainers:
  - Niklas Söderlund <niklas.soderlund@ragnatech.se>

properties:
  compatible:
    enum:
      - renesas,r8a774a1-thermal # RZ/G2M
      - renesas,r8a774b1-thermal # RZ/G2N
      - renesas,r8a774e1-thermal # RZ/G2H
      - renesas,r8a7795-thermal  # R-Car H3
      - renesas,r8a7796-thermal  # R-Car M3-W
      - renesas,r8a77961-thermal # R-Car M3-W+
      - renesas,r8a77965-thermal # R-Car M3-N
      - renesas,r8a77980-thermal # R-Car V3H
  reg:
    minItems: 2
    maxItems: 3
    items:
      - description: TSC1 registers
      - description: TSC2 registers
      - description: TSC3 registers

  interrupts:
    items:
      - description: TEMP1 interrupt
      - description: TEMP2 interrupt
      - description: TEMP3 interrupt

  clocks:
    maxItems: 1

  power-domains:
    maxItems: 1

  resets:
    maxItems: 1

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

required:
  - compatible
  - reg
  - interrupts
  - clocks
  - power-domains
  - resets
  - "#thermal-sensor-cells"

additionalProperties: false

examples:
  - |
    #include <dt-bindings/clock/r8a7795-cpg-mssr.h>
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    #include <dt-bindings/power/r8a7795-sysc.h>

    tsc: thermal@e6198000 {
            compatible = "renesas,r8a7795-thermal";
            reg = <0xe6198000 0x100>,
                  <0xe61a0000 0x100>,
                  <0xe61a8000 0x100>;
            interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>,
                         <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>,
                         <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
            clocks = <&cpg CPG_MOD 522>;
            power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
            resets = <&cpg 522>;
            #thermal-sensor-cells = <1>;
    };

    thermal-zones {
            sensor_thermal: sensor-thermal {
                    polling-delay-passive = <250>;
                    polling-delay = <1000>;
                    thermal-sensors = <&tsc 0>;

                    trips {
                            sensor1_crit: sensor1-crit {
                                    temperature = <90000>;
                                    hysteresis = <2000>;
                                    type = "critical";
                            };
                    };
            };
    };
