| /* | |
| * Copyright (C) 2013 Pengutronix | |
| * Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de> | |
| * | |
| * This program is free software; you can redistribute it and/or modify | |
| * it under the terms of the GNU General Public License version 2 as | |
| * published by the Free Software Foundation. | |
| */ | |
| #define UARTn_CMD 0x000c | |
| #define UARTn_CMD_TXEN 0x0004 | |
| #define UARTn_STATUS 0x0010 | |
| #define UARTn_STATUS_TXC 0x0020 | |
| #define UARTn_STATUS_TXBL 0x0040 | |
| #define UARTn_TXDATA 0x0034 | |
| .macro addruart, rx, tmp, tmp2 | |
| ldr \rx, =(CONFIG_DEBUG_UART_PHYS) | |
| /* | |
| * enable TX. The driver might disable it to save energy. We | |
| * don't care about disabling at the end as during debug power | |
| * consumption isn't that important. | |
| */ | |
| ldr \tmp, =(UARTn_CMD_TXEN) | |
| str \tmp, [\rx, #UARTn_CMD] | |
| .endm | |
| .macro senduart,rd,rx | |
| strb \rd, [\rx, #UARTn_TXDATA] | |
| .endm | |
| .macro waituart,rd,rx | |
| 1001: ldr \rd, [\rx, #UARTn_STATUS] | |
| tst \rd, #UARTn_STATUS_TXBL | |
| beq 1001b | |
| .endm | |
| .macro busyuart,rd,rx | |
| 1001: ldr \rd, [\rx, UARTn_STATUS] | |
| tst \rd, #UARTn_STATUS_TXC | |
| bne 1001b | |
| .endm |