summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/tegra13_dvfs.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-tegra/tegra13_dvfs.c')
-rw-r--r--arch/arm/mach-tegra/tegra13_dvfs.c21
1 files changed, 14 insertions, 7 deletions
diff --git a/arch/arm/mach-tegra/tegra13_dvfs.c b/arch/arm/mach-tegra/tegra13_dvfs.c
index f41df2832b63..35c2d90ceba5 100644
--- a/arch/arm/mach-tegra/tegra13_dvfs.c
+++ b/arch/arm/mach-tegra/tegra13_dvfs.c
@@ -234,7 +234,6 @@ static struct cpu_cvb_dvfs cpu_cvb_dvfs_table[] = {
.dfll_tune_data = {
.tune1 = 0x00000099,
.droop_rate_min = 1000000,
- .tune_high_min_millivolts = 900,
.min_millivolts = 680,
.tune_high_margin_mv = 30,
},
@@ -736,13 +735,21 @@ static int round_voltage(int mv, struct rail_alignment *align, bool up)
static void __init set_cpu_dfll_tuning_data(struct cpu_cvb_dvfs *d, int speedo)
{
if (d->speedo_id >= 1) {
- if (speedo <= 2336) {
- d->dfll_tune_data.tune0 = 0x8315FF;
- d->dfll_tune_data.tune0_high_mv = 0x8340FF;
- d->dfll_tune_data.tune0_simon_mask = 0x100000;
+ /* Initial (low SiMon grade) settings - same for all parts */
+ d->dfll_tune_data.tune0 = 0x8315FF;
+ d->dfll_tune_data.tune0_high_mv = 0x8340FF;
+
+ if (speedo <= 2180) {
+ /* Toggle SiMon mask - high grade settings 0x8A....*/
+ d->dfll_tune_data.tune0_simon_mask = 0x090000;
+ d->dfll_tune_data.tune_high_min_millivolts = 950;
+ } else if (speedo < 2336) {
+ /* Toggle SiMon mask - high grade settings 0x87....*/
+ d->dfll_tune_data.tune0_simon_mask = 0x040000;
+ d->dfll_tune_data.tune_high_min_millivolts = 900;
} else {
- d->dfll_tune_data.tune0 = 0x8315FF;
- d->dfll_tune_data.tune0_high_mv = 0x8340FF;
+ /* High and low grade settings are the same */
+ d->dfll_tune_data.tune_high_min_millivolts = 900;
}
}
}