1/* 2 * Copyright (C) 2014 Carlo Caione 3 * Carlo Caione <carlo@caione.org> 4 * 5 * This program is free software; you can redistribute it and/or modify 6 * it under the terms of the GNU General Public License version 2 as 7 * published by the Free Software Foundation. 8 */ 9 10#define MESON_AO_UART_WFIFO 0x0 11#define MESON_AO_UART_STATUS 0xc 12 13#define MESON_AO_UART_TX_FIFO_EMPTY (1 << 22) 14#define MESON_AO_UART_TX_FIFO_FULL (1 << 21) 15 16 .macro addruart, rp, rv, tmp 17 ldr \rp, =(CONFIG_DEBUG_UART_PHYS) @ physical 18 ldr \rv, =(CONFIG_DEBUG_UART_VIRT) @ virtual 19 .endm 20 21 .macro senduart,rd,rx 22 str \rd, [\rx, #MESON_AO_UART_WFIFO] 23 .endm 24 25 .macro busyuart,rd,rx 261002: ldr \rd, [\rx, #MESON_AO_UART_STATUS] 27 tst \rd, #MESON_AO_UART_TX_FIFO_EMPTY 28 beq 1002b 29 .endm 30 31 .macro waituart,rd,rx 321001: ldr \rd, [\rx, #MESON_AO_UART_STATUS] 33 tst \rd, #MESON_AO_UART_TX_FIFO_FULL 34 bne 1001b 35 .endm 36