0001
0002
0003
0004
0005
0006
0007
0008
0009
0010 #include <asm/assembler.h>
0011 #include "imx-uart.h"
0012
0013
0014
0015
0016
0017
0018
0019 #define IMX_IO_P2V(x) ( \
0020 (((x) & 0x80000000) >> 7) | \
0021 (0xf4000000 + \
0022 (((x) & 0x50000000) >> 6) + \
0023 (((x) & 0x0b000000) >> 4) + \
0024 (((x) & 0x000fffff))))
0025
0026 #define UART_VADDR IMX_IO_P2V(UART_PADDR)
0027
0028 .macro addruart, rp, rv, tmp
0029 ldr \rp, =UART_PADDR @ physical
0030 ldr \rv, =UART_VADDR @ virtual
0031 .endm
0032
0033 .macro senduart,rd,rx
0034 ARM_BE8(rev \rd, \rd)
0035 str \rd, [\rx, #0x40] @ TXDATA
0036 .endm
0037
0038 .macro waituartcts,rd,rx
0039 .endm
0040
0041 .macro waituarttxrdy,rd,rx
0042 .endm
0043
0044 .macro busyuart,rd,rx
0045 1002: ldr \rd, [\rx, #0x98] @ SR2
0046 ARM_BE8(rev \rd, \rd)
0047 tst \rd, #1 << 3 @ TXDC
0048 beq 1002b @ wait until transmit done
0049 .endm