diff options
author | Sylvain Munaut <tnt@246tNt.com> | 2013-01-16 22:55:24 +0100 |
---|---|---|
committer | Steve Markgraf <steve@steve-m.de> | 2021-10-23 18:51:19 +0200 |
commit | 75d160d271cdd84f511cdd53c6612993b967bbd7 (patch) | |
tree | 0fdafafe992d03de0edbe20df3922f8d571d37fa | |
parent | 948ea19d70df1ddaf0b78d7057c06b4c6ce7c480 (diff) |
fw/calypso/uart: Tweak the RX irq threshold to avoid overrun
We use the extended mode to have a better control
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
-rw-r--r-- | src/target/firmware/calypso/uart.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/target/firmware/calypso/uart.c b/src/target/firmware/calypso/uart.c index ec587de5..d843b071 100644 --- a/src/target/firmware/calypso/uart.c +++ b/src/target/firmware/calypso/uart.c @@ -313,7 +313,6 @@ void uart_init(uint8_t uart, uint8_t interrupts) uart_reg_write(uart, XON2, 0x00); /* Xon2/Addr Register */ uart_reg_write(uart, XOFF1, 0x00); /* Xoff1 Register */ uart_reg_write(uart, XOFF2, 0x00); /* Xoff2 Register */ - uart_reg_write(uart, EFR, 0x00); /* Enhanced Features Register */ /* select UART mode */ uart_reg_write(uart, MDR1, 0); @@ -323,6 +322,9 @@ void uart_init(uint8_t uart, uint8_t interrupts) uart_reg_write(uart, FCR, FIFO_EN | RX_FIFO_CLEAR | TX_FIFO_CLEAR | (3 << TX_FIFO_TRIG_SHIFT) | (3 << RX_FIFO_TRIG_SHIFT)); + /* Override RX irq threshold */ + uart_reg_write(uart, TLR, (8 << 4) | (0 << 0)); + /* THR interrupt only when TX FIFO and TX shift register are empty */ uart_reg_write(uart, SCR, (1 << 0));// | (1 << 3)); |