1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
|
Qualcomm's TSENS driver
The TSENS driver supports reading temperature from sensors across
the MSM. The driver defaults to support a 10 bit ADC.
The driver uses the Thermal sysfs framework to provide thermal
clients the ability to enable/disable the sensors, read trip zones,
read cool/warm temperature thresholds, set temperature thresholds
for cool/warm notification and receive notification on temperature
threshold events.
TSENS node
Required properties:
- compatible : should be "qcom,msm-tsens" for 8974, 9625, 8084, Samarium TSENS driver.
should be "qcom,msm8x10-tsens" for 8x10 TSENS driver.
should be "qcom,msm8x26-tsens" for 8x26 TSENS driver.
should be "qcom,fsm9900-tsens" for 9900 TSENS driver.
should be "qcom,mdm9630-tsens" for 9630 TSENS driver.
should be "qcom,msm8994-tsens" for 8994 TSENS driver.
should be "qcom,msm8996-tsens" for 8996 TSENS driver.
should be "qcom,msm8992-tsens" for 8992 TSENS driver.
should be "qcom,msm8916-tsens" for 8916 TSENS driver.
should be "qcom,msm8939-tsens" for 8939 TSENS driver.
should be "qcom,msm8909-tsens" for 8909 TSENS driver.
should be "qcom,msm8952-tsens" for 8952 TSENS driver.
should be "qcom,msmzirc-tsens" for zirc TSENS driver.
should be "qcom,mdm9607-tsens" for 9607 TSENS driver.
should be "qcom,msmtitanium-tsens" for titanium TSENS driver.
should be "qcom,msm8937-tsens" for 8937 TSENS driver.
should be "qcom,msmgold-tsens" for gold TSENS driver.
should be "qcom,msm8998-tsens" for 8998 TSENS driver.
should be "qcom,msmhamster-tsens" for hamster TSENS driver.
should be "qcom,sdm660-tsens" for 660 TSENS driver.
should be "qcom,sdm630-tsens" for 630 TSENS driver.
The compatible property is used to identify the respective fusemap to use
for the corresponding SoC.
- reg : offset and length of the TSENS registers with associated property in reg-names
as "tsens_physical" and QFPROM registers with associated property in reg-names
as "tsens_eeprom_physical". The efuse registers are used for storing
the calibration data for the individual sensors. If the gain and offset are
programmed by the TSENS control registers then adding the QFPROM register property
is optional.
- reg-names : resource names used for the physical address of the TSENS
registers, the QFPROM efuse primary calibration address region,
Should be "tsens_physical" for physical address of the TSENS,
"tsens_eeprom_physical" for physical address where primary
calibration data is stored. This includes the backup
calibration address region if TSENS calibration data is stored
in the region. The reg-name "tsens_eeprom_physical" property is
optional if the gain and offset are programmed by the TSENS
control registers and the status registers directly reports the TSENS
temperature readings.
- interrupts : TSENS interrupt to notify Upper/Lower temperature threshold.
- interrupt-names: Should be "tsens-upper-lower" for temperature threshold.
Add "tsens-critical" for Critical temperature threshold notification
in addition to "tsens-upper-lower" for 8996 TSENS since
8996 supports Upper/Lower and Critical temperature threshold.
- qcom,sensors : Total number of available Temperature sensors for TSENS.
- qcom,slope : One point calibration characterized slope data for each
sensor used to compute the offset. Slope is represented
as ADC code/DegC and the value is multipled by a factor
of 1000. If gain and offset are programmed by the TSENS control
registers then this property is optional.
Optional properties:
- qcom,calibration-less-mode : If present the pre-characterized data for offsets
are used else it defaults to use calibration data from QFPROM.
- qcom,tsens-local-init : If the flag is present the TSENS control registers are
initialized. If the boot configures the control register there is
no need to re-initialize them. The control registers are also
under a secure domain which can prevent them from being initialized
locally.
- qcom,sensor-id : If the flag is present map the TSENS sensors based on the
remote sensors that are enabled in HW. Ensure the mapping is not
more than the number of supported sensors.
- qcom,client-id : If the flag is present use it to identify the SW ID mapping
used to associate it with the controller and the physical sensor
mapping within the controller. The physical sensor mapping within
each controller is done using the qcom,sensor-id property. If the
property is not present the SW ID mapping with default from 0 to
total number of supported sensors with each controller instance.
- qcom,valid-status-check: If property is present, check the VALID bit is set
before reporting the temperature data.
- qcom,temp1-offset: If flag is present, Use these offset values
to be added for 30 deg calib points.
- qcom,temp2-offset: If flag is present, Use these offset values
to be added for 120 deg calib points.
- qcom,cycle-monitor: If flag is present, Use the value for cycle
completion monitoring.
- qcom,wd-bark: If flag is present, Use the value for watchdog bark.
Example:
tsens@fc4a8000 {
compatible = "qcom,msm-tsens";
reg = <0xfc4a8000 0x2000>,
<0xfc4b8000 0x1000>;
reg-names = "tsens_physical",
"tsens_eeprom_physical";
interrupts = <0 184 0>;
interrupt-names = "tsens-upper-lower";
qcom,calibration-less-mode;
qcom,sensors = <11>;
qcom,slope = <3200 3200 3200 3200 3200 3200 3200 3200 3200
3200>;
};
|