Linux-libre 5.3.12-gnu
[librecmc/linux-libre.git] / arch / arm / mach-tegra / pm.h
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_ */