Linux Audio

Check our new training course

Loading...
v6.2
  1/* SPDX-License-Identifier: GPL-2.0 */
  2/*
  3 * Copyright (c) 2004 Simtec Electronics
  4 *	http://armlinux.simtec.co.uk/
  5 *	Written by Ben Dooks, <ben@simtec.co.uk>
  6 */
  7
  8/* s3c_pm_init
  9 *
 10 * called from board at initialisation time to setup the power
 11 * management
 12*/
 13
 14#include "pm-common.h"
 15
 16struct device;
 17
 18#ifdef CONFIG_SAMSUNG_PM
 19
 20extern __init int s3c_pm_init(void);
 21extern __init int s3c64xx_pm_init(void);
 22
 23#else
 24
 25static inline int s3c_pm_init(void)
 26{
 27	return 0;
 28}
 29
 30static inline int s3c64xx_pm_init(void)
 31{
 32	return 0;
 33}
 34#endif
 35
 36/* configuration for the IRQ mask over sleep */
 37extern unsigned long s3c_irqwake_intmask;
 38extern unsigned long s3c_irqwake_eintmask;
 39
 40/* per-cpu sleep functions */
 41
 42extern void (*pm_cpu_prep)(void);
 43extern int (*pm_cpu_sleep)(unsigned long);
 44
 45/* Flags for PM Control */
 46
 47extern unsigned long s3c_pm_flags;
 48
 49/* from sleep.S */
 50
 51extern int s3c2410_cpu_suspend(unsigned long);
 52
 53#ifdef CONFIG_PM_SLEEP
 54extern int s3c_irq_wake(struct irq_data *data, unsigned int state);
 55extern void s3c_cpu_resume(void);
 56#else
 57#define s3c_irq_wake NULL
 58#define s3c_cpu_resume NULL
 59#endif
 60
 61#ifdef CONFIG_SAMSUNG_PM
 62extern int s3c_irqext_wake(struct irq_data *data, unsigned int state);
 63#else
 64#define s3c_irqext_wake NULL
 65#endif
 66
 67#ifdef CONFIG_S3C_PM_DEBUG_LED_SMDK
 68/**
 69 * s3c_pm_debug_smdkled() - Debug PM suspend/resume via SMDK Board LEDs
 70 * @set: set bits for the state of the LEDs
 71 * @clear: clear bits for the state of the LEDs.
 72 */
 73extern void s3c_pm_debug_smdkled(u32 set, u32 clear);
 74
 75#else
 76static inline void s3c_pm_debug_smdkled(u32 set, u32 clear) { }
 77#endif /* CONFIG_S3C_PM_DEBUG_LED_SMDK */
 78
 79/**
 80 * s3c_pm_configure_extint() - ensure pins are correctly set for IRQ
 81 *
 82 * Setup all the necessary GPIO pins for waking the system on external
 83 * interrupt.
 84 */
 85extern void s3c_pm_configure_extint(void);
 86
 87#ifdef CONFIG_GPIO_SAMSUNG
 88/**
 89 * samsung_pm_restore_gpios() - restore the state of the gpios after sleep.
 90 *
 91 * Restore the state of the GPIO pins after sleep, which may involve ensuring
 92 * that we do not glitch the state of the pins from that the bootloader's
 93 * resume code has done.
 94*/
 95extern void samsung_pm_restore_gpios(void);
 96
 97/**
 98 * samsung_pm_save_gpios() - save the state of the GPIOs for restoring after sleep.
 99 *
100 * Save the GPIO states for resotration on resume. See samsung_pm_restore_gpios().
101 */
102extern void samsung_pm_save_gpios(void);
103#else
104static inline void samsung_pm_restore_gpios(void) {}
105static inline void samsung_pm_save_gpios(void) {}
106#endif
107
108extern void s3c_pm_save_core(void);
109extern void s3c_pm_restore_core(void);
v5.14.15
  1/* SPDX-License-Identifier: GPL-2.0 */
  2/*
  3 * Copyright (c) 2004 Simtec Electronics
  4 *	http://armlinux.simtec.co.uk/
  5 *	Written by Ben Dooks, <ben@simtec.co.uk>
  6 */
  7
  8/* s3c_pm_init
  9 *
 10 * called from board at initialisation time to setup the power
 11 * management
 12*/
 13
 14#include "pm-common.h"
 15
 16struct device;
 17
 18#ifdef CONFIG_SAMSUNG_PM
 19
 20extern __init int s3c_pm_init(void);
 21extern __init int s3c64xx_pm_init(void);
 22
 23#else
 24
 25static inline int s3c_pm_init(void)
 26{
 27	return 0;
 28}
 29
 30static inline int s3c64xx_pm_init(void)
 31{
 32	return 0;
 33}
 34#endif
 35
 36/* configuration for the IRQ mask over sleep */
 37extern unsigned long s3c_irqwake_intmask;
 38extern unsigned long s3c_irqwake_eintmask;
 39
 40/* per-cpu sleep functions */
 41
 42extern void (*pm_cpu_prep)(void);
 43extern int (*pm_cpu_sleep)(unsigned long);
 44
 45/* Flags for PM Control */
 46
 47extern unsigned long s3c_pm_flags;
 48
 49/* from sleep.S */
 50
 51extern int s3c2410_cpu_suspend(unsigned long);
 52
 53#ifdef CONFIG_PM_SLEEP
 54extern int s3c_irq_wake(struct irq_data *data, unsigned int state);
 55extern void s3c_cpu_resume(void);
 56#else
 57#define s3c_irq_wake NULL
 58#define s3c_cpu_resume NULL
 59#endif
 60
 61#ifdef CONFIG_SAMSUNG_PM
 62extern int s3c_irqext_wake(struct irq_data *data, unsigned int state);
 63#else
 64#define s3c_irqext_wake NULL
 65#endif
 66
 67#ifdef CONFIG_S3C_PM_DEBUG_LED_SMDK
 68/**
 69 * s3c_pm_debug_smdkled() - Debug PM suspend/resume via SMDK Board LEDs
 70 * @set: set bits for the state of the LEDs
 71 * @clear: clear bits for the state of the LEDs.
 72 */
 73extern void s3c_pm_debug_smdkled(u32 set, u32 clear);
 74
 75#else
 76static inline void s3c_pm_debug_smdkled(u32 set, u32 clear) { }
 77#endif /* CONFIG_S3C_PM_DEBUG_LED_SMDK */
 78
 79/**
 80 * s3c_pm_configure_extint() - ensure pins are correctly set for IRQ
 81 *
 82 * Setup all the necessary GPIO pins for waking the system on external
 83 * interrupt.
 84 */
 85extern void s3c_pm_configure_extint(void);
 86
 87#ifdef CONFIG_GPIO_SAMSUNG
 88/**
 89 * samsung_pm_restore_gpios() - restore the state of the gpios after sleep.
 90 *
 91 * Restore the state of the GPIO pins after sleep, which may involve ensuring
 92 * that we do not glitch the state of the pins from that the bootloader's
 93 * resume code has done.
 94*/
 95extern void samsung_pm_restore_gpios(void);
 96
 97/**
 98 * samsung_pm_save_gpios() - save the state of the GPIOs for restoring after sleep.
 99 *
100 * Save the GPIO states for resotration on resume. See samsung_pm_restore_gpios().
101 */
102extern void samsung_pm_save_gpios(void);
103#else
104static inline void samsung_pm_restore_gpios(void) {}
105static inline void samsung_pm_save_gpios(void) {}
106#endif
107
108extern void s3c_pm_save_core(void);
109extern void s3c_pm_restore_core(void);