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

title: NVIDIA Tegra30 Thermal Sensor

maintainers:
  - Dmitry Osipenko <digetx@gmail.com>
  - Jon Hunter <jonathanh@nvidia.com>
  - Thierry Reding <thierry.reding@gmail.com>

description: |
  TSENSOR provides thermal and voltage sensors which monitor temperature
  and voltage of the chip. Sensors are placed across the die to gauge the
  temperature of the whole chip. The TSENSOR module:

    Generates an interrupt to SW to lower temperature via DVFS on reaching
    a certain thermal/voltage threshold.

    Generates a signal to the CAR to reduce CPU frequency by half on reaching
    a certain thermal/voltage threshold.

    Generates a signal to the PMC when the temperature reaches dangerously high
    levels to reset the chip and sets a flag in the PMC.

  TSENSOR has two channels which monitor two different spots of the SoC.

properties:
  compatible:
    const: nvidia,tegra30-tsensor

  reg:
    maxItems: 1

  clocks:
    maxItems: 1

  resets:
    maxItems: 1

  interrupts:
    maxItems: 1

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

  assigned-clock-parents: true
  assigned-clock-rates: true
  assigned-clocks: true

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

additionalProperties: false

examples:
  - |
    thermal-sensor@70014000 {
      compatible = "nvidia,tegra30-tsensor";
      reg = <0x70014000 0x500>;
      interrupts = <0 102 4>;
      clocks = <&clk 100>;
      resets = <&rst 100>;

      #thermal-sensor-cells = <1>;
    };