Loading...
Note: File does not exist in v3.1.
1/* SPDX-License-Identifier: GPL-2.0-only */
2/*
3 * Copyright (C) 2014 NVIDIA Corporation
4 */
5
6#ifndef __SOC_TEGRA_PM_H__
7#define __SOC_TEGRA_PM_H__
8
9#include <linux/errno.h>
10
11enum tegra_suspend_mode {
12 TEGRA_SUSPEND_NONE = 0,
13 TEGRA_SUSPEND_LP2, /* CPU voltage off */
14 TEGRA_SUSPEND_LP1, /* CPU voltage off, DRAM self-refresh */
15 TEGRA_SUSPEND_LP0, /* CPU + core voltage off, DRAM self-refresh */
16 TEGRA_MAX_SUSPEND_MODE,
17};
18
19#if defined(CONFIG_PM_SLEEP) && defined(CONFIG_ARM)
20enum tegra_suspend_mode
21tegra_pm_validate_suspend_mode(enum tegra_suspend_mode mode);
22
23/* low-level resume entry point */
24void tegra_resume(void);
25
26int tegra30_pm_secondary_cpu_suspend(unsigned long arg);
27void tegra_pm_clear_cpu_in_lp2(void);
28void tegra_pm_set_cpu_in_lp2(void);
29int tegra_pm_enter_lp2(void);
30int tegra_pm_park_secondary_cpu(unsigned long cpu);
31#else
32static inline enum tegra_suspend_mode
33tegra_pm_validate_suspend_mode(enum tegra_suspend_mode mode)
34{
35 return TEGRA_SUSPEND_NONE;
36}
37
38static inline void tegra_resume(void)
39{
40}
41
42static inline int tegra30_pm_secondary_cpu_suspend(unsigned long arg)
43{
44 return -ENOTSUPP;
45}
46
47static inline void tegra_pm_clear_cpu_in_lp2(void)
48{
49}
50
51static inline void tegra_pm_set_cpu_in_lp2(void)
52{
53}
54
55static inline int tegra_pm_enter_lp2(void)
56{
57 return -ENOTSUPP;
58}
59
60static inline int tegra_pm_park_secondary_cpu(unsigned long cpu)
61{
62 return -ENOTSUPP;
63}
64#endif /* CONFIG_PM_SLEEP */
65
66#endif /* __SOC_TEGRA_PM_H__ */