ARM: tegra11: power: Add T40T core edp tables
Alex Frid [Sat, 13 Jul 2013 05:22:28 +0000 (22:22 -0700)]
Change-Id: I7cabf0fdd0c031a01a0db730508d258679052a96
Signed-off-by: Alex Frid <afrid@nvidia.com>
Reviewed-on: http://git-master/r/248951
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Yu-Huan Hsu <yhsu@nvidia.com>

arch/arm/mach-tegra/tegra11_edp.c

index 32974fd..7c2e418 100644 (file)
@@ -173,6 +173,123 @@ static struct core_edp_entry core_edp_table[] = {
                        },
                },
        },
+       /* SKU 4 */
+       {
+               .sku            = 0x4,          /* SKU = 4 */
+               .process_id     = -1,           /* any process id */
+               .cap_mA         = 6000,         /* 6A cap */
+               .mult           = 1000000,      /* MHZ */
+               .cap_scpu_on    = {
+                       /* favor emc */
+                       {       /* core modules power state 0 (all ON) */
+                               {{ 924, 636 },
+                                { 924, 624 },
+                                { 924, 588 },
+                                { 924, 526 },
+                               },
+                       },
+                       /* balanced profile */
+                       {       /* core modules power state 0 (all ON) */
+                               {{ 792, 672 },
+                                { 792, 636 },
+                                { 792, 636 },
+                                { 792, 576 },
+                               },
+                       },
+                       /* favor gpu */
+                       {       /* core modules power state 0 (all ON) */
+                               {{ 792, 672 },
+                                { 624, 672 },
+                                { 624, 672 },
+                                { 624, 636 },
+                               }
+                       },
+               },
+               .cap_scpu_off   = {
+                       /* favor emc */
+                       {       /* core modules power state 0 (all ON) */
+                               {{ 924, 672 },
+                                { 924, 660 },
+                                { 924, 636 },
+                                { 924, 588 },
+                               },
+                       },
+                       /* balanced profile */
+                       {       /* core modules power state 0 (all ON) */
+                               {{ 924, 672 },
+                                { 792, 672 },
+                                { 792, 672 },
+                                { 792, 648 },
+                               },
+                       },
+                       /* favor gpu */
+                       {       /* core modules power state 0 (all ON) */
+                               {{ 924, 672 },
+                                { 792, 672 },
+                                { 792, 672 },
+                                { 792, 648 },
+                               }
+                       },
+               },
+       },
+       {
+               .sku            = 0x4,          /* SKU = 4 */
+               .process_id     = -1,           /* any process id */
+               .cap_mA         = 8000,         /* 8A cap */
+               .mult           = 1000000,      /* MHZ */
+               .cap_scpu_on    = {
+                       /* favor emc */
+                       {       /* core modules power state 0 (all ON) */
+                               {{ 924, 672 },
+                                { 924, 672 },
+                                { 924, 672 },
+                                { 924, 648 },
+                               },
+                       },
+                       /* balanced profile */
+                       {       /* core modules power state 0 (all ON) */
+                               {{ 924, 672 },
+                                { 924, 672 },
+                                { 924, 672 },
+                                { 924, 648 },
+                               },
+                       },
+                       /* favor gpu */
+                       {       /* core modules power state 0 (all ON) */
+                               {{ 924, 672 },
+                                { 924, 672 },
+                                { 924, 672 },
+                                { 924, 648 },
+                               }
+                       },
+               },
+               .cap_scpu_off   = {
+                       /* favor emc */
+                       {       /* core modules power state 0 (all ON) */
+                               {{ 924, 672 },
+                                { 924, 672 },
+                                { 924, 672 },
+                                { 924, 648 },
+                               },
+                       },
+                       /* balanced profile */
+                       {       /* core modules power state 0 (all ON) */
+                               {{ 924, 672 },
+                                { 924, 672 },
+                                { 924, 672 },
+                                { 924, 648 },
+                               },
+                       },
+                       /* favor gpu */
+                       {       /* core modules power state 0 (all ON) */
+                               {{ 924, 816 },
+                                { 924, 816 },
+                                { 924, 816 },
+                                { 924, 648 },
+                               }
+                       },
+               },
+       },
        /* SKU 5 */
        {
                .sku            = 0x5,          /* SKU = 5 */
@@ -660,7 +777,7 @@ static struct core_edp_entry *find_edp_entry(int sku, unsigned int regulator_mA)
        if ((sku == 0x5) || (sku == 0x6)) {
                if (regulator_mA >= 8000)
                        return NULL;            /* no edp limits above 8A */
-       } else if (sku == 0x3) {
+       } else if ((sku == 0x3) || (sku == 0x4)) {
                if (regulator_mA >= 8000)
                        regulator_mA = 8000;    /* apply 8A table above 8A */
        } else {