Patchwork [U-Boot] serial_pl011: Set RTS during initialization

login
register
mail settings
Submitter Rob Herring
Date Dec. 3, 2012, 3:09 a.m.
Message ID <1354504166-1946-1-git-send-email-robherring2@gmail.com>
Download mbox | patch
Permalink /patch/203281/
State Accepted
Delegated to: Tom Rini
Headers show

Comments

Rob Herring - Dec. 3, 2012, 3:09 a.m.
From: Joshua Housh <joshua.housh@calxeda.com>

If the pl011 is connected to another device which has hardware
flow-control on, characters are never received by the pl011.
Asserting RTS when flow-control is off will have no effect.

This is in line with how Linux behaves.

Signed-off-by: Joshua Housh <joshua.housh@calxeda.com>
---
 drivers/serial/serial_pl01x.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
Marek Vasut - Dec. 3, 2012, 4:56 a.m.
Hi Rob, Joshua,

> From: Joshua Housh <joshua.housh@calxeda.com>
> 
> If the pl011 is connected to another device which has hardware
> flow-control on, characters are never received by the pl011.
> Asserting RTS when flow-control is off will have no effect.
> 
> This is in line with how Linux behaves.
[...]

Tested-by: Marek Vasut <marex@denx.de>

Best regards,
Marek Vasut
Tom Rini - Dec. 7, 2012, 3:51 p.m.
On Sun, Dec 02, 2012 at 05:09:26PM -0000, Rob Herring wrote:

> From: Joshua Housh <joshua.housh@calxeda.com>
> 
> If the pl011 is connected to another device which has hardware
> flow-control on, characters are never received by the pl011.
> Asserting RTS when flow-control is off will have no effect.
> 
> This is in line with how Linux behaves.
> 
> Signed-off-by: Joshua Housh <joshua.housh@calxeda.com>
> Tested-by: Marek Vasut <marex@denx.de>

Applied to u-boot/master, thanks!

Patch

diff --git a/drivers/serial/serial_pl01x.c b/drivers/serial/serial_pl01x.c
index b331be7..dfdba9f 100644
--- a/drivers/serial/serial_pl01x.c
+++ b/drivers/serial/serial_pl01x.c
@@ -163,8 +163,8 @@  static int pl01x_serial_init(void)
 	}
 #endif
 	/* Finally, enable the UART */
-	writel(UART_PL011_CR_UARTEN | UART_PL011_CR_TXE | UART_PL011_CR_RXE,
-	       &regs->pl011_cr);
+	writel(UART_PL011_CR_UARTEN | UART_PL011_CR_TXE | UART_PL011_CR_RXE |
+	       UART_PL011_CR_RTS, &regs->pl011_cr);
 
 	return 0;
 }