コード例 #1
0
unsigned int xlp_uart_in(struct uart_port *p, int offset) {

	nlm_reg_t *mmio;
	unsigned int value;

	/* XLP uart does not need any mapping of regs 
	 */
	offset = offset << p->regshift;
	mmio = (nlm_reg_t *)(p->membase + offset);
	value = netlogic_read_reg(mmio, 0);

	return value;
}
コード例 #2
0
ファイル: platform.c プロジェクト: jerem/hi35xx-buildroot
unsigned int nlm_xlr_uart_in(struct uart_port *p, int offset)
{
    nlm_reg_t *mmio;
    unsigned int value;

    /* XLR uart does not need any mapping of regs */
    mmio = (nlm_reg_t *)(p->membase + (offset << p->regshift));
    value = netlogic_read_reg(mmio, 0);

    /* See XLR/XLS errata */
    if (offset == UART_MSR)
        value ^= 0xF0;
    else if (offset == UART_MCR)
        value ^= 0x3;

    return value;
}