diff --git a/drivers/ti/uart/aarch64/16550_console.S b/drivers/ti/uart/aarch64/16550_console.S index 56e7e5c119588db01e5b37a0432be5b841531c93..d46fa61190e719e2d112190a2e974dfcddb27425 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] diff --git a/include/drivers/ti/uart/uart_16550.h b/include/drivers/ti/uart/uart_16550.h index 9eba41aa6f1a25b7aca5c0b3fc678f398be58f0e..b00f6642198cc5415f1f20277b9c000858a9ee96 100644 --- a/include/drivers/ti/uart/uart_16550.h +++ b/include/drivers/ti/uart/uart_16550.h @@ -23,6 +23,8 @@ #define UARTMSR 0x18 #define UARTSPR 0x1c #define UARTCSR 0x20 +/* Some instances have MDR1 defined as well */ +#define UARTMDR1 0x20 #define UARTRXFIFOCFG 0x24 #define UARTMIE 0x28 #define UARTVNDR 0x2c