linux/include/soc/tegra/pm.h
<<
>>
Prefs
   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__ */
  67