Donggeun Kim | 9d97e5c | 2011-09-07 18:49:08 +0900 | [diff] [blame] | 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 | |
Amit Daniel Kachhap | c48cbba | 2012-08-16 17:11:41 +0530 | [diff] [blame] | 49 | When an interrupt occurs, this driver notify kernel thermal framework |
| 50 | with the function exynos4_report_trigger. |
Donggeun Kim | 9d97e5c | 2011-09-07 18:49:08 +0900 | [diff] [blame] | 51 | Although an interrupt condition for level_0 can be set, |
Amit Daniel Kachhap | c48cbba | 2012-08-16 17:11:41 +0530 | [diff] [blame] | 52 | it can be used to synchronize the cooling action. |