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 | ||
c48cbba6 ADK |
49 | When an interrupt occurs, this driver notify kernel thermal framework |
50 | with the function exynos4_report_trigger. | |
9d97e5c8 | 51 | Although an interrupt condition for level_0 can be set, |
c48cbba6 | 52 | it can be used to synchronize the cooling action. |