The Ingenic JZ47xx requires special bit (UART_EN) set in FCR register
in order to work at all. Add this special case handling into the driver.

Signed-off-by: Marek Vasut <ma...@denx.de>
Cc: Tom Rini <tr...@konsulko.com>
Cc: Simon Glass <s...@chromium.org>
Cc: Daniel Schwierzeck <daniel.schwierz...@gmail.com>
Cc: Paul Burton <paul.bur...@imgtec.com>
---
 drivers/serial/ns16550.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/drivers/serial/ns16550.c b/drivers/serial/ns16550.c
index 30ba0aa..1323881 100644
--- a/drivers/serial/ns16550.c
+++ b/drivers/serial/ns16550.c
@@ -50,6 +50,14 @@ DECLARE_GLOBAL_DATA_PTR;
 #endif
 #endif
 
+#ifdef CONFIG_ARCH_JZ47XX
+#undef UART_FCRVAL
+/* Ingenic JZ47xx SoCs require that a 'UART Module Enable' bit be set */
+#define UART_FCR_UME           0x10
+#define UART_FCRVAL (UART_FCR_FIFO_EN | UART_FCR_RXSR |        \
+                    UART_FCR_TXSR | UART_FCR_UME)
+#endif
+
 #ifndef CONFIG_SYS_NS16550_IER
 #define CONFIG_SYS_NS16550_IER  0x00
 #endif /* CONFIG_SYS_NS16550_IER */
-- 
2.7.0

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to