OSDN Git Service

thermal: qcom-spmi: Use PMIC thermal stage 2 for critical trip points
authorMatthias Kaehlcke <mka@chromium.org>
Tue, 31 Jul 2018 18:59:15 +0000 (11:59 -0700)
committerEduardo Valentin <edubezval@gmail.com>
Fri, 24 Aug 2018 22:59:52 +0000 (15:59 -0700)
commitf1599f9e4cd6f1dd0cad202853fb830854f4e944
tree339a2adf028ba1aac9a3c97e60242fb976235168
parent97b27dd33d592b14cfb9299d5c89167ec57a3b83
thermal: qcom-spmi: Use PMIC thermal stage 2 for critical trip points

There are three thermal stages defined in the PMIC:

stage 1: warning
stage 2: system should shut down
stage 3: emergency shut down

By default the PMIC assumes that the OS isn't doing anything and thus
at stage 2 it does a partial PMIC shutdown and at stage 3 it kills
all power. When switching between thermal stages the PMIC generates an
interrupt which is handled by the driver. The partial PMIC shutdown at
stage 2 can be disabled by software, which allows the OS to initiate a
shutdown at stage 2 with a thermal zone configured accordingly.

If a critical trip point is configured in the thermal zone the driver
adjusts the stage 1-3 temperature thresholds to (closely) match the
critical temperature with a stage 2 threshold (125/130/135/140 °C).
If a suitable match is found the partial shutdown at stage 2 is
disabled. If for some reason the system doesn't shutdown at stage 2
the emergency shutdown at stage 3 kicks in.

The partial shutdown at stage 2 remains enabled in these cases:
- no critical trip point defined
- the temperature of the critical trip point is < 125°C
- the temperature of the critical trip point is > 140°C and no
  ADC channel is configured (thus the OS is not notified when the critical
  temperature is reached)

Suggested-by: Douglas Anderson <dianders@chromium.org>
Signed-off-by: Matthias Kaehlcke <mka@chromium.org>
Reviewed-by: Douglas Anderson <dianders@chromium.org>
Signed-off-by: Eduardo Valentin <edubezval@gmail.com>
drivers/thermal/qcom-spmi-temp-alarm.c