summaryrefslogtreecommitdiff
path: root/drivers/serial/atmel_usart.c
diff options
context:
space:
mode:
authorTom Rini <trini@konsulko.com>2016-10-28 14:14:18 -0400
committerTom Rini <trini@konsulko.com>2016-10-28 14:14:18 -0400
commit1df182ddf700de49fb4400ba67c3029278ea88e7 (patch)
treec709e8a79950a29f1d12fc09fbf52b293bd54092 /drivers/serial/atmel_usart.c
parent4f892924d238cc415891dbea336a0fdaff2f853b (diff)
parent0eafd4b77615efdd948e698d83be746dcf026a53 (diff)
downloadu-boot-imx-1df182ddf700de49fb4400ba67c3029278ea88e7.zip
u-boot-imx-1df182ddf700de49fb4400ba67c3029278ea88e7.tar.gz
u-boot-imx-1df182ddf700de49fb4400ba67c3029278ea88e7.tar.bz2
Merge branch 'master' of git://git.denx.de/u-boot-atmel
Diffstat (limited to 'drivers/serial/atmel_usart.c')
-rw-r--r--drivers/serial/atmel_usart.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/drivers/serial/atmel_usart.c b/drivers/serial/atmel_usart.c
index e450135..7674f97 100644
--- a/drivers/serial/atmel_usart.c
+++ b/drivers/serial/atmel_usart.c
@@ -11,6 +11,7 @@
#include <errno.h>
#include <watchdog.h>
#include <serial.h>
+#include <debug_uart.h>
#include <linux/compiler.h>
#include <asm/io.h>
@@ -226,3 +227,24 @@ U_BOOT_DRIVER(serial_atmel) = {
.priv_auto_alloc_size = sizeof(struct atmel_serial_priv),
};
#endif
+
+#ifdef CONFIG_DEBUG_UART_ATMEL
+static inline void _debug_uart_init(void)
+{
+ atmel_usart3_t *usart = (atmel_usart3_t *)CONFIG_DEBUG_UART_BASE;
+
+ atmel_serial_setbrg_internal(usart, 0, CONFIG_BAUDRATE);
+}
+
+static inline void _debug_uart_putc(int ch)
+{
+ atmel_usart3_t *usart = (atmel_usart3_t *)CONFIG_DEBUG_UART_BASE;
+
+ while (!(readl(&usart->csr) & USART3_BIT(TXRDY)))
+ ;
+
+ writel(ch, &usart->thr);
+}
+
+DEBUG_UART_FUNCS
+#endif