fedora core 2.6.10-1.12-FC2
[linux-2.6.git] / arch / arm / kernel / debug.S
index 7b4e972..78146b6 100644 (file)
 #elif defined(CONFIG_ARCH_S3C2410)
 #include <asm/arch/map.h>
 #include <asm/arch/regs-serial.h>
+#include <asm/arch/regs-gpio.h>
+#define S3C2410_UART1_OFF (0x4000)
+#define SHIFT_2440TXF (14-9)
 
                .macro addruart, rx
                mrc     p15, 0, \rx, c1, c0
                beq     1001f                           @
                @ FIFO enabled...
 1003:
+               mrc     p15, 0, \rd, c1, c0
+               tst     \rd, #1
+               addeq   \rd, \rx, #(S3C2410_PA_GPIO - S3C2410_PA_UART)
+               addne   \rd, \rx, #(S3C2410_VA_GPIO - S3C2410_VA_UART)
+               bic     \rd, \rd, #0xff000
+               ldr     \rd, [ \rd, # S3C2410_GSTATUS1 - S3C2410_GPIOREG(0) ]
+               and     \rd, \rd, #0x00ff0000
+               teq     \rd, #0x00440000                @ is it 2440?
+
                ldr     \rd, [ \rx, # S3C2410_UFSTAT ]
+               moveq   \rd, \rd, lsr #SHIFT_2440TXF
                tst     \rd, #S3C2410_UFSTAT_TXFULL
                bne     1003b
                b       1002f
                beq     1001f                           @
                @ FIFO enabled...
 1003:
+               mrc     p15, 0, \rd, c1, c0
+               tst     \rd, #1
+               addeq   \rd, \rx, #(S3C2410_PA_GPIO - S3C2410_PA_UART)
+               addne   \rd, \rx, #(S3C2410_VA_GPIO - S3C2410_VA_UART)
+               bic     \rd, \rd, #0xff000
+               ldr     \rd, [ \rd, # S3C2410_GSTATUS1 - S3C2410_GPIOREG(0) ]
+               and     \rd, \rd, #0x00ff0000
+               teq     \rd, #0x00440000                @ is it 2440?
+
                ldr     \rd, [ \rx, # S3C2410_UFSTAT ]
-               ands    \rd, \rd, #15<<S3C2410_UFSTAT_TXSHIFT
+               andne   \rd, \rd, #S3C2410_UFSTAT_TXMASK
+               andeq   \rd, \rd, #S3C2440_UFSTAT_TXMASK
+               teq     \rd, #0
                bne     1003b
                b       1002f
 
                .endm
 
 
-#elif defined(CONFIG_ARCH_VERSATILE_PB)
+#elif defined(CONFIG_ARCH_VERSATILE)
 
 #include <asm/hardware/amba_serial.h>