* [U-Boot] [PATCH V3] AT91: Small fix on AT91 USART initialization code
@ 2011-08-02 11:05 Hong Xu
2011-08-02 12:29 ` Reinhard Meyer
0 siblings, 1 reply; 2+ messages in thread
From: Hong Xu @ 2011-08-02 11:05 UTC (permalink / raw)
To: u-boot
Before reset dbgu transmitter, we just wait TXEMPTY to drain the
transmitter register(Just in case). If not doing this, we may sometimes
see several weird characters from DBGU.
A short delay is also added to make sure the new serial settings are
settled.
Signed-off-by: Hong Xu <hong.xu@atmel.com>
---
Changes since V2,
Using __udelay to avoid potential endless loop
drivers/serial/atmel_usart.c | 11 ++++++++++-
1 files changed, 10 insertions(+), 1 deletions(-)
diff --git a/drivers/serial/atmel_usart.c b/drivers/serial/atmel_usart.c
index e326b2b..943ef70 100644
--- a/drivers/serial/atmel_usart.c
+++ b/drivers/serial/atmel_usart.c
@@ -49,17 +49,26 @@ int serial_init(void)
{
atmel_usart3_t *usart = (atmel_usart3_t *)CONFIG_USART_BASE;
+ /*
+ * Just in case: drain transmitter register
+ * 1000us is enough for baudrate >= 9600
+ */
+ if (!(readl(&usart->csr) & USART3_BIT(TXEMPTY)))
+ __udelay(1000);
+
writel(USART3_BIT(RSTRX) | USART3_BIT(RSTTX), &usart->cr);
serial_setbrg();
- writel(USART3_BIT(RXEN) | USART3_BIT(TXEN), &usart->cr);
writel((USART3_BF(USART_MODE, USART3_USART_MODE_NORMAL)
| USART3_BF(USCLKS, USART3_USCLKS_MCK)
| USART3_BF(CHRL, USART3_CHRL_8)
| USART3_BF(PAR, USART3_PAR_NONE)
| USART3_BF(NBSTOP, USART3_NBSTOP_1)),
&usart->mr);
+ writel(USART3_BIT(RXEN) | USART3_BIT(TXEN), &usart->cr);
+ /* 100us is enough for the new settings to be settled */
+ __udelay(100);
return 0;
}
--
1.7.3.3
^ permalink raw reply related [flat|nested] 2+ messages in thread
* [U-Boot] [PATCH V3] AT91: Small fix on AT91 USART initialization code
2011-08-02 11:05 [U-Boot] [PATCH V3] AT91: Small fix on AT91 USART initialization code Hong Xu
@ 2011-08-02 12:29 ` Reinhard Meyer
0 siblings, 0 replies; 2+ messages in thread
From: Reinhard Meyer @ 2011-08-02 12:29 UTC (permalink / raw)
To: u-boot
Dear Hong Xu,
> Before reset dbgu transmitter, we just wait TXEMPTY to drain the
> transmitter register(Just in case). If not doing this, we may sometimes
> see several weird characters from DBGU.
>
> A short delay is also added to make sure the new serial settings are
> settled.
>
> Signed-off-by: Hong Xu <hong.xu@atmel.com>
> ---
> Changes since V2,
> Using __udelay to avoid potential endless loop
>
> drivers/serial/atmel_usart.c | 11 ++++++++++-
> 1 files changed, 10 insertions(+), 1 deletions(-)
Applied to u-boot-atmel/next.
Thanks,
Reinhard
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2011-08-02 12:29 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-08-02 11:05 [U-Boot] [PATCH V3] AT91: Small fix on AT91 USART initialization code Hong Xu
2011-08-02 12:29 ` Reinhard Meyer
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox