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