summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKaricheri, Muralidharan <m-karicheri2@ti.com>2014-04-09 15:38:46 -0400
committerTom Rini <trini@ti.com>2014-05-12 15:19:45 -0400
commitd57dee5787ad96d2c80bf36f443276592d39ee21 (patch)
tree041f13aa1af9bbbeadb587c15a27e5a0496c5ae9
parent8abd053cf07a1e4264d59c671e05a602fc7a31ad (diff)
serial: nsl16550: add hw flow control support
keystone serial hw support hw flow control. This patch enables hw flow control for keystone EVMs as an optional feature based on CONFIG_SERIAL_HW_FLOW_CONTROL. Signed-off-by: Murali Karicheri <m-karicheri2@ti.com>
-rw-r--r--README4
-rw-r--r--drivers/serial/ns16550.c6
-rw-r--r--include/ns16550.h1
3 files changed, 11 insertions, 0 deletions
diff --git a/README b/README
index 80a1bfaad2..61c2caca31 100644
--- a/README
+++ b/README
@@ -751,6 +751,10 @@ The following options need to be configured:
boot loader that has already initialized the UART. Define this
variable to flush the UART at init time.
+ CONFIG_SERIAL_HW_FLOW_CONTROL
+
+ Define this variable to enable hw flow control in serial driver.
+ Current user of this option is drivers/serial/nsl16550.c driver
- Console Interface:
Depending on board, define exactly one serial port
diff --git a/drivers/serial/ns16550.c b/drivers/serial/ns16550.c
index 8a13454943..f26979dbe1 100644
--- a/drivers/serial/ns16550.c
+++ b/drivers/serial/ns16550.c
@@ -33,6 +33,12 @@
#if defined(CONFIG_K2HK_EVM)
#define UART_REG_VAL_PWREMU_MGMT_UART_DISABLE 0
#define UART_REG_VAL_PWREMU_MGMT_UART_ENABLE ((1 << 14) | (1 << 13) | (1 << 0))
+#undef UART_MCRVAL
+#ifdef CONFIG_SERIAL_HW_FLOW_CONTROL
+#define UART_MCRVAL (UART_MCR_RTS | UART_MCR_AFE)
+#else
+#define UART_MCRVAL (UART_MCR_RTS)
+#endif
#endif
#ifndef CONFIG_SYS_NS16550_IER
diff --git a/include/ns16550.h b/include/ns16550.h
index 51cb5b4a66..17f829f6f9 100644
--- a/include/ns16550.h
+++ b/include/ns16550.h
@@ -100,6 +100,7 @@ typedef struct NS16550 *NS16550_t;
#define UART_MCR_OUT1 0x04 /* Out 1 */
#define UART_MCR_OUT2 0x08 /* Out 2 */
#define UART_MCR_LOOP 0x10 /* Enable loopback test mode */
+#define UART_MCR_AFE 0x20 /* Enable auto-RTS/CTS */
#define UART_MCR_DMA_EN 0x04
#define UART_MCR_TX_DFR 0x08