1 
   2 
   3 
   4 
   5 
   6 
   7 
   8 
   9 
  10 
  11 
  12 #include <linux/linkage.h>
  13 #include <asm/assembler.h>
  14 #include <mach/map.h>
  15 
  16 #undef S3C64XX_VA_GPIO
  17 #define S3C64XX_VA_GPIO (0x0)
  18 
  19 #include <mach/regs-gpio.h>
  20 
  21 #define LL_UART (S3C_PA_UART + (0x400 * CONFIG_S3C_LOWLEVEL_UART_PORT))
  22 
  23         .text
  24 
  25         
  26 
  27 
  28         .word   0x2bedf00d
  29 
  30         
  31 
  32 
  33 
  34 
  35 
  36 
  37 
  38 
  39 ENTRY(s3c_cpu_resume)
  40         msr     cpsr_c, #PSR_I_BIT | PSR_F_BIT | SVC_MODE
  41         ldr     r2, =LL_UART            
  42 
  43 #ifdef CONFIG_S3C_PM_DEBUG_LED_SMDK
  44 
  45 #define S3C64XX_GPNCON                  (S3C64XX_GPN_BASE + 0x00)
  46 #define S3C64XX_GPNDAT                  (S3C64XX_GPN_BASE + 0x04)
  47 
  48 #define S3C64XX_GPN_CONMASK(__gpio)     (0x3 << ((__gpio) * 2))
  49 #define S3C64XX_GPN_OUTPUT(__gpio)      (0x1 << ((__gpio) * 2))
  50 
  51         
  52 
  53 
  54 
  55 
  56         ldr     r3, =S3C64XX_PA_GPIO
  57         ldr     r0, [ r3, #S3C64XX_GPNCON ]
  58         bic     r0, r0, #(S3C64XX_GPN_CONMASK(12) | S3C64XX_GPN_CONMASK(13) | \
  59                           S3C64XX_GPN_CONMASK(14) | S3C64XX_GPN_CONMASK(15))
  60         orr     r0, r0, #(S3C64XX_GPN_OUTPUT(12) | S3C64XX_GPN_OUTPUT(13) | \
  61                           S3C64XX_GPN_OUTPUT(14) | S3C64XX_GPN_OUTPUT(15))
  62         str     r0, [ r3, #S3C64XX_GPNCON ]
  63 
  64         ldr     r0, [ r3, #S3C64XX_GPNDAT ]
  65         bic     r0, r0, #0xf << 12                      @ GPN12..15
  66         orr     r0, r0, #1 << 15                        @ GPN15
  67         str     r0, [ r3, #S3C64XX_GPNDAT ]
  68 #endif
  69         b       cpu_resume