void xlp_uart_out(struct uart_port *p, int offset, int value) { nlm_reg_t *mmio; offset = offset << p->regshift; mmio = (nlm_reg_t *)(p->membase + offset); netlogic_write_reg(mmio, 0, value); }
static void nlm_linux_exit(void) { nlm_reg_t *mmio; mmio = netlogic_io_mmio(NETLOGIC_IO_GPIO_OFFSET); /* trigger a chip reset by writing 1 to GPIO_SWRESET_REG */ netlogic_write_reg(mmio, NETLOGIC_GPIO_SWRESET_REG, 1); for ( ; ; ) cpu_wait(); }
void nlm_xlr_uart_out(struct uart_port *p, int offset, int value) { nlm_reg_t *mmio; /* XLR uart does not need any mapping of regs */ mmio = (nlm_reg_t *)(p->membase + (offset << p->regshift)); /* See XLR/XLS errata */ if (offset == UART_MSR) value ^= 0xF0; else if (offset == UART_MCR) value ^= 0x3; netlogic_write_reg(mmio, 0, value); }