summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/dvfs.h
diff options
context:
space:
mode:
authorsreenivasulu velpula <svelpula@nvidia.com>2014-07-18 14:30:47 +0530
committerWinnie Hsu <whsu@nvidia.com>2014-10-27 12:52:28 -0700
commit982f479a7a11fb0aeb997bbe001d48f983e9c3f3 (patch)
tree3d5827be2f40960b87be0335887d45f8d7d5a515 /arch/arm/mach-tegra/dvfs.h
parent23f46071a5f3652c97df9b777bfc212550a0d34e (diff)
arm: tegra: dvfs: Add cpu clock switch cdev
- Add cpu clock switch cooling device to switch between PLL and DFLL dynamically based on temperature. Bug 1563635 Change-Id: I098d41eb64ec53a284db310131c4f604c808645c Signed-off-by: sreenivasulu velpula <svelpula@nvidia.com> Reviewed-on: http://git-master/r/439762 (cherry picked from commit 5cc4e0b770331dc2096d69b96ee8d27e585d8cde) Reviewed-on: http://git-master/r/559390 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Bibek Basu <bbasu@nvidia.com> Tested-by: Bibek Basu <bbasu@nvidia.com> Reviewed-by: Aleksandr Frid <afrid@nvidia.com> GVS: Gerrit_Virtual_Submit Reviewed-by: Venkat Moganty <vmoganty@nvidia.com>
Diffstat (limited to 'arch/arm/mach-tegra/dvfs.h')
-rw-r--r--arch/arm/mach-tegra/dvfs.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/arch/arm/mach-tegra/dvfs.h b/arch/arm/mach-tegra/dvfs.h
index a77bdc73b7b2..16d705fb9ad6 100644
--- a/arch/arm/mach-tegra/dvfs.h
+++ b/arch/arm/mach-tegra/dvfs.h
@@ -115,6 +115,10 @@ struct dvfs_rail {
struct tegra_cooling_device *vmin_cdev;
struct tegra_cooling_device *vmax_cdev;
struct tegra_cooling_device *vts_cdev;
+
+ /* Used for CPU clock switch between PLLX and DFLL */
+ struct tegra_cooling_device *clk_switch_cdev;
+
struct rail_alignment alignment;
struct rail_stats stats;
const char *version;
@@ -206,6 +210,7 @@ struct cvb_dvfs {
int vmin_trips_table[MAX_THERMAL_LIMITS];
int therm_floors_table[MAX_THERMAL_LIMITS];
int vts_trips_table[MAX_THERMAL_LIMITS];
+ int clk_switch_trips[MAX_THERMAL_LIMITS];
};
#define cpu_cvb_dvfs cvb_dvfs
@@ -281,6 +286,7 @@ struct tegra_cooling_device *tegra_dvfs_get_core_vmax_cdev(void);
struct tegra_cooling_device *tegra_dvfs_get_core_vmin_cdev(void);
struct tegra_cooling_device *tegra_dvfs_get_gpu_vmin_cdev(void);
struct tegra_cooling_device *tegra_dvfs_get_gpu_vts_cdev(void);
+struct tegra_cooling_device *tegra_dvfs_get_cpu_clk_switch_cdev(void);
#ifdef CONFIG_TEGRA_USE_SIMON
void tegra_dvfs_rail_init_simon_vmin_offsets(
int *offsets, int offs_num, struct dvfs_rail *rail);
@@ -295,6 +301,8 @@ void tegra_dvfs_rail_init_vmin_thermal_profile(
void tegra_dvfs_rail_init_vmax_thermal_profile(
int *therm_trips_table, int *therm_caps_table,
struct dvfs_rail *rail, struct dvfs_dfll_data *d);
+int __init tegra_dvfs_rail_init_clk_switch_thermal_profile(
+ int *clk_switch_trips, struct dvfs_rail *rail);
int tegra_dvfs_rail_init_thermal_dvfs_trips(
int *therm_trips_table, struct dvfs_rail *rail);
int tegra_dvfs_init_thermal_dvfs_voltages(int *millivolts,