Example #1
0
static void initialize(int minor)
{
  volatile lm3s69xx_uart *uart = get_uart_regs(minor);

  uart->ctl = 0;
  uart->lcrh = UARTLCRH_WLEN(0x3) | UARTLCRH_FEN;
  uart->ctl = UARTCTL_RXE | UARTCTL_TXE | UARTCTL_UARTEN;
}
Example #2
0
File: uart.c Project: Dipupo/rtems
static void initialize(int minor)
{
  const console_tbl *ct = Console_Port_Tbl[minor];
  volatile lm3s69xx_uart *uart = get_uart_regs(minor);
  unsigned int num = get_uart_number(minor);

  lm3s69xx_syscon_enable_uart_clock(num, true);

  uart->ctl &= ~UARTCTL_UARTEN;

  uint32_t brd = get_baud_div(LM3S69XX_UART_BAUD);
  uart->ibrd = brd / 64;
  uart->fbrd = brd % 64;

  uart->lcrh = UARTLCRH_WLEN(0x3) | UARTLCRH_FEN;
  uart->cc = UARTCC_CS(0x0);
  uart->ctl = UARTCTL_RXE | UARTCTL_TXE | UARTCTL_UARTEN;

  int rv = rtems_interrupt_handler_install(ct->ulIntVector, "UART",
      RTEMS_INTERRUPT_UNIQUE, irq_handler, (void *)minor);
  assert(rv == RTEMS_SUCCESSFUL);
}