1 | /* SPDX-License-Identifier: GPL-2.0-only */ |
2 | /* |
3 | * Copyright (C) 2003-2005 SAN People |
4 | * |
5 | * Debugging macro include header |
6 | */ |
7 | |
8 | #define AT91_DBGU_SR (0x14) /* Status Register */ |
9 | #define AT91_DBGU_THR (0x1c) /* Transmitter Holding Register */ |
10 | #define AT91_DBGU_TXRDY (1 << 1) /* Transmitter Ready */ |
11 | #define AT91_DBGU_TXEMPTY (1 << 9) /* Transmitter Empty */ |
12 | |
13 | .macro addruart, rp, rv, tmp |
14 | ldr \rp, =CONFIG_DEBUG_UART_PHYS @ System peripherals (phys address) |
15 | ldr \rv, =CONFIG_DEBUG_UART_VIRT @ System peripherals (virt address) |
16 | .endm |
17 | |
18 | .macro senduart,rd,rx |
19 | strb \rd, [\rx, #(AT91_DBGU_THR)] @ Write to Transmitter Holding Register |
20 | .endm |
21 | |
22 | .macro waituarttxrdy,rd,rx |
23 | 1001: ldr \rd, [\rx, #(AT91_DBGU_SR)] @ Read Status Register |
24 | tst \rd, #AT91_DBGU_TXRDY @ DBGU_TXRDY = 1 when ready to transmit |
25 | beq 1001b |
26 | .endm |
27 | |
28 | .macro waituartcts,rd,rx |
29 | .endm |
30 | |
31 | .macro busyuart,rd,rx |
32 | 1001: ldr \rd, [\rx, #(AT91_DBGU_SR)] @ Read Status Register |
33 | tst \rd, #AT91_DBGU_TXEMPTY @ DBGU_TXEMPTY = 1 when transmission complete |
34 | beq 1001b |
35 | .endm |
36 | |
37 | |