ARM: tegra12: set CPU rate to 2.2GHz for sku 0x87
[linux-3.10.git] / arch / arm / mach-tegra / include / mach / thermal.h
index b031859..800eb74 100644 (file)
@@ -30,16 +30,21 @@ struct tegra_cooling_device {
 #define NO_CAP                 (ULONG_MAX) /* no cap */
 #define CPU_THROT_LOW          0 /* lowest throttle freq. only used for CPU */
 
-#ifdef CONFIG_TEGRA_DUAL_CBUS
-#ifdef CONFIG_TEGRA_GPU_DVFS
-#define NUM_OF_CAP_FREQS       5 /* cpu, gpu, c3bus, sclk, emc */
+#ifdef CONFIG_ARCH_TEGRA_12x_SOC
+#define GBUS_CNT               1
 #else
-#define NUM_OF_CAP_FREQS       5 /* cpu, c2bus, c3bus, sclk, emc */
+#define GBUS_CNT               0
 #endif
+
+#ifdef CONFIG_TEGRA_DUAL_CBUS
+#define CBUS_CNT               2
 #else
-#define NUM_OF_CAP_FREQS       4 /* cpu, cbus, sclk, emc */
+#define CBUS_CNT               1
 #endif
 
+/* cpu, gpu(0|1), cbus(1|2), sclk, emc */
+#define NUM_OF_CAP_FREQS       (1 + GBUS_CNT + CBUS_CNT + 1 + 1)
+
 struct throttle_table {
        unsigned long cap_freqs[NUM_OF_CAP_FREQS];
 };
@@ -53,13 +58,6 @@ struct balanced_throttle {
        struct throttle_table *throt_tab;
 };
 
-/* TODO : remove when GPU clock is available in Linux Clock Framework */
-struct gk20a_clk_cap_info {
-       struct gk20a *g;
-       int (*set_cap_thermal)(struct gk20a *g, unsigned long rate);
-       unsigned long (*get_max)(void);
-};
-
 #ifdef CONFIG_TEGRA_THERMAL_THROTTLE
 int tegra_throttle_init(struct mutex *cpu_lock);
 struct thermal_cooling_device *balanced_throttle_register(
@@ -68,8 +66,6 @@ struct thermal_cooling_device *balanced_throttle_register(
 void tegra_throttle_exit(void);
 bool tegra_is_throttling(int *count);
 unsigned long tegra_throttle_governor_speed(unsigned long requested_speed);
-/* TODO : remove when GPU clock is available in Linux Clock Framework */
-int tegra_throttle_gk20a_clk_cap_register(struct gk20a_clk_cap_info *gk20a_clk);
 #else
 static inline int tegra_throttle_init(struct mutex *cpu_lock)
 { return 0; }
@@ -84,10 +80,6 @@ static inline bool tegra_is_throttling(int *count)
 static inline unsigned long tegra_throttle_governor_speed(
        unsigned long requested_speed)
 { return requested_speed; }
-/* TODO : remove when GPU clock is available in Linux Clock Framework */
-static int tegra_throttle_gk20a_clk_cap_register(
-                               struct gk20a_clk_cap_info *gk20a_clk)
-{ return 0; }
 #endif /* CONFIG_TEGRA_THERMAL_THROTTLE */
 
 #endif /* __MACH_THERMAL_H */