Commit | Line | Data |
---|---|---|
268099e3 | 1 | /* |
2facbc88 | 2 | * arch/arm/include/debug/8250.S |
268099e3 | 3 | * |
c3faa9b7 | 4 | * Copyright (C) 1994-2013 Russell King |
268099e3 RK |
5 | * |
6 | * This program is free software; you can redistribute it and/or modify | |
7 | * it under the terms of the GNU General Public License version 2 as | |
8 | * published by the Free Software Foundation. | |
9 | */ | |
10 | #include <linux/serial_reg.h> | |
11 | ||
c3faa9b7 RK |
12 | .macro addruart, rp, rv, tmp |
13 | ldr \rp, =CONFIG_DEBUG_UART_PHYS | |
14 | ldr \rv, =CONFIG_DEBUG_UART_VIRT | |
15 | .endm | |
c3faa9b7 | 16 | |
0b4cccbe RK |
17 | #ifdef CONFIG_DEBUG_UART_8250_WORD |
18 | .macro store, rd, rx:vararg | |
19 | str \rd, \rx | |
20 | .endm | |
21 | ||
22 | .macro load, rd, rx:vararg | |
23 | ldr \rd, \rx | |
24 | .endm | |
25 | #else | |
26 | .macro store, rd, rx:vararg | |
27 | strb \rd, \rx | |
28 | .endm | |
29 | ||
30 | .macro load, rd, rx:vararg | |
31 | ldrb \rd, \rx | |
32 | .endm | |
33 | #endif | |
34 | ||
4a003647 | 35 | #define UART_SHIFT CONFIG_DEBUG_UART_8250_SHIFT |
4a003647 | 36 | |
268099e3 | 37 | .macro senduart,rd,rx |
0b4cccbe | 38 | store \rd, [\rx, #UART_TX << UART_SHIFT] |
268099e3 RK |
39 | .endm |
40 | ||
41 | .macro busyuart,rd,rx | |
0b4cccbe | 42 | 1002: load \rd, [\rx, #UART_LSR << UART_SHIFT] |
268099e3 RK |
43 | and \rd, \rd, #UART_LSR_TEMT | UART_LSR_THRE |
44 | teq \rd, #UART_LSR_TEMT | UART_LSR_THRE | |
45 | bne 1002b | |
46 | .endm | |
47 | ||
48 | .macro waituart,rd,rx | |
7610b607 | 49 | #ifdef CONFIG_DEBUG_UART_8250_FLOW_CONTROL |
0b4cccbe | 50 | 1001: load \rd, [\rx, #UART_MSR << UART_SHIFT] |
268099e3 RK |
51 | tst \rd, #UART_MSR_CTS |
52 | beq 1001b | |
53 | #endif | |
54 | .endm |