Merge tag 'usb-5.11-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb
[linux/fpc-iii.git] / arch / arm / include / debug / 8250.S
blobe3692a37cede3c51328e4b2f617a3108e5d4722e
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /*
3  * arch/arm/include/debug/8250.S
4  *
5  *  Copyright (C) 1994-2013 Russell King
6  */
7 #include <linux/serial_reg.h>
9                 .macro  addruart, rp, rv, tmp
10                 ldr     \rp, =CONFIG_DEBUG_UART_PHYS
11                 ldr     \rv, =CONFIG_DEBUG_UART_VIRT
12                 .endm
14 #ifdef CONFIG_DEBUG_UART_8250_WORD
15                 .macro  store, rd, rx:vararg
16          ARM_BE8(rev \rd, \rd)
17                 str     \rd, \rx
18          ARM_BE8(rev \rd, \rd)
19                 .endm
21                 .macro  load, rd, rx:vararg
22                 ldr     \rd, \rx
23         ARM_BE8(rev \rd, \rd)
24                 .endm
25 #else
26                 .macro  store, rd, rx:vararg
27                 strb    \rd, \rx
28                 .endm
30                 .macro  load, rd, rx:vararg
31                 ldrb    \rd, \rx
32                 .endm
33 #endif
35 #define UART_SHIFT CONFIG_DEBUG_UART_8250_SHIFT
37                 .macro  senduart,rd,rx
38                 store   \rd, [\rx, #UART_TX << UART_SHIFT]
39                 .endm
41                 .macro  busyuart,rd,rx
42 1002:           load    \rd, [\rx, #UART_LSR << UART_SHIFT]
43                 and     \rd, \rd, #UART_LSR_TEMT | UART_LSR_THRE
44                 teq     \rd, #UART_LSR_TEMT | UART_LSR_THRE
45                 bne     1002b
46                 .endm
48                 .macro  waituarttxrdy,rd,rx
49                 .endm
51                 .macro  waituartcts,rd,rx
52 1001:           load    \rd, [\rx, #UART_MSR << UART_SHIFT]
53                 tst     \rd, #UART_MSR_CTS
54                 beq     1001b
55                 .endm