Exemplo n.º 1
0
static void set_dlab(int v) {
    if (v) {
        write_lcr(read_lcr() | LCR_DLAB);
    } else {
        write_lcr(read_lcr() & ~LCR_DLAB);
    }
}
Exemplo n.º 2
0
void uart_init(unsigned uart, unsigned baud)
{
	unsigned divisor;

	uart_base = (void *)(0xb0030000 + (uart * 0x1000));
	uart_baud = baud;
	divisor = (uart_clk + (uart_baud * (16 / 2))) / (16 * uart_baud);

	if (configure_uart_clock_and_pinmux(uart))
		return; /* No Uart support is possible */

	while (!(read_lsr() & LSR_TEMT));
	write_ier(0);
	write_lcr(LCR_BKSE | LCR_8N1);
	write_dll(0);
	write_dlm(0);
	write_lcr(LCR_8N1);
	write_mcr(MCR_DTR | MCR_RTS);
	write_fcr(FCR_FIFO_EN | FCR_RXSR | FCR_TXSR | FCR_UME);
	write_lcr(LCR_BKSE | LCR_8N1);
	write_dll(divisor & 0xff);
	write_dlm((divisor >> 8) & 0xff);
	write_lcr(LCR_8N1);
}
Exemplo n.º 3
0
static void reset_lcr() {
    /* set 8-n-1 */
    write_lcr(3);
}
Exemplo n.º 4
0
static void reset_lcr(void) {
    // set 8-n-1
    write_lcr(3);
}