ARM: tegra: dvfs: Add CL-DVFS Vmax cooling device
authorAlex Frid <afrid@nvidia.com>
Wed, 24 Apr 2013 00:15:19 +0000 (17:15 -0700)
committerMrutyunjay Sawant <msawant@nvidia.com>
Tue, 30 Apr 2013 08:50:33 +0000 (01:50 -0700)
commit3bd89c03be9cb26d8fd3e2311238822c336cb790
treea2cce66928e9377e90d86484a495ac38e64a6d6e
parent01d2067e90214d6b14255f8b36319b05db902412
ARM: tegra: dvfs: Add CL-DVFS Vmax cooling device

Added CL-DVFS Vmax cooling device to keep operational voltage below
target rail thermal profile in any temperature range.

The thermal profile - temperature trip-points, and voltage caps is
specified by safe dvfs for the target rail. Profile represents Vmax(T)
dependency as descending function based on chip characterization. Each
cap is applied at temperatures above the respective threshold.

When CL-DVFS is running in the closed loop mode, thermal caps are
compared with expected safe dvfs voltage limits and the most aggressive
(minimum) one is set. In case of conflict between voltage floors and
caps, floor setting wins.

During boot the highest temperature is assumed, and the lowest Vmax
limit is applied until SoC Tj thermal zone sensor updates actual
cooling device state. Similarly during suspend entry/exit the lowest
Vmax limit is applied. Cooling device update on resume is enforced by
directly clearing update flag (otherwise thermal framework may skip
update if temperature has not changed across suspend).

Bug 1270003

Change-Id: I6753ef8efd5b0e6a15c56803d0ea5fb3b2df67af
Signed-off-by: Alex Frid <afrid@nvidia.com>
Reviewed-on: http://git-master/r/223151
Reviewed-by: Automatic_Commit_Validation_User
GVS: Gerrit_Virtual_Submit
Reviewed-by: Diwakar Tundlam <dtundlam@nvidia.com>
Reviewed-by: Seshendra Gadagottu <sgadagottu@nvidia.com>
arch/arm/mach-tegra/tegra_cl_dvfs.c