diff options
author | Jagan Teki <jagan@amarulasolutions.com> | 2017-06-06 08:31:51 +0300 |
---|---|---|
committer | Stefano Babic <sbabic@denx.de> | 2017-07-12 10:44:22 +0300 |
commit | 61366b71a8950aae48ce9e00295a16cf65ac4f02 (patch) | |
tree | 38d158cc3ffd6cfd1a72ce48b184f90fdb564814 /drivers/serial/serial_mxc.c | |
parent | 52c14cabdaf63ec1076be8a2e3054f3f01708256 (diff) | |
download | u-boot-61366b71a8950aae48ce9e00295a16cf65ac4f02.tar.xz |
serial: mxc: Add debug uart support
Add support for the debug UART to assist with early debugging.
Enable it for i.CoreM6 as an example.
Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'drivers/serial/serial_mxc.c')
-rw-r--r-- | drivers/serial/serial_mxc.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/drivers/serial/serial_mxc.c b/drivers/serial/serial_mxc.c index c8c36e5e19..cce80a8559 100644 --- a/drivers/serial/serial_mxc.c +++ b/drivers/serial/serial_mxc.c @@ -357,3 +357,29 @@ U_BOOT_DRIVER(serial_mxc) = { .flags = DM_FLAG_PRE_RELOC, }; #endif + +#ifdef CONFIG_DEBUG_UART_MXC +#include <debug_uart.h> + +static inline void _debug_uart_init(void) +{ + struct mxc_uart *base = (struct mxc_uart *)CONFIG_DEBUG_UART_BASE; + + _mxc_serial_init(base); + _mxc_serial_setbrg(base, CONFIG_DEBUG_UART_CLOCK, + CONFIG_BAUDRATE, false); +} + +static inline void _debug_uart_putc(int ch) +{ + struct mxc_uart *base = (struct mxc_uart *)CONFIG_DEBUG_UART_BASE; + + while (!(readl(&base->ts) & UTS_TXEMPTY)) + WATCHDOG_RESET(); + + writel(ch, &base->txd); +} + +DEBUG_UART_FUNCS + +#endif |