diff options
author | Antony Pavlov <antonynpavlov@gmail.com> | 2012-01-18 10:31:54 +0400 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2012-01-19 09:46:02 +0100 |
commit | fd434ce24a49c6c884a88e15670cafae0217fc52 (patch) | |
tree | 6b06a3e04b424027ef1180fd250e64b3ed5d366c /drivers/serial/serial_ns16550.c | |
parent | 5891ba14b86d4f480ee82f46a21f4c4d4b8172d0 (diff) | |
download | barebox-fd434ce24a49c6c884a88e15670cafae0217fc52.tar.gz barebox-fd434ce24a49c6c884a88e15670cafae0217fc52.tar.xz |
ns16550: make ns16550_serial_init_port() shorter
Signed-off-by: Antony Pavlov <antonynpavlov@gmail.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers/serial/serial_ns16550.c')
-rw-r--r-- | drivers/serial/serial_ns16550.c | 20 |
1 files changed, 3 insertions, 17 deletions
diff --git a/drivers/serial/serial_ns16550.c b/drivers/serial/serial_ns16550.c index 4cef469c1b..3382acda9c 100644 --- a/drivers/serial/serial_ns16550.c +++ b/drivers/serial/serial_ns16550.c @@ -47,6 +47,7 @@ #include <ns16550.h> /*********** Private Functions **********************************/ +static int ns16550_setbaudrate(struct console_device *cdev, int baud_rate); /** * @brief read register @@ -120,7 +121,7 @@ static void ns16550_write(struct console_device *cdev, uint32_t val, * * @return divisor to be set */ -static unsigned int ns16550_calc_divisor(struct console_device *cdev, +static inline unsigned int ns16550_calc_divisor(struct console_device *cdev, unsigned int baudrate) { struct NS16550_plat *plat = (struct NS16550_plat *) @@ -138,28 +139,13 @@ static unsigned int ns16550_calc_divisor(struct console_device *cdev, */ static void ns16550_serial_init_port(struct console_device *cdev) { - unsigned int baud_divisor; - struct NS16550_plat *plat = (struct NS16550_plat *) - cdev->dev->platform_data; - - /* Setup the serial port with the defaults first */ - baud_divisor = ns16550_calc_divisor(cdev, CONFIG_BAUDRATE); - /* initializing the device for the first time */ ns16550_write(cdev, 0x00, ier); #ifdef CONFIG_DRIVER_SERIAL_NS16550_OMAP_EXTENSIONS ns16550_write(cdev, 0x07, mdr1); /* Disable */ #endif - ns16550_write(cdev, LCR_BKSE | LCRVAL, lcr); - ns16550_write(cdev, baud_divisor & 0xFF, dll); - ns16550_write(cdev, (baud_divisor >> 8) & 0xff, dlm); - ns16550_write(cdev, LCRVAL, lcr); - ns16550_write(cdev, MCRVAL, mcr); - if (plat->flags & NS16650_FLAG_DISABLE_FIFO) - ns16550_write(cdev, FCRVAL & ~FCR_FIFO_EN, fcr); - else - ns16550_write(cdev, FCRVAL, fcr); + ns16550_setbaudrate(cdev, CONFIG_BAUDRATE); #ifdef CONFIG_DRIVER_SERIAL_NS16550_OMAP_EXTENSIONS ns16550_write(cdev, 0x00, mdr1); |