Commit | Line | Data |
---|---|---|
9d97e5c8 DK |
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 |