xref: /linux-6.15/arch/arm/include/debug/bcm63xx.S (revision 2c50a570)
1d2912cb1SThomas Gleixner/* SPDX-License-Identifier: GPL-2.0-only */
2b51312beSFlorian Fainelli/*
3b51312beSFlorian Fainelli * Broadcom BCM63xx low-level UART debug
4b51312beSFlorian Fainelli *
5b51312beSFlorian Fainelli * Copyright (C) 2014 Broadcom Corporation
6b51312beSFlorian Fainelli */
7b51312beSFlorian Fainelli
8b51312beSFlorian Fainelli#include <linux/serial_bcm63xx.h>
9b51312beSFlorian Fainelli
10b51312beSFlorian Fainelli	.macro	addruart, rp, rv, tmp
11b51312beSFlorian Fainelli	ldr	\rp, =CONFIG_DEBUG_UART_PHYS
12b51312beSFlorian Fainelli	ldr	\rv, =CONFIG_DEBUG_UART_VIRT
13b51312beSFlorian Fainelli	.endm
14b51312beSFlorian Fainelli
15b51312beSFlorian Fainelli	.macro	senduart, rd, rx
16b51312beSFlorian Fainelli	/* word access do not work */
17b51312beSFlorian Fainelli	strb	\rd, [\rx, #UART_FIFO_REG]
18b51312beSFlorian Fainelli	.endm
19b51312beSFlorian Fainelli
20*2c50a570SLinus Walleij	.macro	waituarttxrdy, rd, rx
21b51312beSFlorian Fainelli1001:	ldr	\rd, [\rx, #UART_IR_REG]
22b51312beSFlorian Fainelli	tst	\rd, #(1 << UART_IR_TXEMPTY)
23b51312beSFlorian Fainelli	beq	1001b
24b51312beSFlorian Fainelli	.endm
25b51312beSFlorian Fainelli
26*2c50a570SLinus Walleij	.macro	waituartcts, rd, rx
27*2c50a570SLinus Walleij	.endm
28*2c50a570SLinus Walleij
29b51312beSFlorian Fainelli	.macro	busyuart, rd, rx
30b51312beSFlorian Fainelli1002:	ldr	\rd, [\rx, #UART_IR_REG]
31b51312beSFlorian Fainelli	tst	\rd, #(1 << UART_IR_TXTRESH)
32b51312beSFlorian Fainelli	beq	1002b
33b51312beSFlorian Fainelli	.endm
34