#endif
.endm
-#elif defined(CONFIG_ARCH_ADI_EVB)
+#elif defined(CONFIG_ARCH_IXP4XX)
+
+ .macro addruart,rx
+ mrc p15, 0, \rx, c1, c0
+ tst \rx, #1 @ MMU enabled?
+ moveq \rx, #0xc8000000
+ movne \rx, #0xff000000
+ add \rx,\rx,#3 @ Uart regs are at off set of 3 if
+ @ byte writes used - Big Endian.
+ .endm
+
+ .macro senduart,rd,rx
+ strb \rd, [\rx]
+ .endm
+
+ .macro waituart,rd,rx
+1002: ldrb \rd, [\rx, #0x14]
+ and \rd, \rd, #0x60 @ check THRE and TEMT bits
+ teq \rd, #0x60
+ bne 1002b
+ .endm
+
+ .macro busyuart,rd,rx
+ .endm
+
+#elif defined(CONFIG_ARCH_OMAP)
.macro addruart,rx
mrc p15, 0, \rx, c1, c0
tst \rx, #1 @ MMU enabled?
- mov \rx, #0x00400000 @ physical base address
- orrne \rx, \rx, #0xff000000 @ virtual base
+ moveq \rx, #0xff000000 @ physical base address
+ movne \rx, #0xfe000000 @ virtual base
+ orr \rx, \rx, #0x00fb0000
+#ifdef CONFIG_OMAP_LL_DEBUG_UART3
+ orr \rx, \rx, #0x00009000 @ UART 3
+#endif
+#if defined(CONFIG_OMAP_LL_DEBUG_UART2) || defined(CONFIG_OMAP_LL_DEBUG_UART3)
+ orr \rx, \rx, #0x00000800 @ UART 2 & 3
+#endif
.endm
.macro senduart,rd,rx
.endm
.macro busyuart,rd,rx
-1002: ldrb \rd, [\rx, #0x5]
+1001: ldrb \rd, [\rx, #(0x5 << 2)] @ OMAP-1510 and friends
and \rd, \rd, #0x60
teq \rd, #0x60
- bne 1002b
- .endm
-
- .macro waituart,rd,rx
-1001: ldrb \rd, [\rx, #0x6]
- tst \rd, #0x10
- beq 1001b
- .endm
-
-#elif defined(CONFIG_ARCH_OMAP)
-
-#include <asm/arch/serial.h>
-
- .macro addruart,rx
- mov \rx, #0xff000000
- orr \rx, \rx, #0x00fb0000
- .endm
-
- .macro senduart,rd,rx
- strb \rd, [\rx]
- .endm
-
- .macro busyuart,rd,rx
-1002: ldrb \rd, [\rx, #(0x5 << OMAP_SERIAL_REG_SHIFT)]
+ beq 1002f
+ ldrb \rd, [\rx, #(0x5 << 0)] @ OMAP-730 only
and \rd, \rd, #0x60
teq \rd, #0x60
- bne 1002b
+ bne 1001b
+1002:
.endm
.macro waituart,rd,rx
-1001: ldrb \rd, [\rx, #(0x6 << OMAP_SERIAL_REG_SHIFT)]
- tst \rd, #0x10
- beq 1001b
.endm
#elif defined(CONFIG_ARCH_S3C2410)
.endm
#elif defined(CONFIG_ARCH_LH7A40X)
- @ It isn't known if this will be appropriate for every 40x
+ @ It is not known if this will be appropriate for every 40x
@ board.
.macro addruart,rx
mrc p15, 0, \rx, c1, c0
tst \rx, #1 @ MMU enabled?
- ldr \rx, =0x80000700 @ physical base address
+ mov \rx, #0x00000700 @ offset from base
+ orreq \rx, \rx, #0x80000000 @ physical base
orrne \rx, \rx, #0xf8000000 @ virtual base
.endm