ARM: tegra12: set CPU rate to 2.2GHz for sku 0x87
[linux-3.10.git] / arch / arm / mach-tegra / include / mach / thermal.h
index dc86c9f..800eb74 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * arch/arm/mach-tegra/thermal.h
  *
- * Copyright (C) 2010-2012 NVIDIA Corporation.
+ * Copyright (c) 2010-2013 NVIDIA CORPORATION. All rights reserved.
  *
  * This software is licensed under the terms of the GNU General Public
  * License version 2, as published by the Free Software Foundation, and
@@ -27,15 +27,24 @@ struct tegra_cooling_device {
 };
 
 #define MAX_THROT_TABLE_SIZE   (64)
-#define NO_CAP                 0 /* no cap. cannot be used for CPU */
+#define NO_CAP                 (ULONG_MAX) /* no cap */
 #define CPU_THROT_LOW          0 /* lowest throttle freq. only used for CPU */
 
+#ifdef CONFIG_ARCH_TEGRA_12x_SOC
+#define GBUS_CNT               1
+#else
+#define GBUS_CNT               0
+#endif
+
 #ifdef CONFIG_TEGRA_DUAL_CBUS
-#define NUM_OF_CAP_FREQS       5 /* cpu, c2bus, c3bus, sclk, emc */
+#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];
 };
@@ -44,7 +53,6 @@ struct balanced_throttle {
        struct thermal_cooling_device *cdev;
        struct list_head node;
        unsigned long cur_state;
-       unsigned long cpu_cap_freq;
        int throttle_count;
        int throt_tab_size;
        struct throttle_table *throt_tab;
@@ -57,7 +65,7 @@ struct thermal_cooling_device *balanced_throttle_register(
                char *type);
 void tegra_throttle_exit(void);
 bool tegra_is_throttling(int *count);
-unsigned int tegra_throttle_governor_speed(unsigned int requested_speed);
+unsigned long tegra_throttle_governor_speed(unsigned long requested_speed);
 #else
 static inline int tegra_throttle_init(struct mutex *cpu_lock)
 { return 0; }
@@ -69,8 +77,8 @@ static inline void tegra_throttle_exit(void)
 {}
 static inline bool tegra_is_throttling(int *count)
 { return false; }
-static inline unsigned int tegra_throttle_governor_speed(
-       unsigned int requested_speed)
+static inline unsigned long tegra_throttle_governor_speed(
+       unsigned long requested_speed)
 { return requested_speed; }
 #endif /* CONFIG_TEGRA_THERMAL_THROTTLE */