1 | /* SPDX-License-Identifier: GPL-2.0 */ |
2 | /* |
3 | * Renesas SCIF(A) debugging macro include header |
4 | * |
5 | * Based on r8a7790.S |
6 | * |
7 | * Copyright (C) 2012-2013 Renesas Electronics Corporation |
8 | * Copyright (C) 1994-1999 Russell King |
9 | */ |
10 | |
11 | #define SCIF_PHYS CONFIG_DEBUG_UART_PHYS |
12 | #define SCIF_VIRT ((SCIF_PHYS & 0x00ffffff) | 0xfd000000) |
13 | |
14 | #if defined(CONFIG_DEBUG_R7S9210_SCIF2) || defined(CONFIG_DEBUG_R7S9210_SCIF4) |
15 | /* RZ/A2 SCIFA */ |
16 | #define FTDR 0x06 |
17 | #define FSR 0x08 |
18 | #elif CONFIG_DEBUG_UART_PHYS < 0xe6e00000 |
19 | /* SCIFA */ |
20 | #define FTDR 0x20 |
21 | #define FSR 0x14 |
22 | #else |
23 | /* SCIF */ |
24 | #define FTDR 0x0c |
25 | #define FSR 0x10 |
26 | #endif |
27 | |
28 | #define TDFE (1 << 5) |
29 | #define TEND (1 << 6) |
30 | |
31 | .macro addruart, rp, rv, tmp |
32 | ldr \rp, =SCIF_PHYS |
33 | ldr \rv, =SCIF_VIRT |
34 | .endm |
35 | |
36 | .macro waituartcts,rd,rx |
37 | .endm |
38 | |
39 | .macro waituarttxrdy, rd, rx |
40 | 1001: ldrh \rd, [\rx, #FSR] |
41 | tst \rd, #TDFE |
42 | beq 1001b |
43 | .endm |
44 | |
45 | .macro senduart, rd, rx |
46 | strb \rd, [\rx, #FTDR] |
47 | ldrh \rd, [\rx, #FSR] |
48 | bic \rd, \rd, #TEND |
49 | strh \rd, [\rx, #FSR] |
50 | .endm |
51 | |
52 | .macro busyuart, rd, rx |
53 | 1001: ldrh \rd, [\rx, #FSR] |
54 | tst \rd, #TEND |
55 | beq 1001b |
56 | .endm |
57 | |