/* linux/include/asm-arm/plat-s3c/debug-macro.S * * Copyright 2005, 2007 Simtec Electronics * http://armlinux.simtec.co.uk/ * Ben Dooks * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. */ #include #define S3C2410_UART1_OFF (0x4000) .macro senduart,rd,rx strb \rd, [\rx, # S3C2410_UTXH ] .endm .macro busyuart, rd, rx ldr \rd, [ \rx, # S3C2410_UFCON ] tst \rd, #S3C2410_UFCON_FIFOMODE @ fifo enabled? beq 1001f @ @ FIFO enabled... 1003: fifo_full \rd, \rx bne 1003b b 1002f 1001: @ busy waiting for non fifo ldr \rd, [ \rx, # S3C2410_UTRSTAT ] tst \rd, #S3C2410_UTRSTAT_TXFE beq 1001b 1002: @ exit busyuart .endm .macro waituart,rd,rx ldr \rd, [ \rx, # S3C2410_UFCON ] tst \rd, #S3C2410_UFCON_FIFOMODE @ fifo enabled? beq 1001f @ @ FIFO enabled... 1003: fifo_level \rd, \rx teq \rd, #0 bne 1003b b 1002f 1001: @ idle waiting for non fifo ldr \rd, [ \rx, # S3C2410_UTRSTAT ] tst \rd, #S3C2410_UTRSTAT_TXFE beq 1001b 1002: @ exit busyuart .endm