2005-04-16 15:20:36 -07:00
/* linux/arch/arm/mach-s3c2410/pm.h
*
* Copyright ( c ) 2004 Simtec Electronics
* Written by Ben Dooks , < ben @ simtec . co . uk >
*
* This program is free software ; you can redistribute it and / or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation .
*/
/* s3c2410_pm_init
*
* called from board at initialisation time to setup the power
* management
*/
# ifdef CONFIG_PM
extern __init int s3c2410_pm_init ( void ) ;
# else
static inline int s3c2410_pm_init ( void )
{
return 0 ;
}
# endif
/* configuration for the IRQ mask over sleep */
extern unsigned long s3c_irqwake_intmask ;
extern unsigned long s3c_irqwake_eintmask ;
/* IRQ masks for IRQs allowed to go to sleep (see irq.c) */
extern unsigned long s3c_irqwake_intallow ;
extern unsigned long s3c_irqwake_eintallow ;
2006-09-19 09:51:32 +01:00
/* per-cpu sleep functions */
extern void ( * pm_cpu_prep ) ( void ) ;
extern void ( * pm_cpu_sleep ) ( void ) ;
2005-04-16 15:20:36 -07:00
/* Flags for PM Control */
extern unsigned long s3c_pm_flags ;
/* from sleep.S */
2006-09-16 00:04:23 +01:00
extern int s3c2410_cpu_save ( unsigned long * saveblk ) ;
extern void s3c2410_cpu_suspend ( void ) ;
2005-04-16 15:20:36 -07:00
extern void s3c2410_cpu_resume ( void ) ;
extern unsigned long s3c2410_sleep_save_phys ;
/* sleep save info */
struct sleep_save {
void __iomem * reg ;
unsigned long val ;
} ;
# define SAVE_ITEM(x) \
{ . reg = ( x ) }
extern void s3c2410_pm_do_save ( struct sleep_save * ptr , int count ) ;
extern void s3c2410_pm_do_restore ( struct sleep_save * ptr , int count ) ;
2006-09-16 00:01:39 +01:00
# ifdef CONFIG_PM
extern int s3c24xx_irq_suspend ( struct sys_device * dev , pm_message_t state ) ;
extern int s3c24xx_irq_resume ( struct sys_device * dev ) ;
# else
# define s3c24xx_irq_suspend NULL
# define s3c24xx_irq_resume NULL
# endif