[rtems commit] dev/sc16is752: Set TLS to zero

Sebastian Huber sebh at rtems.org
Mon Aug 26 11:29:40 UTC 2019


Module:    rtems
Branch:    master
Commit:    aa7b76e98b9e73d9b5061a9d00a9a8b23a4480ce
Changeset: http://git.rtems.org/rtems/commit/?id=aa7b76e98b9e73d9b5061a9d00a9a8b23a4480ce

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Fri Aug  9 07:59:13 2019 +0200

dev/sc16is752: Set TLS to zero

Ensures that the FCR values are used.

---

 cpukit/dev/serial/sc16is752.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/cpukit/dev/serial/sc16is752.c b/cpukit/dev/serial/sc16is752.c
index a4dfeb7..d1065a3 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);
 



More information about the vc mailing list