162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
262306a36Sopenharmony_ci%YAML 1.2
362306a36Sopenharmony_ci---
462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/thermal/nvidia,tegra30-tsensor.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: NVIDIA Tegra30 Thermal Sensor
862306a36Sopenharmony_ci
962306a36Sopenharmony_cimaintainers:
1062306a36Sopenharmony_ci  - Dmitry Osipenko <digetx@gmail.com>
1162306a36Sopenharmony_ci  - Jon Hunter <jonathanh@nvidia.com>
1262306a36Sopenharmony_ci  - Thierry Reding <thierry.reding@gmail.com>
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_cidescription: |
1562306a36Sopenharmony_ci  TSENSOR provides thermal and voltage sensors which monitor temperature
1662306a36Sopenharmony_ci  and voltage of the chip. Sensors are placed across the die to gauge the
1762306a36Sopenharmony_ci  temperature of the whole chip. The TSENSOR module:
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ci    Generates an interrupt to SW to lower temperature via DVFS on reaching
2062306a36Sopenharmony_ci    a certain thermal/voltage threshold.
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_ci    Generates a signal to the CAR to reduce CPU frequency by half on reaching
2362306a36Sopenharmony_ci    a certain thermal/voltage threshold.
2462306a36Sopenharmony_ci
2562306a36Sopenharmony_ci    Generates a signal to the PMC when the temperature reaches dangerously high
2662306a36Sopenharmony_ci    levels to reset the chip and sets a flag in the PMC.
2762306a36Sopenharmony_ci
2862306a36Sopenharmony_ci  TSENSOR has two channels which monitor two different spots of the SoC.
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ciproperties:
3162306a36Sopenharmony_ci  compatible:
3262306a36Sopenharmony_ci    const: nvidia,tegra30-tsensor
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_ci  reg:
3562306a36Sopenharmony_ci    maxItems: 1
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_ci  clocks:
3862306a36Sopenharmony_ci    maxItems: 1
3962306a36Sopenharmony_ci
4062306a36Sopenharmony_ci  resets:
4162306a36Sopenharmony_ci    maxItems: 1
4262306a36Sopenharmony_ci
4362306a36Sopenharmony_ci  interrupts:
4462306a36Sopenharmony_ci    maxItems: 1
4562306a36Sopenharmony_ci
4662306a36Sopenharmony_ci  "#thermal-sensor-cells":
4762306a36Sopenharmony_ci    const: 1
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_ci  assigned-clock-parents: true
5062306a36Sopenharmony_ci  assigned-clock-rates: true
5162306a36Sopenharmony_ci  assigned-clocks: true
5262306a36Sopenharmony_ci
5362306a36Sopenharmony_cirequired:
5462306a36Sopenharmony_ci  - compatible
5562306a36Sopenharmony_ci  - reg
5662306a36Sopenharmony_ci  - clocks
5762306a36Sopenharmony_ci  - resets
5862306a36Sopenharmony_ci  - interrupts
5962306a36Sopenharmony_ci  - "#thermal-sensor-cells"
6062306a36Sopenharmony_ci
6162306a36Sopenharmony_ciadditionalProperties: false
6262306a36Sopenharmony_ci
6362306a36Sopenharmony_ciexamples:
6462306a36Sopenharmony_ci  - |
6562306a36Sopenharmony_ci    thermal-sensor@70014000 {
6662306a36Sopenharmony_ci      compatible = "nvidia,tegra30-tsensor";
6762306a36Sopenharmony_ci      reg = <0x70014000 0x500>;
6862306a36Sopenharmony_ci      interrupts = <0 102 4>;
6962306a36Sopenharmony_ci      clocks = <&clk 100>;
7062306a36Sopenharmony_ci      resets = <&rst 100>;
7162306a36Sopenharmony_ci
7262306a36Sopenharmony_ci      #thermal-sensor-cells = <1>;
7362306a36Sopenharmony_ci    };
74