xref: /openbmc/linux/arch/arm/mach-tegra/pm.h (revision 81de3bf3)
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /*
3  * Copyright (C) 2010 Google, Inc.
4  * Copyright (c) 2010-2012 NVIDIA Corporation. All rights reserved.
5  *
6  * Author:
7  *	Colin Cross <ccross@google.com>
8  */
9 
10 #ifndef _MACH_TEGRA_PM_H_
11 #define _MACH_TEGRA_PM_H_
12 
13 struct tegra_lp1_iram {
14 	void	*start_addr;
15 	void	*end_addr;
16 };
17 
18 extern struct tegra_lp1_iram tegra_lp1_iram;
19 extern void (*tegra_sleep_core_finish)(unsigned long v2p);
20 
21 void tegra20_lp1_iram_hook(void);
22 void tegra20_sleep_core_init(void);
23 void tegra30_lp1_iram_hook(void);
24 void tegra30_sleep_core_init(void);
25 
26 void tegra_clear_cpu_in_lp2(void);
27 bool tegra_set_cpu_in_lp2(void);
28 int tegra_cpu_do_idle(void);
29 void tegra_idle_lp2_last(void);
30 extern void (*tegra_tear_down_cpu)(void);
31 
32 #ifdef CONFIG_PM_SLEEP
33 void tegra_init_suspend(void);
34 #else
35 static inline void tegra_init_suspend(void) {}
36 #endif
37 
38 #endif /* _MACH_TEGRA_PM_H_ */
39