root/arch/arm/mach-omap2/pm.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. omap3_idle_init
  2. omap4_idle_init
  3. omap3_opp_init
  4. omap4_opp_init
  5. enable_omap3630_toggle_l2_on_restore
  6. omap_devinit_smartreflex
  7. omap_enable_smartreflex_on_init
  8. omap3_twl_init
  9. omap4_twl_init
  10. omap_pm_setup_oscillator
  11. omap_pm_get_oscillator
  12. omap_pm_setup_sr_i2c_pcb_length
  13. omap_common_suspend_init

   1 /* SPDX-License-Identifier: GPL-2.0-only */
   2 /*
   3  * OMAP2/3 Power Management Routines
   4  *
   5  * Copyright (C) 2008 Nokia Corporation
   6  * Jouni Hogander
   7  */
   8 #ifndef __ARCH_ARM_MACH_OMAP2_PM_H
   9 #define __ARCH_ARM_MACH_OMAP2_PM_H
  10 
  11 #include <linux/err.h>
  12 
  13 #include "powerdomain.h"
  14 
  15 #ifdef CONFIG_CPU_IDLE
  16 extern int __init omap3_idle_init(void);
  17 extern int __init omap4_idle_init(void);
  18 #else
  19 static inline int omap3_idle_init(void)
  20 {
  21         return 0;
  22 }
  23 
  24 static inline int omap4_idle_init(void)
  25 {
  26         return 0;
  27 }
  28 #endif
  29 
  30 extern void *omap3_secure_ram_storage;
  31 extern void omap3_pm_off_mode_enable(int);
  32 extern void omap_sram_idle(void);
  33 extern int omap_pm_clkdms_setup(struct clockdomain *clkdm, void *unused);
  34 
  35 #if defined(CONFIG_PM_OPP)
  36 extern int omap3_opp_init(void);
  37 extern int omap4_opp_init(void);
  38 #else
  39 static inline int omap3_opp_init(void)
  40 {
  41         return -EINVAL;
  42 }
  43 static inline int omap4_opp_init(void)
  44 {
  45         return -EINVAL;
  46 }
  47 #endif
  48 
  49 extern int omap3_pm_get_suspend_state(struct powerdomain *pwrdm);
  50 extern int omap3_pm_set_suspend_state(struct powerdomain *pwrdm, int state);
  51 
  52 #ifdef CONFIG_PM_DEBUG
  53 extern u32 enable_off_mode;
  54 #else
  55 #define enable_off_mode 0
  56 #endif
  57 
  58 #if defined(CONFIG_PM_DEBUG) && defined(CONFIG_DEBUG_FS)
  59 extern void pm_dbg_update_time(struct powerdomain *pwrdm, int prev);
  60 #else
  61 #define pm_dbg_update_time(pwrdm, prev) do {} while (0);
  62 #endif /* CONFIG_PM_DEBUG */
  63 
  64 /* 24xx */
  65 extern void omap24xx_idle_loop_suspend(void);
  66 extern unsigned int omap24xx_idle_loop_suspend_sz;
  67 
  68 extern void omap24xx_cpu_suspend(u32 dll_ctrl, void __iomem *sdrc_dlla_ctrl,
  69                                         void __iomem *sdrc_power);
  70 extern unsigned int omap24xx_cpu_suspend_sz;
  71 
  72 /* 3xxx */
  73 extern void omap34xx_cpu_suspend(int save_state);
  74 
  75 /* omap3_do_wfi function pointer and size, for copy to SRAM */
  76 extern void omap3_do_wfi(void);
  77 extern unsigned int omap3_do_wfi_sz;
  78 /* ... and its pointer from SRAM after copy */
  79 extern void (*omap3_do_wfi_sram)(void);
  80 
  81 extern struct am33xx_pm_sram_addr am33xx_pm_sram;
  82 extern struct am33xx_pm_sram_addr am43xx_pm_sram;
  83 
  84 extern void omap3_save_scratchpad_contents(void);
  85 
  86 #define PM_RTA_ERRATUM_i608             (1 << 0)
  87 #define PM_SDRC_WAKEUP_ERRATUM_i583     (1 << 1)
  88 #define PM_PER_MEMORIES_ERRATUM_i582    (1 << 2)
  89 
  90 #if defined(CONFIG_PM) && defined(CONFIG_ARCH_OMAP3)
  91 extern u16 pm34xx_errata;
  92 #define IS_PM34XX_ERRATUM(id)           (pm34xx_errata & (id))
  93 extern void enable_omap3630_toggle_l2_on_restore(void);
  94 #else
  95 #define IS_PM34XX_ERRATUM(id)           0
  96 static inline void enable_omap3630_toggle_l2_on_restore(void) { }
  97 #endif          /* defined(CONFIG_PM) && defined(CONFIG_ARCH_OMAP3) */
  98 
  99 #define PM_OMAP4_ROM_SMP_BOOT_ERRATUM_GICD      (1 << 0)
 100 #define PM_OMAP4_CPU_OSWR_DISABLE               (1 << 1)
 101 
 102 #if defined(CONFIG_PM) && (defined(CONFIG_ARCH_OMAP4) ||\
 103            defined(CONFIG_SOC_OMAP5) || defined(CONFIG_SOC_DRA7XX))
 104 extern u16 pm44xx_errata;
 105 #define IS_PM44XX_ERRATUM(id)           (pm44xx_errata & (id))
 106 #else
 107 #define IS_PM44XX_ERRATUM(id)           0
 108 #endif
 109 
 110 #ifdef CONFIG_POWER_AVS_OMAP
 111 extern int omap_devinit_smartreflex(void);
 112 extern void omap_enable_smartreflex_on_init(void);
 113 #else
 114 static inline int omap_devinit_smartreflex(void)
 115 {
 116         return -EINVAL;
 117 }
 118 
 119 static inline void omap_enable_smartreflex_on_init(void) {}
 120 #endif
 121 
 122 #ifdef CONFIG_TWL4030_CORE
 123 extern int omap3_twl_init(void);
 124 extern int omap4_twl_init(void);
 125 extern int omap3_twl_set_sr_bit(bool enable);
 126 #else
 127 static inline int omap3_twl_init(void)
 128 {
 129         return -EINVAL;
 130 }
 131 static inline int omap4_twl_init(void)
 132 {
 133         return -EINVAL;
 134 }
 135 #endif
 136 
 137 #ifdef CONFIG_PM
 138 extern void omap_pm_setup_oscillator(u32 tstart, u32 tshut);
 139 extern void omap_pm_get_oscillator(u32 *tstart, u32 *tshut);
 140 extern void omap_pm_setup_sr_i2c_pcb_length(u32 mm);
 141 #else
 142 static inline void omap_pm_setup_oscillator(u32 tstart, u32 tshut) { }
 143 static inline void omap_pm_get_oscillator(u32 *tstart, u32 *tshut) { *tstart = *tshut = 0; }
 144 static inline void omap_pm_setup_sr_i2c_pcb_length(u32 mm) { }
 145 #endif
 146 
 147 #ifdef CONFIG_SUSPEND
 148 void omap_common_suspend_init(void *pm_suspend);
 149 #else
 150 static inline void omap_common_suspend_init(void *pm_suspend)
 151 {
 152 }
 153 #endif /* CONFIG_SUSPEND */
 154 #endif

/* [<][>][^][v][top][bottom][index][help] */