From 6384181d64407f8901e5667061415c2fc5a89dbc Mon Sep 17 00:00:00 2001 From: Harini Katakam Date: Mon, 23 Jun 2014 15:00:27 +0530 Subject: [PATCH] uartps: SW reset of RX and TX when changing baud rate Perform SW reset of RX and TX before re-enabling, when changing baud rate. Signed-off-by: Harini Katakam Acked-by: Anirudha Sarangi --- XilinxProcessorIPLib/drivers/uartps/src/xuartps.c | 8 ++++++++ XilinxProcessorIPLib/drivers/uartps/src/xuartps.h | 2 ++ 2 files changed, 10 insertions(+) diff --git a/XilinxProcessorIPLib/drivers/uartps/src/xuartps.c b/XilinxProcessorIPLib/drivers/uartps/src/xuartps.c index 0671a144..8108194b 100755 --- a/XilinxProcessorIPLib/drivers/uartps/src/xuartps.c +++ b/XilinxProcessorIPLib/drivers/uartps/src/xuartps.c @@ -43,6 +43,8 @@ * Ver Who Date Changes * ----- ------ -------- ---------------------------------------------- * 1.00 drg/jz 01/13/10 First Release +* 2.2 hk 06/23/14 SW reset of RX and TX should be done when changing +* baud rate. CR# 804281. * * *****************************************************************************/ @@ -624,6 +626,12 @@ int XUartPs_SetBaudRate(XUartPs *InstancePtr, u32 BaudRate) XUartPs_WriteReg(InstancePtr->Config.BaseAddress, XUARTPS_BAUDDIV_OFFSET, Best_BAUDDIV); + /* + * RX and TX SW reset + */ + XUartPs_WriteReg(InstancePtr->Config.BaseAddress, XUARTPS_CR_OFFSET, + XUARTPS_CR_TXRST | XUARTPS_CR_RXRST); + /* * Enable device */ diff --git a/XilinxProcessorIPLib/drivers/uartps/src/xuartps.h b/XilinxProcessorIPLib/drivers/uartps/src/xuartps.h index 39585d59..4f2f1f9e 100755 --- a/XilinxProcessorIPLib/drivers/uartps/src/xuartps.h +++ b/XilinxProcessorIPLib/drivers/uartps/src/xuartps.h @@ -150,6 +150,8 @@ * constant definitions. * 2.0 hk 03/07/14 Version number revised. * 2.1 hk 04/16/14 Change XUARTPS_MAX_RATE to 921600. CR# 780625. +* 2.2 hk 06/23/14 SW reset of RX and TX should be done when changing +* baud rate. CR# 804281. * * *