From fdf0e55cf929aba409e19c4692a73b6522f2a51e Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Wed, 8 Nov 2017 08:42:33 +0100 Subject: bsp/imx: Add UART baud change Update #3090. --- c/src/lib/libbsp/arm/imx/console/console-config.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'c/src/lib/libbsp/arm/imx') diff --git a/c/src/lib/libbsp/arm/imx/console/console-config.c b/c/src/lib/libbsp/arm/imx/console/console-config.c index 5cceb9c8e9..0731446f08 100644 --- a/c/src/lib/libbsp/arm/imx/console/console-config.c +++ b/c/src/lib/libbsp/arm/imx/console/console-config.c @@ -23,6 +23,7 @@ #include #include +#include #include #include @@ -192,6 +193,24 @@ static bool imx_uart_set_attributes( const struct termios *term ) { + imx_uart_context *ctx; + volatile imx_uart *regs; + uint32_t ufcr; + uint32_t baud; + + ctx = (imx_uart_context *) base; + regs = imx_uart_get_regs(&ctx->base); + + baud = rtems_termios_baud_to_number(term->c_ospeed); + + if (baud != 0) { + ufcr = regs->ufcr; + ufcr = IMX_UART_UFCR_RFDIV_SET(ufcr, 0x5); + regs->ufcr = ufcr; + regs->ubir = 15; + regs->ubmr = imx_ccm_uart_hz() / baud - 1; + } + return true; } -- cgit v1.2.3