Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 267264
b: refs/heads/master
c: 9d97e5c
h: refs/heads/master
v: v3
  • Loading branch information
Donggeun Kim authored and Guenter Roeck committed Oct 24, 2011
1 parent ed20d5e commit ca338aa
Show file tree
Hide file tree
Showing 6 changed files with 700 additions and 1 deletion.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 5cf231a346fb80d7945aa46e90186a068a3a001b
refs/heads/master: 9d97e5c81e15afaef65d00f077f863c94f750839
81 changes: 81 additions & 0 deletions trunk/Documentation/hwmon/exynos4_tmu
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
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 user space of
one of four threshold levels for the interrupt
through kobject_uevent_env and sysfs_notify functions.
Although an interrupt condition for level_0 can be set,
it is not notified to user space through sysfs_notify function.

Sysfs Interface
---------------
name name of the temperature sensor
RO

temp1_input temperature
RO

temp1_max temperature for level_1 interrupt
RO

temp1_crit temperature for level_2 interrupt
RO

temp1_emergency temperature for level_3 interrupt
RO

temp1_max_alarm alarm for level_1 interrupt
RO

temp1_crit_alarm
alarm for level_2 interrupt
RO

temp1_emergency_alarm
alarm for level_3 interrupt
RO
10 changes: 10 additions & 0 deletions trunk/drivers/hwmon/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -303,6 +303,16 @@ config SENSORS_DS1621
This driver can also be built as a module. If so, the module
will be called ds1621.

config SENSORS_EXYNOS4_TMU
tristate "Temperature sensor on Samsung EXYNOS4"
depends on EXYNOS4_DEV_TMU
help
If you say yes here you get support for TMU (Thermal Managment
Unit) on SAMSUNG EXYNOS4 series of SoC.

This driver can also be built as a module. If so, the module
will be called exynos4-tmu.

config SENSORS_I5K_AMB
tristate "FB-DIMM AMB temperature sensor on Intel 5000 series chipsets"
depends on PCI && EXPERIMENTAL
Expand Down
1 change: 1 addition & 0 deletions trunk/drivers/hwmon/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ obj-$(CONFIG_SENSORS_DS1621) += ds1621.o
obj-$(CONFIG_SENSORS_EMC1403) += emc1403.o
obj-$(CONFIG_SENSORS_EMC2103) += emc2103.o
obj-$(CONFIG_SENSORS_EMC6W201) += emc6w201.o
obj-$(CONFIG_SENSORS_EXYNOS4_TMU) += exynos4_tmu.o
obj-$(CONFIG_SENSORS_F71805F) += f71805f.o
obj-$(CONFIG_SENSORS_F71882FG) += f71882fg.o
obj-$(CONFIG_SENSORS_F75375S) += f75375s.o
Expand Down
Loading

0 comments on commit ca338aa

Please sign in to comment.