blob: 569151b3edc0aa38cbb89d3b669fe0703ec32c06 [file] [log] [blame]
David Brazdil0f672f62019-12-10 10:32:29 +00001/* SPDX-License-Identifier: GPL-2.0-only */
Andrew Scullb4b6d4a2019-01-02 15:54:55 +00002/*
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>
Andrew Scullb4b6d4a2019-01-02 15:54:55 +00008 */
9
10#ifndef _MACH_TEGRA_PM_H_
11#define _MACH_TEGRA_PM_H_
12
13struct tegra_lp1_iram {
14 void *start_addr;
15 void *end_addr;
16};
17
18extern struct tegra_lp1_iram tegra_lp1_iram;
19extern void (*tegra_sleep_core_finish)(unsigned long v2p);
20
21void tegra20_lp1_iram_hook(void);
22void tegra20_sleep_core_init(void);
23void tegra30_lp1_iram_hook(void);
24void tegra30_sleep_core_init(void);
25
26void tegra_clear_cpu_in_lp2(void);
27bool tegra_set_cpu_in_lp2(void);
28int tegra_cpu_do_idle(void);
29void tegra_idle_lp2_last(void);
30extern void (*tegra_tear_down_cpu)(void);
31
32#ifdef CONFIG_PM_SLEEP
33void tegra_init_suspend(void);
34#else
35static inline void tegra_init_suspend(void) {}
36#endif
37
38#endif /* _MACH_TEGRA_PM_H_ */