Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit beb70b2d authored by Amit Daniel Kachhap's avatar Amit Daniel Kachhap Committed by Eduardo Valentin
Browse files

Documentation: thermal: Explain the exynos thermal driver model



This patch updates the documentation to explain the driver model
and file layout.

Acked-by: default avatarJonghwa Lee <jonghwa3.lee@samsung.com>
Acked-by: default avatarKukjin Kim <kgene.kim@samsung.com>
Acked-by: default avatarEduardo Valentin <eduardo.valentin@ti.com>
Signed-off-by: default avatarAmit Daniel Kachhap <amit.daniel@samsung.com>
Signed-off-by: default avatarEduardo Valentin <eduardo.valentin@ti.com>
parent 0e97194b
Loading
Loading
Loading
Loading
+34 −9
Original line number Diff line number Diff line
Kernel driver exynos4_tmu
Kernel driver exynos_tmu
=================

Supported chips:
* ARM SAMSUNG EXYNOS4 series of SoC
  Prefix: 'exynos4-tmu'
* 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>

Description
-----------
TMU controller Description:
---------------------------

This driver allows to read temperature inside SAMSUNG EXYNOS4 series of SoC.
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.
@@ -34,9 +34,9 @@ The three equations are:
  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 generates interrupt
TMU(Thermal Management Unit) in EXYNOS4/5 generates interrupt
when temperature exceeds pre-defined levels.
The maximum number of configurable threshold is four.
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
@@ -47,6 +47,31 @@ The threshold levels are defined as follows:
  through the corresponding registers.

When an interrupt occurs, this driver notify kernel thermal framework
with the function exynos4_report_trigger.
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.