diff --git a/drivers/ti/uart/aarch64/16550_console.S b/drivers/ti/uart/aarch64/16550_console.S index 56e7e5c..d46fa61 100644 --- a/drivers/ti/uart/aarch64/16550_console.S +++ b/drivers/ti/uart/aarch64/16550_console.S @@ -66,6 +66,10 @@ /* 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 9eba41a..b00f664 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