summaryrefslogtreecommitdiff
path: root/drivers/ti
diff options
context:
space:
mode:
authorBenjamin Fair <b-fair@ti.com>2016-10-14 01:13:33 +0000
committerAndrew F. Davis <afd@ti.com>2018-06-11 14:26:32 -0500
commit529b541e8b81f68bb6ee3c6ecdb43b5cbe0a9d70 (patch)
treecadc10f646fc59c247530c65dd45ff78088d8e6a /drivers/ti
parent11bebd7cab0873d04ad8f1d3ccd538f4d5b80ccb (diff)
drivers: ti: uart: Add TI specific 16550 initialization
On TI platforms the UART is disabled by default and must be explicitly enabled using the MDR1 register. NOTE: The original definition of http://www.ti.com/lit/ds/symlink/pc16550d.pdf has no MDR register, but many TI SoCs implementing 16550 do have a quirky MDR register implemented. So, this should be enabled with TI_16550_MDR_QUIRK NOTE: In such implementation, the CSR register does not exist. Signed-off-by: Benjamin Fair <b-fair@ti.com> Signed-off-by: Nishanth Menon <nm@ti.com> Signed-off-by: Andrew F. Davis <afd@ti.com>
Diffstat (limited to 'drivers/ti')
-rw-r--r--drivers/ti/uart/aarch64/16550_console.S4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/ti/uart/aarch64/16550_console.S b/drivers/ti/uart/aarch64/16550_console.S
index 56e7e5c1..d46fa611 100644
--- a/drivers/ti/uart/aarch64/16550_console.S
+++ b/drivers/ti/uart/aarch64/16550_console.S
@@ -66,6 +66,10 @@ func console_16550_core_init
/* no interrupt */
mov w3, #0
str w3, [x0, #UARTIER]
+#ifdef TI_16550_MDR_QUIRK
+ /* UART must be enabled on some platforms via the MDR register */
+ str w3, [x0, #UARTMDR1]
+#endif /* TI_16550_MDR_QUIRK */
/* enable fifo, DMA */
mov w3, #(UARTFCR_FIFOEN | UARTFCR_DMAEN)
str w3, [x0, #UARTFCR]