Blame view

kernel/linux-imx6_3.14.28/Documentation/thermal/exynos_thermal 2.81 KB
6b13f685e   김민수   BSP 최초 추가
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
  Kernel driver exynos_tmu
  =================
  
  Supported chips:
  * ARM SAMSUNG EXYNOS4, EXYNOS5 series of SoC
    Datasheet: Not publicly available
  
  Authors: Donggeun Kim <dg77.kim@samsung.com>
  Authors: Amit Daniel <amit.daniel@samsung.com>
  
  TMU controller Description:
  ---------------------------
  
  This driver allows to read temperature inside SAMSUNG EXYNOS4/5 series of SoC.
  
  The chip only exposes the measured 8-bit temperature code value
  through a register.
  Temperature can be taken from the temperature code.
  There are three equations converting from temperature to temperature code.
  
  The three equations are:
    1. Two point trimming
  	Tc = (T - 25) * (TI2 - TI1) / (85 - 25) + TI1
  
    2. One point trimming
  	Tc = T + TI1 - 25
  
    3. No trimming
  	Tc = T + 50
  
    Tc: Temperature code, T: Temperature,
    TI1: Trimming info for 25 degree Celsius (stored at TRIMINFO register)
         Temperature code measured at 25 degree Celsius which is unchanged
    TI2: Trimming info for 85 degree Celsius (stored at TRIMINFO register)
         Temperature code measured at 85 degree Celsius which is unchanged
  
  TMU(Thermal Management Unit) in EXYNOS4/5 generates interrupt
  when temperature exceeds pre-defined levels.
  The maximum number of configurable threshold is five.
  The threshold levels are defined as follows:
    Level_0: current temperature > trigger_level_0 + threshold
    Level_1: current temperature > trigger_level_1 + threshold
    Level_2: current temperature > trigger_level_2 + threshold
    Level_3: current temperature > trigger_level_3 + threshold
  
    The threshold and each trigger_level are set
    through the corresponding registers.
  
  When an interrupt occurs, this driver notify kernel thermal framework
  with the function exynos_report_trigger.
  Although an interrupt condition for level_0 can be set,
  it can be used to synchronize the cooling action.
  
  TMU driver description:
  -----------------------
  
  The exynos thermal driver is structured as,
  
  					Kernel Core thermal framework
  				(thermal_core.c, step_wise.c, cpu_cooling.c)
  								^
  								|
  								|
  TMU configuration data -------> TMU Driver  <------> Exynos Core thermal wrapper
  (exynos_tmu_data.c)	      (exynos_tmu.c)	   (exynos_thermal_common.c)
  (exynos_tmu_data.h)	      (exynos_tmu.h)	   (exynos_thermal_common.h)
  
  a) TMU configuration data: This consist of TMU register offsets/bitfields
  		described through structure exynos_tmu_registers. Also several
  		other platform data (struct exynos_tmu_platform_data) members
  		are used to configure the TMU.
  b) TMU driver: This component initialises the TMU controller and sets different
  		thresholds. It invokes core thermal implementation with the call
  		exynos_report_trigger.
  c) Exynos Core thermal wrapper: This provides 3 wrapper function to use the
  		Kernel core thermal framework. They are exynos_unregister_thermal,
  		exynos_register_thermal and exynos_report_trigger.