1*1aab6b81SDmitry Osipenko# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*1aab6b81SDmitry Osipenko%YAML 1.2 3*1aab6b81SDmitry Osipenko--- 4*1aab6b81SDmitry Osipenko$id: http://devicetree.org/schemas/thermal/nvidia,tegra30-tsensor.yaml# 5*1aab6b81SDmitry Osipenko$schema: http://devicetree.org/meta-schemas/core.yaml# 6*1aab6b81SDmitry Osipenko 7*1aab6b81SDmitry Osipenkotitle: NVIDIA Tegra30 Thermal Sensor 8*1aab6b81SDmitry Osipenko 9*1aab6b81SDmitry Osipenkomaintainers: 10*1aab6b81SDmitry Osipenko - Dmitry Osipenko <digetx@gmail.com> 11*1aab6b81SDmitry Osipenko - Jon Hunter <jonathanh@nvidia.com> 12*1aab6b81SDmitry Osipenko - Thierry Reding <thierry.reding@gmail.com> 13*1aab6b81SDmitry Osipenko 14*1aab6b81SDmitry Osipenkodescription: | 15*1aab6b81SDmitry Osipenko TSENSOR provides thermal and voltage sensors which monitor temperature 16*1aab6b81SDmitry Osipenko and voltage of the chip. Sensors are placed across the die to gauge the 17*1aab6b81SDmitry Osipenko temperature of the whole chip. The TSENSOR module: 18*1aab6b81SDmitry Osipenko 19*1aab6b81SDmitry Osipenko Generates an interrupt to SW to lower temperature via DVFS on reaching 20*1aab6b81SDmitry Osipenko a certain thermal/voltage threshold. 21*1aab6b81SDmitry Osipenko 22*1aab6b81SDmitry Osipenko Generates a signal to the CAR to reduce CPU frequency by half on reaching 23*1aab6b81SDmitry Osipenko a certain thermal/voltage threshold. 24*1aab6b81SDmitry Osipenko 25*1aab6b81SDmitry Osipenko Generates a signal to the PMC when the temperature reaches dangerously high 26*1aab6b81SDmitry Osipenko levels to reset the chip and sets a flag in the PMC. 27*1aab6b81SDmitry Osipenko 28*1aab6b81SDmitry Osipenko TSENSOR has two channels which monitor two different spots of the SoC. 29*1aab6b81SDmitry Osipenko 30*1aab6b81SDmitry Osipenkoproperties: 31*1aab6b81SDmitry Osipenko compatible: 32*1aab6b81SDmitry Osipenko const: nvidia,tegra30-tsensor 33*1aab6b81SDmitry Osipenko 34*1aab6b81SDmitry Osipenko reg: 35*1aab6b81SDmitry Osipenko maxItems: 1 36*1aab6b81SDmitry Osipenko 37*1aab6b81SDmitry Osipenko clocks: 38*1aab6b81SDmitry Osipenko maxItems: 1 39*1aab6b81SDmitry Osipenko 40*1aab6b81SDmitry Osipenko resets: 41*1aab6b81SDmitry Osipenko maxItems: 1 42*1aab6b81SDmitry Osipenko 43*1aab6b81SDmitry Osipenko interrupts: 44*1aab6b81SDmitry Osipenko maxItems: 1 45*1aab6b81SDmitry Osipenko 46*1aab6b81SDmitry Osipenko "#thermal-sensor-cells": 47*1aab6b81SDmitry Osipenko const: 1 48*1aab6b81SDmitry Osipenko 49*1aab6b81SDmitry Osipenko assigned-clock-parents: true 50*1aab6b81SDmitry Osipenko assigned-clock-rates: true 51*1aab6b81SDmitry Osipenko assigned-clocks: true 52*1aab6b81SDmitry Osipenko 53*1aab6b81SDmitry Osipenkorequired: 54*1aab6b81SDmitry Osipenko - compatible 55*1aab6b81SDmitry Osipenko - reg 56*1aab6b81SDmitry Osipenko - clocks 57*1aab6b81SDmitry Osipenko - resets 58*1aab6b81SDmitry Osipenko - interrupts 59*1aab6b81SDmitry Osipenko - "#thermal-sensor-cells" 60*1aab6b81SDmitry Osipenko 61*1aab6b81SDmitry OsipenkoadditionalProperties: false 62*1aab6b81SDmitry Osipenko 63*1aab6b81SDmitry Osipenkoexamples: 64*1aab6b81SDmitry Osipenko - | 65*1aab6b81SDmitry Osipenko thermal-sensor@70014000 { 66*1aab6b81SDmitry Osipenko compatible = "nvidia,tegra30-tsensor"; 67*1aab6b81SDmitry Osipenko reg = <0x70014000 0x500>; 68*1aab6b81SDmitry Osipenko interrupts = <0 102 4>; 69*1aab6b81SDmitry Osipenko clocks = <&clk 100>; 70*1aab6b81SDmitry Osipenko resets = <&rst 100>; 71*1aab6b81SDmitry Osipenko 72*1aab6b81SDmitry Osipenko #thermal-sensor-cells = <1>; 73*1aab6b81SDmitry Osipenko }; 74