home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / arch / arm / mach-s3c2410 / include / mach / system.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  1.3 KB  |  59 lines

  1. /* arch/arm/mach-s3c2410/include/mach/system.h
  2.  *
  3.  * Copyright (c) 2003 Simtec Electronics
  4.  *    Ben Dooks <ben@simtec.co.uk>
  5.  *
  6.  * S3C2410 - System function defines and includes
  7.  *
  8.  * This program is free software; you can redistribute it and/or modify
  9.  * it under the terms of the GNU General Public License version 2 as
  10.  * published by the Free Software Foundation.
  11. */
  12.  
  13. #include <linux/io.h>
  14. #include <mach/hardware.h>
  15.  
  16. #include <mach/map.h>
  17. #include <mach/idle.h>
  18. #include <mach/reset.h>
  19.  
  20. #include <mach/regs-clock.h>
  21.  
  22. void (*s3c24xx_idle)(void);
  23. void (*s3c24xx_reset_hook)(void);
  24.  
  25. void s3c24xx_default_idle(void)
  26. {
  27.     unsigned long tmp;
  28.     int i;
  29.  
  30.     /* idle the system by using the idle mode which will wait for an
  31.      * interrupt to happen before restarting the system.
  32.      */
  33.  
  34.     /* Warning: going into idle state upsets jtag scanning */
  35.  
  36.     __raw_writel(__raw_readl(S3C2410_CLKCON) | S3C2410_CLKCON_IDLE,
  37.              S3C2410_CLKCON);
  38.  
  39.     /* the samsung port seems to do a loop and then unset idle.. */
  40.     for (i = 0; i < 50; i++) {
  41.         tmp += __raw_readl(S3C2410_CLKCON); /* ensure loop not optimised out */
  42.     }
  43.  
  44.     /* this bit is not cleared on re-start... */
  45.  
  46.     __raw_writel(__raw_readl(S3C2410_CLKCON) & ~S3C2410_CLKCON_IDLE,
  47.              S3C2410_CLKCON);
  48. }
  49.  
  50. static void arch_idle(void)
  51. {
  52.     if (s3c24xx_idle != NULL)
  53.         (s3c24xx_idle)();
  54.     else
  55.         s3c24xx_default_idle();
  56. }
  57.  
  58. #include <mach/system-reset.h>
  59.