summaryrefslogtreecommitdiffstats
path: root/arch/arm/include/debug/8250.S
diff options
context:
space:
mode:
authorRussell King <rmk+kernel@arm.linux.org.uk>2013-07-07 12:42:46 +0200
committerRussell King <rmk+kernel@arm.linux.org.uk>2013-08-25 18:11:03 +0200
commit0b4cccbec60678212eccdb42dc1e1c233ddf7092 (patch)
tree6459ff818dec42f9e640bc3a6b4ab149f92b53cd /arch/arm/include/debug/8250.S
parentARM: debug: move 8250 debug include into arch/arm/include/debug/ (diff)
downloadlinux-0b4cccbec60678212eccdb42dc1e1c233ddf7092.tar.xz
linux-0b4cccbec60678212eccdb42dc1e1c233ddf7092.zip
ARM: debug: add support for word accesses to debug/8250.S
Add 32-bit word access support to debug/8250.S and convert Picoxcell and SoCFPGA to this. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/include/debug/8250.S')
-rw-r--r--arch/arm/include/debug/8250.S24
1 files changed, 21 insertions, 3 deletions
diff --git a/arch/arm/include/debug/8250.S b/arch/arm/include/debug/8250.S
index 92cab395677a..7a2baf913aa0 100644
--- a/arch/arm/include/debug/8250.S
+++ b/arch/arm/include/debug/8250.S
@@ -14,14 +14,32 @@
ldr \rv, =CONFIG_DEBUG_UART_VIRT
.endm
+#ifdef CONFIG_DEBUG_UART_8250_WORD
+ .macro store, rd, rx:vararg
+ str \rd, \rx
+ .endm
+
+ .macro load, rd, rx:vararg
+ ldr \rd, \rx
+ .endm
+#else
+ .macro store, rd, rx:vararg
+ strb \rd, \rx
+ .endm
+
+ .macro load, rd, rx:vararg
+ ldrb \rd, \rx
+ .endm
+#endif
+
#define UART_SHIFT CONFIG_DEBUG_UART_8250_SHIFT
.macro senduart,rd,rx
- strb \rd, [\rx, #UART_TX << UART_SHIFT]
+ store \rd, [\rx, #UART_TX << UART_SHIFT]
.endm
.macro busyuart,rd,rx
-1002: ldrb \rd, [\rx, #UART_LSR << UART_SHIFT]
+1002: load \rd, [\rx, #UART_LSR << UART_SHIFT]
and \rd, \rd, #UART_LSR_TEMT | UART_LSR_THRE
teq \rd, #UART_LSR_TEMT | UART_LSR_THRE
bne 1002b
@@ -29,7 +47,7 @@
.macro waituart,rd,rx
#ifdef CONFIG_DEBUG_UART_8250_FLOW_CONTROL
-1001: ldrb \rd, [\rx, #UART_MSR << UART_SHIFT]
+1001: load \rd, [\rx, #UART_MSR << UART_SHIFT]
tst \rd, #UART_MSR_CTS
beq 1001b
#endif