Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1/* SPDX-License-Identifier: GPL-2.0-only */
2/*
3 * Copyright (C) 2013 Pengutronix
4 * Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de>
5 */
6
7#define UARTn_CMD 0x000c
8#define UARTn_CMD_TXEN 0x0004
9
10#define UARTn_STATUS 0x0010
11#define UARTn_STATUS_TXC 0x0020
12#define UARTn_STATUS_TXBL 0x0040
13
14#define UARTn_TXDATA 0x0034
15
16 .macro addruart, rx, tmp, tmp2
17 ldr \rx, =(CONFIG_DEBUG_UART_PHYS)
18
19 /*
20 * enable TX. The driver might disable it to save energy. We
21 * don't care about disabling at the end as during debug power
22 * consumption isn't that important.
23 */
24 ldr \tmp, =(UARTn_CMD_TXEN)
25 str \tmp, [\rx, #UARTn_CMD]
26 .endm
27
28 .macro senduart,rd,rx
29 strb \rd, [\rx, #UARTn_TXDATA]
30 .endm
31
32 .macro waituartcts,rd,rx
33 .endm
34
35 .macro waituarttxrdy,rd,rx
361001: ldr \rd, [\rx, #UARTn_STATUS]
37 tst \rd, #UARTn_STATUS_TXBL
38 beq 1001b
39 .endm
40
41 .macro busyuart,rd,rx
421001: ldr \rd, [\rx, UARTn_STATUS]
43 tst \rd, #UARTn_STATUS_TXC
44 bne 1001b
45 .endm