arm: tegra: sd: enable sd dpd
[linux-2.6.git] / arch / arm / mach-tegra / pm.h
index 44320c8..65e816c 100644 (file)
@@ -2,7 +2,7 @@
  * arch/arm/mach-tegra/include/mach/pm.h
  *
  * Copyright (C) 2010 Google, Inc.
- * Copyright (C) 2010-2011 NVIDIA Corporation
+ * Copyright (c) 2010-2012, NVIDIA CORPORATION.  All rights reserved.
  *
  * Author:
  *     Colin Cross <ccross@google.com>
 
 #include <mach/iomap.h>
 
+#define PMC_SCRATCH0           0x50
+#define PMC_SCRATCH1           0x54
+#define PMC_SCRATCH4           0x60
+
 enum tegra_suspend_mode {
        TEGRA_SUSPEND_NONE = 0,
        TEGRA_SUSPEND_LP2,      /* CPU voltage off */
@@ -60,13 +64,7 @@ struct tegra_suspend_platform_data {
        void (*board_suspend)(int lp_state, enum suspend_stage stg);
        /* lp_state = 0 for LP0 state, 1 for LP1 state, 2 for LP2 state */
        void (*board_resume)(int lp_state, enum resume_stage stg);
-};
-
-/* Tegra io dpd entry - for each supported driver */
-struct tegra_io_dpd {
-       const char *name;       /* driver name */
-       u8 io_dpd_reg_index;    /* io dpd register index */
-       u8 io_dpd_bit;          /* bit position for driver in dpd register */
+       unsigned int cpu_resume_boost;  /* CPU frequency resume boost in kHz */
 };
 
 unsigned long tegra_cpu_power_good_time(void);
@@ -153,6 +151,7 @@ unsigned long tegra2_lp2_timer_remain(void);
 void tegra3_lp2_set_trigger(unsigned long cycles);
 unsigned long tegra3_lp2_timer_remain(void);
 int tegra3_is_lp2_timer_ready(unsigned int cpu);
+void tegra3_lp2_timer_cancel_secondary(void);
 #endif
 
 static inline void tegra_lp0_suspend_init(void)
@@ -191,6 +190,13 @@ static inline int tegra_is_lp2_timer_ready(unsigned int cpu)
 #endif
 }
 
+static inline void tegra_lp2_timer_cancel_secondary(void)
+{
+#ifndef CONFIG_ARCH_TEGRA_2x_SOC
+       tegra3_lp2_timer_cancel_secondary();
+#endif
+}
+
 #if DEBUG_CLUSTER_SWITCH && 0 /* !!!FIXME!!! THIS IS BROKEN */
 extern unsigned int tegra_cluster_debug;
 #define DEBUG_CLUSTER(x) do { if (tegra_cluster_debug) printk x; } while (0)