tegrakernel/kernel/nvidia/Documentation/devicetree/bindings/thermal/tegra-skin.txt

131 lines
3.6 KiB
Plaintext

Tegra-skin driver binding
-------------------------
NVIDIA tegra skin driver estimates skin temperature of tegra devices. This
virtual sensor(s) is registered to Generic Thermal Framework and has the option
to expose estimated skin temperature value(s) at multiple points (hotspots) on
the device.
/tegra_skin_thermal
Required properties:
- compatible:
- should be "nvidia,tegra-skin-thermal"
- #thermal-sensor-cells: should be 1. See ./thermal.txt for details.
Optional properties:
- io-channels: iio channels that the driver is expected to poll
- io-channel-names: channel names in the order of io-channels that the
driver is expected to poll
- skin-sensor@<N>:
- See below for details
- power_feature@<N>:
- See below for details
- hotspot@<N>:
- See below for details
/tegra_skin_thermal/skin-sensor@<N>
Required properties:
- thermal-sensor
- should match the thermal sensor id used in the thermal-sensors
attribute in the thermal-zone definition.
For Example, in thermal zone definition if
thermal-sensors = <&{/tegra_skin_thermal} 2>;
then thermal-sensor should be 2.
- hotspot-list
- comma separated phandle list to hotspot definition. The sensor
would return the max temperature reported by each hotspot.
See below for hotspot configuration.
/tegra_skin_thermal/hotspot@<N>
Define the attributes of each hotspot
Required properties
- power-features-list: comma separated phandle, arguments list to
power feature definition. The number of arguments is defined by
#power-feature-cells of the respective power feature.
- offset: offset of hotspot
- rc_k: damping coefficient of hotspot
- reference-sensor: reference sensor used by the hotspot estimator
/tegra_skin_thermal/power_feature@<N>
Required properties
- type: could be IIO_SUBSYSTEM, BACKLIGHT_BRIGHTNESS
- rc_k: damping coefficient for the power_feature
- resistance: thermal resitance of the power feature
- #power-feature-cells: number of arguments for the power-feature in
power-features-list
/tegra_skin_thermal/skin-sensor@<N> is registered as a Thermal Zone using the
thermal framework. See ./thermal.txt for more details.
Example:-
#include <dt-bindings/thermal/thermal.h>
#include <dt-bindings/thermal/tegra186-skin-thermal.h>
#include <dt-bindings/iio/meter/ina3221x.h>
/ {
tegra_skin_thermal {
compatible = "nvidia,tegra-skin-thermal";
#thermal-sensor-cells = <1>;
io-channels = <&ina3221x_40 INA3221_CHAN_INDEX(0, VOLTAGE, NORMAL)>,
<&ina3221x_40 INA3221_CHAN_INDEX(0, CURRENT, NORMAL)>,
<&ina3221x_41 INA3221_CHAN_INDEX(0, POWER, NORMAL)>;
io-channel-names = "gpu-voltage", "gpu-current", "vddin-power";
pf_backlight: power_feature@0 {
#power-feature-cells = <1>;
type = <BACKLIGHT_BRIGHTNESS>;
rc_k = <1>;
resistance = <1>;
};
pf_iio_ina3221: power_feature@1 {
#power-feature-cells = <1>;
type = <IIO_SUBSYSTEM>;
rc_k = <1>;
resistance = <1>;
};
hs0: hotspot@0 {
power-features-list = <&pf_backlight &lp8557_backlight
&pf_iio_ina3221 0
&pf_iio_ina3221 1>;
offset = <3>;
rc_k = <1>;
reference-sensor = <&Tboard_tegra>;
};
hs1: hotspot@1 {
power-features-list = <&pf_backlight &lp8557_backlight>;
offset = <3>;
rc_k = <1>;
reference-sensor = <&Tboard_tegra>;
};
hs2: hotspot@2 {
power-features-list = <&pf_backlight &lp8557_backlight
&pf_iio_ina3221 2>;
offset = <3>;
rc_k = <1>;
reference-sensor = <&Tboard_tegra>;
};
skin-sensor@0 {
thermal-sensor = <0>;
hotspot-list = <&hs0 &hs1>;
};
skin-sensor@1 {
thermal-sensor = <1>;
hotspot-list = <&hs1>;
};
skin-sensor@2 {
thermal-sensor = <2>;
hotspot-list = <&hs2>;
};
};
};