Exynos Emulation Mode

Copyright (C) 2012 Samsung Electronics

Written by Jonghwa Lee <jonghwa3.lee@samsung.com>

Description

Exynos 4x12 (4212, 4412) and 5 series provide emulation mode for thermal management unit. Thermal emulation mode supports software debug for TMU’s operation. User can set temperature manually with software code and TMU will read current temperature from user value not from sensor’s value.

Enabling CONFIG_THERMAL_EMULATION option will make this support available. When it’s enabled, sysfs node will be created as /sys/devices/virtual/thermal/thermal_zone’zone id’/emul_temp.

The sysfs node, ‘emul_node’, will contain value 0 for the initial state. When you input any temperature you want to update to sysfs node, it automatically enable emulation mode and current temperature will be changed into it.

(Exynos also supports user changeable delay time which would be used to delay of changing temperature. However, this node only uses same delay of real sensing time, 938us.)

Exynos emulation mode requires that value changes and enabling are performed synchronously. This means that when you want to update any value, such as the delay or the next temperature, you must enable emulation mode at the same time (or keep the mode enabled). If you do not, the value will fail to update and the last successful value will continue to be used. For this reason, this node only allows users to change the temperature. Providing a single interface makes it simpler to use.

Disabling emulation mode only requires writing value 0 to sysfs node.

TEMP  120 |
          |
      100 |
          |
       80 |
          |                            +-----------
       60 |                            |          |
          |              +-------------|          |
       40 |              |             |          |
          |              |             |          |
       20 |              |             |          +----------
          |              |             |          |          |
        0 |______________|_____________|__________|__________|_________
                 A             A          A                  A     TIME
                 |<----->|     |<----->|  |<----->|          |
                 | 938us |     |       |  |       |          |
emulation   : 0  50      |     70      |  20      |          0
current temp:   sensor   50            70         20        sensor