diff options
author | Andrey Smirnov <andrew.smirnov@gmail.com> | 2015-05-06 12:31:58 -0700 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2015-05-07 09:49:38 +0200 |
commit | 7aca256facf543162e2718091d69e1a61b62bc61 (patch) | |
tree | f0c30c917f8d5e67bffbfaaef8d9e71fdff5f29c | |
parent | 18a5a9b969cf9af5d3668bd6e5918554369439d3 (diff) | |
download | barebox-7aca256facf543162e2718091d69e1a61b62bc61.tar.gz barebox-7aca256facf543162e2718091d69e1a61b62bc61.tar.xz |
i.MX: serial: Add baud rate calculation convenience functions
Add two functions to calculate values for UBMR and UBIR
registers. This way both early serial initalization code and
serial_imx.c can use them and not duplicate the code.
Singed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-rw-r--r-- | drivers/serial/serial_imx.c | 4 | ||||
-rw-r--r-- | include/serial/imx-uart.h | 9 |
2 files changed, 11 insertions, 2 deletions
diff --git a/drivers/serial/serial_imx.c b/drivers/serial/serial_imx.c index 5b9b0d6ca8..ed00a91b80 100644 --- a/drivers/serial/serial_imx.c +++ b/drivers/serial/serial_imx.c @@ -178,9 +178,9 @@ static int imx_serial_setbaudrate(struct console_device *cdev, int baudrate) writel(val, regs + UCR1); /* Set the numerator value minus one of the BRM ratio */ - writel((baudrate / 100) - 1, regs + UBIR); + writel(baudrate_to_ubir(baudrate), regs + UBIR); /* Set the denominator value minus one of the BRM ratio */ - writel((imx_serial_reffreq(priv) / 1600) - 1, regs + UBMR); + writel(refclock_to_ubmr(imx_serial_reffreq(priv)), regs + UBMR); writel(ucr1, regs + UCR1); diff --git a/include/serial/imx-uart.h b/include/serial/imx-uart.h index 0a0178882a..7275e6ac38 100644 --- a/include/serial/imx-uart.h +++ b/include/serial/imx-uart.h @@ -115,5 +115,14 @@ #define UTS_RXFULL (1<<3) /* RxFIFO full */ #define UTS_SOFTRST (1<<0) /* Software reset */ +static inline int baudrate_to_ubir(int baudrate) +{ + return baudrate / 100 - 1; +} + +static inline int refclock_to_ubmr(int clock_hz) +{ + return clock_hz / 1600 - 1; +} #endif /* __IMX_UART_H__ */ |