This source file includes following definitions.
- s3c2416_cpu_suspend
- s3c2416_pm_prepare
- s3c2416_pm_add
- s3c2416_pm_init
- s3c2416_pm_resume
   1 
   2 
   3 
   4 
   5 
   6 
   7 
   8 #include <linux/device.h>
   9 #include <linux/syscore_ops.h>
  10 #include <linux/io.h>
  11 
  12 #include <asm/cacheflush.h>
  13 
  14 #include <mach/regs-s3c2443-clock.h>
  15 
  16 #include <plat/cpu.h>
  17 #include <plat/pm.h>
  18 
  19 #include "s3c2412-power.h"
  20 
  21 #ifdef CONFIG_PM_SLEEP
  22 extern void s3c2412_sleep_enter(void);
  23 
  24 static int s3c2416_cpu_suspend(unsigned long arg)
  25 {
  26         
  27         __raw_writel(S3C2443_PWRCFG_SLEEP, S3C2443_PWRCFG);
  28 
  29         
  30         __raw_writel(0x2BED, S3C2443_PWRMODE);
  31 
  32         s3c2412_sleep_enter();
  33 
  34         pr_info("Failed to suspend the system\n");
  35         return 1; 
  36 }
  37 
  38 static void s3c2416_pm_prepare(void)
  39 {
  40         
  41 
  42 
  43 
  44 
  45         __raw_writel(0x2BED, S3C2412_INFORM0);
  46         __raw_writel(__pa_symbol(s3c_cpu_resume), S3C2412_INFORM1);
  47 }
  48 
  49 static int s3c2416_pm_add(struct device *dev, struct subsys_interface *sif)
  50 {
  51         pm_cpu_prep = s3c2416_pm_prepare;
  52         pm_cpu_sleep = s3c2416_cpu_suspend;
  53 
  54         return 0;
  55 }
  56 
  57 static struct subsys_interface s3c2416_pm_interface = {
  58         .name           = "s3c2416_pm",
  59         .subsys         = &s3c2416_subsys,
  60         .add_dev        = s3c2416_pm_add,
  61 };
  62 
  63 static __init int s3c2416_pm_init(void)
  64 {
  65         return subsys_interface_register(&s3c2416_pm_interface);
  66 }
  67 
  68 arch_initcall(s3c2416_pm_init);
  69 #endif
  70 
  71 static void s3c2416_pm_resume(void)
  72 {
  73         
  74         __raw_writel(0x0, S3C2443_PWRMODE);
  75         __raw_writel(0x0, S3C2412_INFORM0);
  76         __raw_writel(0x0, S3C2412_INFORM1);
  77 }
  78 
  79 struct syscore_ops s3c2416_pm_syscore_ops = {
  80         .resume         = s3c2416_pm_resume,
  81 };