Tegra12: ARM: Clocks: Modify dvfs table for cpu volage scaling
Krishna Sitaraman [Tue, 16 Jul 2013 19:46:06 +0000 (12:46 -0700)]
Update the cpu dvfs table to allow voltage scaling for cpu core
when using PLLX and reduce voltage margin needed.

Change-Id: Ifa47bb3b3f07b88c7dbca358f65686ca0fcafb19
Signed-off-by: Krishna Sitaraman <ksitaraman@nvidia.com>
(cherry picked from commit dbf05d8cc238f19374cd36f2c687d46520dbfbb3)
Reviewed-on: http://git-master/r/250895
GVS: Gerrit_Virtual_Submit
Reviewed-by: Chao Xu <cxu@nvidia.com>

arch/arm/mach-tegra/tegra12_dvfs.c

index 5a9e70d..28979ac 100644 (file)
@@ -104,31 +104,31 @@ static struct cpu_cvb_dvfs cpu_cvb_dvfs_table[] = {
                .voltage_scale = 1000,
                .cvb_table = {
                        /*f       dfll: c0,     c1,   c2  pll:  c0,   c1,    c2 */
-                       { 408000, { 2194479,  -117955,  2300}, { 2194479,  -117955,  2300} },
-                       { 510000, { 2229779,  -119575,  2300}, { 2229779,  -119575,  2300} },
-                       { 612000, { 2267504,  -121185,  2300}, { 2267504,  -121185,  2300} },
-                       { 714000, { 2307653,  -122795,  2300}, { 2307653,  -122795,  2300} },
-                       { 816000, { 2350228,  -124415,  2300}, { 2350228,  -124415,  2300} },
-                       { 918000, { 2395228,  -126025,  2300}, { 2395228,  -126025,  2300} },
-                       {1020000, { 2442653,  -127635,  2300}, { 2442653,  -127635,  2300} },
-                       {1122000, { 2492502,  -129255,  2300}, { 2492502,  -129255,  2300} },
-                       {1224000, { 2544777,  -130865,  2300}, { 2544777,  -130865,  2300} },
-                       {1326000, { 2599477,  -132475,  2300}, { 2599477,  -132475,  2300} },
-                       {1428000, { 2656601,  -134095,  2300}, { 2656601,  -134095,  2300} },
-                       {1530000, { 2716150,  -135705,  2300}, { 2716150,  -135705,  2300} },
-                       {1632000, { 2778125,  -137315,  2300}, { 2778125,  -137315,  2300} },
-                       {1734000, { 2842524,  -138935,  2300}, { 2842524,  -138935,  2300} },
-                       {1836000, { 2909348,  -140545,  2300}, { 2909348,  -140545,  2300} },
-                       {1938000, { 2978598,  -142155,  2300}, { 2978598,  -142155,  2300} },
-                       {2040000, { 3050272,  -143775,  2300}, { 3050272,  -143775,  2300} },
-                       {2142000, { 3124371,  -145385,  2300}, { 3124371,  -145385,  2300} },
-                       {2244000, { 3200895,  -146995,  2300}, { 3200895,  -146995,  2300} },
-                       {2346000, { 3279844,  -148615,  2300}, { 3279844,  -148615,  2300} },
-                       {2448000, { 3361218,  -150225,  2300}, { 3361218,  -150225,  2300} },
-                       {2550000, { 3445017,  -151835,  2300}, { 3445017,  -151835,  2300} },
-                       {2652000, { 3531241,  -153455,  2300}, { 3531241,  -153455,  2300} },
-                       {2754000, { 3619889,  -155065,  2300}, { 3619889,  -155065,  2300} },
-                       {      0, {       0,        0,     0}, {       0,        0,     0} },
+                       { 408000, { 2194479,  -117955,  2300}, {  900000,  0,  0} },
+                       { 510000, { 2229779,  -119575,  2300}, {  900000,  0,  0} },
+                       { 612000, { 2267504,  -121185,  2300}, {  900000,  0,  0} },
+                       { 714000, { 2307653,  -122795,  2300}, {  900000,  0,  0} },
+                       { 816000, { 2350228,  -124415,  2300}, {  900000,  0,  0} },
+                       { 918000, { 2395228,  -126025,  2300}, {  900000,  0,  0} },
+                       {1020000, { 2442653,  -127635,  2300}, {  900000,  0,  0} },
+                       {1122000, { 2492502,  -129255,  2300}, {  900000,  0,  0} },
+                       {1224000, { 2544777,  -130865,  2300}, {  912000,  0,  0} },
+                       {1326000, { 2599477,  -132475,  2300}, {  936000,  0,  0} },
+                       {1428000, { 2656601,  -134095,  2300}, {  960000,  0,  0} },
+                       {1530000, { 2716150,  -135705,  2300}, {  996000,  0,  0} },
+                       {1632000, { 2778125,  -137315,  2300}, { 1020000,  0,  0} },
+                       {1734000, { 2842524,  -138935,  2300}, { 1056000,  0,  0} },
+                       {1836000, { 2909348,  -140545,  2300}, { 1092000,  0,  0} },
+                       {1938000, { 2978598,  -142155,  2300}, { 1128000,  0,  0} },
+                       {2040000, { 3050272,  -143775,  2300}, { 1176000,  0,  0} },
+                       {2142000, { 3124371,  -145385,  2300}, { 1212000,  0,  0} },
+                       {2244000, { 3200895,  -146995,  2300}, { 1260000,  0,  0} },
+                       {2346000, { 3279844,  -148615,  2300}, { 1320000,  0,  0} },
+                       {2448000, { 3361218,  -150225,  2300}, { 1368000,  0,  0} },
+                       {2550000, { 3445017,  -151835,  2300}, { 1428000,  0,  0} },
+                       {2652000, { 3531241,  -153455,  2300}, { 1488000,  0,  0} },
+                       {2754000, { 3619889,  -155065,  2300}, { 1548000,  0,  0} },
+                       {      0, {       0,        0,     0}, {       0,  0,  0} },
                },
                .therm_trips_table = { 20, },
                .therm_floors_table = { 1000, },
@@ -516,8 +516,6 @@ static int __init set_cpu_dvfs_data(
 
                mv = get_cvb_voltage(
                        speedo, d->speedo_scale, &table->cvb_pll_param);
-               /* FIXME: Remove guardband later */
-               mv = DIV_ROUND_CLOSEST(dfll_mv * 130, 100);
                mv = round_cvb_voltage(mv, d->voltage_scale);
 
                /*
@@ -560,6 +558,7 @@ static int __init set_cpu_dvfs_data(
                if (dfll_mv > d->max_mv)
                        break;
        }
+
        /* Table must not be empty, must have at least one entry above Vmin */
        if (!i || !j || !fmax_at_vmin) {
                pr_err("tegra12_dvfs: invalid cpu dvfs table\n");