Kernel driver exynos4_tmu
=================

Supported chips:
* ARM SAMSUNG EXYNOS4 series of SoC
  Prefix: 'exynos4-tmu'
  Datasheet: Not publicly available

Authors: Donggeun Kim <dg77.kim@samsung.com>

Description
-----------

This driver allows to read temperature inside SAMSUNG EXYNOS4 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 generates interrupt
when temperature exceeds pre-defined levels.
The maximum number of configurable threshold is four.
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 exynos4_report_trigger.
Although an interrupt condition for level_0 can be set,
it can be used to synchronize the cooling action.
