diff options
author | Donggeun Kim <dg77.kim@samsung.com> | 2011-09-07 05:49:08 -0400 |
---|---|---|
committer | Guenter Roeck <guenter.roeck@ericsson.com> | 2011-10-24 14:09:35 -0400 |
commit | 9d97e5c81e15afaef65d00f077f863c94f750839 (patch) | |
tree | 01df55fd37f2432ec03c29bf55cc97dfdb6f1b60 /Documentation/hwmon/exynos4_tmu | |
parent | 5cf231a346fb80d7945aa46e90186a068a3a001b (diff) |
hwmon: Add driver for EXYNOS4 TMU
This patch allows to read temperature
from TMU(Thermal Management Unit) of SAMSUNG EXYNOS4 series of SoC.
Signed-off-by: Donggeun Kim <dg77.kim@samsung.com>
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Guenter Roeck <guenter.roeck@ericsson.com>
Diffstat (limited to 'Documentation/hwmon/exynos4_tmu')
-rw-r--r-- | Documentation/hwmon/exynos4_tmu | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/Documentation/hwmon/exynos4_tmu b/Documentation/hwmon/exynos4_tmu new file mode 100644 index 000000000000..c3c6b41db607 --- /dev/null +++ b/Documentation/hwmon/exynos4_tmu | |||
@@ -0,0 +1,81 @@ | |||
1 | Kernel driver exynos4_tmu | ||
2 | ================= | ||
3 | |||
4 | Supported chips: | ||
5 | * ARM SAMSUNG EXYNOS4 series of SoC | ||
6 | Prefix: 'exynos4-tmu' | ||
7 | Datasheet: Not publicly available | ||
8 | |||
9 | Authors: Donggeun Kim <dg77.kim@samsung.com> | ||
10 | |||
11 | Description | ||
12 | ----------- | ||
13 | |||
14 | This driver allows to read temperature inside SAMSUNG EXYNOS4 series of SoC. | ||
15 | |||
16 | The chip only exposes the measured 8-bit temperature code value | ||
17 | through a register. | ||
18 | Temperature can be taken from the temperature code. | ||
19 | There are three equations converting from temperature to temperature code. | ||
20 | |||
21 | The three equations are: | ||
22 | 1. Two point trimming | ||
23 | Tc = (T - 25) * (TI2 - TI1) / (85 - 25) + TI1 | ||
24 | |||
25 | 2. One point trimming | ||
26 | Tc = T + TI1 - 25 | ||
27 | |||
28 | 3. No trimming | ||
29 | Tc = T + 50 | ||
30 | |||
31 | Tc: Temperature code, T: Temperature, | ||
32 | TI1: Trimming info for 25 degree Celsius (stored at TRIMINFO register) | ||
33 | Temperature code measured at 25 degree Celsius which is unchanged | ||
34 | TI2: Trimming info for 85 degree Celsius (stored at TRIMINFO register) | ||
35 | Temperature code measured at 85 degree Celsius which is unchanged | ||
36 | |||
37 | TMU(Thermal Management Unit) in EXYNOS4 generates interrupt | ||
38 | when temperature exceeds pre-defined levels. | ||
39 | The maximum number of configurable threshold is four. | ||
40 | The threshold levels are defined as follows: | ||
41 | Level_0: current temperature > trigger_level_0 + threshold | ||
42 | Level_1: current temperature > trigger_level_1 + threshold | ||
43 | Level_2: current temperature > trigger_level_2 + threshold | ||
44 | Level_3: current temperature > trigger_level_3 + threshold | ||
45 | |||
46 | The threshold and each trigger_level are set | ||
47 | through the corresponding registers. | ||
48 | |||
49 | When an interrupt occurs, this driver notify user space of | ||
50 | one of four threshold levels for the interrupt | ||
51 | through kobject_uevent_env and sysfs_notify functions. | ||
52 | Although an interrupt condition for level_0 can be set, | ||
53 | it is not notified to user space through sysfs_notify function. | ||
54 | |||
55 | Sysfs Interface | ||
56 | --------------- | ||
57 | name name of the temperature sensor | ||
58 | RO | ||
59 | |||
60 | temp1_input temperature | ||
61 | RO | ||
62 | |||
63 | temp1_max temperature for level_1 interrupt | ||
64 | RO | ||
65 | |||
66 | temp1_crit temperature for level_2 interrupt | ||
67 | RO | ||
68 | |||
69 | temp1_emergency temperature for level_3 interrupt | ||
70 | RO | ||
71 | |||
72 | temp1_max_alarm alarm for level_1 interrupt | ||
73 | RO | ||
74 | |||
75 | temp1_crit_alarm | ||
76 | alarm for level_2 interrupt | ||
77 | RO | ||
78 | |||
79 | temp1_emergency_alarm | ||
80 | alarm for level_3 interrupt | ||
81 | RO | ||