summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/arm/xilinx-zynq/console/zynq-uart.c
diff options
context:
space:
mode:
Diffstat (limited to 'c/src/lib/libbsp/arm/xilinx-zynq/console/zynq-uart.c')
-rw-r--r--c/src/lib/libbsp/arm/xilinx-zynq/console/zynq-uart.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/c/src/lib/libbsp/arm/xilinx-zynq/console/zynq-uart.c b/c/src/lib/libbsp/arm/xilinx-zynq/console/zynq-uart.c
index aa96eba375..f9a1cf91d5 100644
--- a/c/src/lib/libbsp/arm/xilinx-zynq/console/zynq-uart.c
+++ b/c/src/lib/libbsp/arm/xilinx-zynq/console/zynq-uart.c
@@ -226,3 +226,16 @@ const console_fns zynq_uart_fns = {
.deviceSetAttributes = zynq_uart_set_attribues,
.deviceOutputUsesInterrupts = false
};
+
+void zynq_uart_reset_tx_flush(int minor)
+{
+ volatile zynq_uart *regs = zynq_uart_get_regs(minor);
+ int c = 4;
+
+ while (c-- > 0)
+ zynq_uart_write_polled(minor, '\r');
+
+ while ((regs->channel_sts & ZYNQ_UART_CHANNEL_STS_TEMPTY) == 0) {
+ /* Wait */
+ }
+}