diff options
author | sreenivasulu velpula <svelpula@nvidia.com> | 2014-07-18 14:30:47 +0530 |
---|---|---|
committer | Winnie Hsu <whsu@nvidia.com> | 2014-10-27 12:52:28 -0700 |
commit | 982f479a7a11fb0aeb997bbe001d48f983e9c3f3 (patch) | |
tree | 3d5827be2f40960b87be0335887d45f8d7d5a515 /arch/arm/mach-tegra/dvfs.h | |
parent | 23f46071a5f3652c97df9b777bfc212550a0d34e (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.h | 8 |
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, |