summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/pm.h
diff options
context:
space:
mode:
authorLaxman Dewangan <ldewangan@nvidia.com>2011-07-12 16:16:14 +0530
committerDan Willemsen <dwillemsen@nvidia.com>2011-11-30 21:47:43 -0800
commita822cff7d11d896ac63f16aa797a180ba35f1c2c (patch)
tree6f6e578359e7c9717059971edec3c3fed1232b20 /arch/arm/mach-tegra/pm.h
parent89e04f1debe994d0161e9a519b53f74f9fd4d347 (diff)
arm: tegra: suspend: Add board specific suspend/resume calls
Adding board specific suspend and resume call apis through platform data. Added call of these function at appropriate stage of suspend/resume. Added mechanism to select the uart debug channel base address through variable so that board file can directly change this. bug 820536 bug 832273 Original-Change-Id: Ia9ff3b8a8d2faa1071a8ff634960e6a6c8a43d40 Reviewed-on: http://git-master/r/34494 Reviewed-by: Varun Colbert <vcolbert@nvidia.com> Tested-by: Varun Colbert <vcolbert@nvidia.com> Rebase-Id: R6d7bfb3f8f9152779f5138cbcd1b7a9e9a9545df
Diffstat (limited to 'arch/arm/mach-tegra/pm.h')
-rw-r--r--arch/arm/mach-tegra/pm.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/arch/arm/mach-tegra/pm.h b/arch/arm/mach-tegra/pm.h
index 778a67054672..5a620928c4bc 100644
--- a/arch/arm/mach-tegra/pm.h
+++ b/arch/arm/mach-tegra/pm.h
@@ -36,6 +36,16 @@ enum tegra_suspend_mode {
TEGRA_MAX_SUSPEND_MODE,
};
+enum suspend_stage {
+ TEGRA_SUSPEND_BEFORE_PERIPHERAL,
+ TEGRA_SUSPEND_BEFORE_CPU,
+};
+
+enum resume_stage {
+ TEGRA_RESUME_AFTER_PERIPHERAL,
+ TEGRA_RESUME_AFTER_CPU,
+};
+
struct tegra_suspend_platform_data {
unsigned long cpu_timer; /* CPU power good time in us, LP2/LP1 */
unsigned long cpu_off_timer; /* CPU power off time us, LP2/LP1 */
@@ -45,6 +55,9 @@ struct tegra_suspend_platform_data {
bool sysclkreq_high; /* System clock request is active-high */
enum tegra_suspend_mode suspend_mode;
unsigned long cpu_lp2_min_residency; /* Min LP2 state residency in us */
+ 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);
};
unsigned long tegra_cpu_power_good_time(void);
@@ -197,4 +210,7 @@ extern bool tegra_all_cpus_booted __read_mostly;
#define tegra_all_cpus_booted (true)
#endif
+/* The debug channel uart base physical address */
+extern unsigned long debug_uart_port_base;
+
#endif /* _MACH_TEGRA_PM_H_ */