diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2017-11-08 08:42:33 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2017-11-08 08:43:27 +0100 |
commit | fdf0e55cf929aba409e19c4692a73b6522f2a51e (patch) | |
tree | 7af5f868f5a70b3a1f8d9bb0cae537406d784c33 /c | |
parent | bsp/imx: Better utilize UART transmit FIFO (diff) | |
download | rtems-fdf0e55cf929aba409e19c4692a73b6522f2a51e.tar.bz2 |
bsp/imx: Add UART baud change
Update #3090.
Diffstat (limited to 'c')
-rw-r--r-- | c/src/lib/libbsp/arm/imx/console/console-config.c | 19 |
1 files changed, 19 insertions, 0 deletions
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 <bsp/fdt.h> #include <bsp/irq.h> +#include <arm/freescale/imx/imx_ccmvar.h> #include <arm/freescale/imx/imx_uartreg.h> #include <libfdt.h> @@ -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; } |