home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 November (DVD) / PCWELT_11_2006.ISO / casper / filesystem.squashfs / usr / src / linux-headers-2.6.17-6 / include / asm-arm / arch-s3c2410 / debug-macro.S < prev    next >
Encoding:
Text File  |  2006-08-11  |  2.4 KB  |  100 lines

  1. /* linux/include/asm-arm/arch-s3c2410/debug-macro.S
  2.  *
  3.  * Debugging macro include header
  4.  *
  5.  *  Copyright (C) 1994-1999 Russell King
  6.  *  Copyright (C) 2005 Simtec Electronics
  7.  *
  8.  *  Moved from linux/arch/arm/kernel/debug.S by Ben Dooks
  9.  *
  10.  * This program is free software; you can redistribute it and/or modify
  11.  * it under the terms of the GNU General Public License version 2 as
  12.  * published by the Free Software Foundation.
  13.  *
  14.  * Modifications:
  15.  *     10-Mar-2005 LCVR  Changed S3C2410_VA to S3C24XX_VA
  16. */
  17.  
  18. #include <asm/arch/map.h>
  19. #include <asm/arch/regs-serial.h>
  20. #include <asm/arch/regs-gpio.h>
  21.  
  22. #define S3C2410_UART1_OFF (0x4000)
  23. #define SHIFT_2440TXF (14-9)
  24.  
  25.         .macro addruart, rx
  26.         mrc    p15, 0, \rx, c1, c0
  27.         tst    \rx, #1
  28.         ldreq    \rx, = S3C24XX_PA_UART
  29.         ldrne    \rx, = S3C24XX_VA_UART
  30. #if CONFIG_DEBUG_S3C2410_UART != 0
  31.         add    \rx, \rx, #(S3C2410_UART1_OFF * CONFIG_DEBUG_S3C2410_UART)
  32. #endif
  33.         .endm
  34.  
  35.         .macro    senduart,rd,rx
  36.         str    \rd, [\rx, # S3C2410_UTXH ]
  37.         .endm
  38.  
  39.         .macro    busyuart, rd, rx
  40.         ldr    \rd, [ \rx, # S3C2410_UFCON ]
  41.         tst    \rd, #S3C2410_UFCON_FIFOMODE    @ fifo enabled?
  42.         beq    1001f                @
  43.         @ FIFO enabled...
  44. 1003:
  45.         mrc    p15, 0, \rd, c1, c0
  46.         tst    \rd, #1
  47.         addeq    \rd, \rx, #(S3C24XX_PA_GPIO - S3C24XX_PA_UART)
  48.         addne    \rd, \rx, #(S3C24XX_VA_GPIO - S3C24XX_VA_UART)
  49.         bic    \rd, \rd, #0xff000
  50.         ldr    \rd, [ \rd, # S3C2410_GSTATUS1 - S3C2410_GPIOREG(0) ]
  51.         and    \rd, \rd, #0x00ff0000
  52.         teq    \rd, #0x00440000        @ is it 2440?
  53.  
  54.         ldr    \rd, [ \rx, # S3C2410_UFSTAT ]
  55.         moveq    \rd, \rd, lsr #SHIFT_2440TXF
  56.         tst    \rd, #S3C2410_UFSTAT_TXFULL
  57.         bne    1003b
  58.         b    1002f
  59.  
  60. 1001:
  61.         @ busy waiting for non fifo
  62.         ldr    \rd, [ \rx, # S3C2410_UTRSTAT ]
  63.         tst    \rd, #S3C2410_UTRSTAT_TXFE
  64.         beq    1001b
  65.  
  66. 1002:        @ exit busyuart
  67.         .endm
  68.  
  69.         .macro    waituart,rd,rx
  70.  
  71.         ldr    \rd, [ \rx, # S3C2410_UFCON ]
  72.         tst    \rd, #S3C2410_UFCON_FIFOMODE    @ fifo enabled?
  73.         beq    1001f                @
  74.         @ FIFO enabled...
  75. 1003:
  76.         mrc    p15, 0, \rd, c1, c0
  77.         tst    \rd, #1
  78.         addeq    \rd, \rx, #(S3C24XX_PA_GPIO - S3C24XX_PA_UART)
  79.         addne    \rd, \rx, #(S3C24XX_VA_GPIO - S3C24XX_VA_UART)
  80.         bic    \rd, \rd, #0xff000
  81.         ldr    \rd, [ \rd, # S3C2410_GSTATUS1 - S3C2410_GPIOREG(0) ]
  82.         and    \rd, \rd, #0x00ff0000
  83.         teq    \rd, #0x00440000        @ is it 2440?
  84.  
  85.         ldr    \rd, [ \rx, # S3C2410_UFSTAT ]
  86.         andne    \rd, \rd, #S3C2410_UFSTAT_TXMASK
  87.         andeq    \rd, \rd, #S3C2440_UFSTAT_TXMASK
  88.         teq    \rd, #0
  89.         bne    1003b
  90.         b    1002f
  91.  
  92. 1001:
  93.         @ idle waiting for non fifo
  94.         ldr    \rd, [ \rx, # S3C2410_UTRSTAT ]
  95.         tst    \rd, #S3C2410_UTRSTAT_TXFE
  96.         beq    1001b
  97.  
  98. 1002:        @ exit busyuart
  99.         .endm
  100.