xref: /linux-6.15/arch/arm/include/debug/bcm63xx.S (revision b51312be)
1*b51312beSFlorian Fainelli/*
2*b51312beSFlorian Fainelli * Broadcom BCM63xx low-level UART debug
3*b51312beSFlorian Fainelli *
4*b51312beSFlorian Fainelli * Copyright (C) 2014 Broadcom Corporation
5*b51312beSFlorian Fainelli *
6*b51312beSFlorian Fainelli * This program is free software; you can redistribute it and/or modify
7*b51312beSFlorian Fainelli * it under the terms of the GNU General Public License version 2 as
8*b51312beSFlorian Fainelli * published by the Free Software Foundation.
9*b51312beSFlorian Fainelli */
10*b51312beSFlorian Fainelli
11*b51312beSFlorian Fainelli#include <linux/serial_bcm63xx.h>
12*b51312beSFlorian Fainelli
13*b51312beSFlorian Fainelli	.macro	addruart, rp, rv, tmp
14*b51312beSFlorian Fainelli	ldr	\rp, =CONFIG_DEBUG_UART_PHYS
15*b51312beSFlorian Fainelli	ldr	\rv, =CONFIG_DEBUG_UART_VIRT
16*b51312beSFlorian Fainelli	.endm
17*b51312beSFlorian Fainelli
18*b51312beSFlorian Fainelli	.macro	senduart, rd, rx
19*b51312beSFlorian Fainelli	/* word access do not work */
20*b51312beSFlorian Fainelli	strb	\rd, [\rx, #UART_FIFO_REG]
21*b51312beSFlorian Fainelli	.endm
22*b51312beSFlorian Fainelli
23*b51312beSFlorian Fainelli	.macro	waituart, rd, rx
24*b51312beSFlorian Fainelli1001:	ldr	\rd, [\rx, #UART_IR_REG]
25*b51312beSFlorian Fainelli	tst	\rd, #(1 << UART_IR_TXEMPTY)
26*b51312beSFlorian Fainelli	beq	1001b
27*b51312beSFlorian Fainelli	.endm
28*b51312beSFlorian Fainelli
29*b51312beSFlorian Fainelli	.macro	busyuart, rd, rx
30*b51312beSFlorian Fainelli1002:	ldr	\rd, [\rx, #UART_IR_REG]
31*b51312beSFlorian Fainelli	tst	\rd, #(1 << UART_IR_TXTRESH)
32*b51312beSFlorian Fainelli	beq	1002b
33*b51312beSFlorian Fainelli	.endm
34