ARM: tegra: power: Added global EDP Capping table
Peter Boonstoppel [Fri, 15 Jul 2011 17:54:05 +0000 (10:54 -0700)]
 - Added table with EDP Capping values for different SKUs/regulator
   currents in new file edp.c
 - New entry point tegra_init_cpu_edp_limits()
 - Added DebugFS entry under debug/edp to list the currently
   selected EDP table
 - Populated EDP table in edp.c with data from Bug 844268
 - edp.c keeps main EDP table; cpu-tegra.c and board-cardhu-power.c
   both read from there

Bug 840255

Original-Change-Id: I55c2ee16278be8cd3005218bedebe76846d137d8
Reviewed-on: http://git-master/r/40938
Reviewed-by: Varun Colbert <vcolbert@nvidia.com>
Tested-by: Varun Colbert <vcolbert@nvidia.com>

Rebase-Id: R70685c053f950a12fffd18f37c7f5ed381594f6d

arch/arm/mach-tegra/board-cardhu-power.c
arch/arm/mach-tegra/board-cardhu-sensors.c

index 725c84f..b7c9ae9 100644 (file)
@@ -982,27 +982,12 @@ int __init cardhu_power_off_init(void)
 }
 
 #ifdef CONFIG_TEGRA_EDP_LIMITS
-/*
- * placeholder for now. needs to be changed with characterized data.
- * step size cannot be less than 4C
- */
-static struct tegra_edp_limits cardhu_edp_limits[] = {
-/* Temperature  1 CPU    2 CPUs   3 CPUs   4 CPUs */
-       {60,    {1400000, 1300000, 1300000, 1300000} },
-       {70,    {1400000, 1300000, 1300000, 1260000} },
-       {80,    {1400000, 1300000, 1300000, 1200000} },
-       {90,    {1400000, 1300000, 1300000, 1100000} },
-};
-
-void cardhu_thermal_zones_info(struct tegra_edp_limits **z, int *sz)
-{
-       *z = cardhu_edp_limits;
-       *sz = ARRAY_SIZE(cardhu_edp_limits);
-}
 
 int __init cardhu_edp_init(void)
 {
-       tegra_init_cpu_edp_limits(cardhu_edp_limits, ARRAY_SIZE(cardhu_edp_limits));
+       /* Temporary initalization, needs to be set to the actual
+          regulator current */
+       tegra_init_cpu_edp_limits(5000);
        return 0;
 }
 #endif
index 01df84f..09ec560 100644 (file)
@@ -548,16 +548,13 @@ static struct i2c_board_info cardhu_i2c4_nct1008_board_info[] = {
        }
 };
 
-#ifdef CONFIG_TEGRA_EDP_LIMITS
-extern void cardhu_thermal_zones_info(struct tegra_edp_limits **, int *);
-#endif
 
 static int cardhu_nct1008_init(void)
 {
        int nct1008_port = -1;
        int ret;
 #ifdef CONFIG_TEGRA_EDP_LIMITS
-       struct tegra_edp_limits *z;
+       const struct tegra_edp_limits *z;
        int zones_sz;
        int i;
        bool throttle_ok = false;
@@ -589,7 +586,7 @@ static int cardhu_nct1008_init(void)
        }
 
 #ifdef CONFIG_TEGRA_EDP_LIMITS
-       cardhu_thermal_zones_info(&z, &zones_sz);
+       tegra_get_cpu_edp_limits(&z, &zones_sz);
        zones_sz = min(zones_sz, MAX_ZONES);
        for (i = 0; i < zones_sz; i++) {
                cardhu_nct1008_pdata.thermal_zones[i] = z[i].temperature;