From aa7b76e98b9e73d9b5061a9d00a9a8b23a4480ce Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Fri, 9 Aug 2019 07:59:13 +0200 Subject: dev/sc16is752: Set TLS to zero Ensures that the FCR values are used. --- cpukit/dev/serial/sc16is752.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'cpukit/dev') diff --git a/cpukit/dev/serial/sc16is752.c b/cpukit/dev/serial/sc16is752.c index a4dfeb7ee6..d1065a33cf 100644 --- a/cpukit/dev/serial/sc16is752.c +++ b/cpukit/dev/serial/sc16is752.c @@ -113,6 +113,18 @@ static void set_efr(sc16is752_context *ctx, uint8_t efr) write_reg(ctx, SC16IS752_LCR, &ctx->lcr, 1); } +static void set_tlr(sc16is752_context *ctx, uint8_t tlr) +{ + uint8_t mcr; + + read_reg(ctx, SC16IS752_MCR, &mcr, 1); + mcr |= SC16IS752_MCR_TCR_TLR; + write_reg(ctx, SC16IS752_MCR, &mcr, 1); + write_reg(ctx, SC16IS752_TLR, &tlr, 1); + mcr &= ~SC16IS752_MCR_TCR_TLR; + write_reg(ctx, SC16IS752_MCR, &mcr, 1); +} + static bool set_baud(sc16is752_context *ctx, rtems_termios_baud_t baud) { uint32_t freq = ctx->input_frequency; @@ -257,6 +269,8 @@ static bool sc16is752_first_open( | SC16IS752_FCR_TX_FIFO_TRG_32; write_reg(ctx, SC16IS752_FCR, &fcr, 1); + set_tlr(ctx, 0); + ctx->ier = SC16IS752_IER_RHR; write_reg(ctx, SC16IS752_IER, &ctx->ier, 1); -- cgit v1.2.3