Lines Matching refs:port
40 static unsigned int __init serial8250_early_in(struct uart_port *port, int offset) in serial8250_early_in() argument
42 switch (port->iotype) { in serial8250_early_in()
44 return readb(port->membase + offset); in serial8250_early_in()
46 return readl(port->membase + (offset << 2)); in serial8250_early_in()
48 return ioread32be(port->membase + (offset << 2)); in serial8250_early_in()
50 return inb(port->iobase + offset); in serial8250_early_in()
56 static void __init serial8250_early_out(struct uart_port *port, int offset, int value) in serial8250_early_out() argument
58 switch (port->iotype) { in serial8250_early_out()
60 writeb(value, port->membase + offset); in serial8250_early_out()
63 writel(value, port->membase + (offset << 2)); in serial8250_early_out()
66 iowrite32be(value, port->membase + (offset << 2)); in serial8250_early_out()
69 outb(value, port->iobase + offset); in serial8250_early_out()
76 static void __init wait_for_xmitr(struct uart_port *port) in wait_for_xmitr() argument
81 status = serial8250_early_in(port, UART_LSR); in wait_for_xmitr()
88 static void __init serial_putc(struct uart_port *port, int c) in serial_putc() argument
90 wait_for_xmitr(port); in serial_putc()
91 serial8250_early_out(port, UART_TX, c); in serial_putc()
98 struct uart_port *port = &device->port; in early_serial8250_write() local
102 ier = serial8250_early_in(port, UART_IER); in early_serial8250_write()
104 serial8250_early_out(port, UART_IER, ier & UART_IER_UUE); in early_serial8250_write()
106 uart_console_write(port, s, count, serial_putc); in early_serial8250_write()
109 wait_for_xmitr(port); in early_serial8250_write()
112 serial8250_early_out(port, UART_IER, ier); in early_serial8250_write()
117 struct uart_port *port = &device->port; in init_port() local
122 serial8250_early_out(port, UART_LCR, 0x3); /* 8n1 */ in init_port()
123 ier = serial8250_early_in(port, UART_IER); in init_port()
124 serial8250_early_out(port, UART_IER, ier & UART_IER_UUE); /* no interrupt */ in init_port()
125 serial8250_early_out(port, UART_FCR, 0); /* no fifo */ in init_port()
126 serial8250_early_out(port, UART_MCR, 0x3); /* DTR + RTS */ in init_port()
128 divisor = DIV_ROUND_CLOSEST(port->uartclk, 16 * device->baud); in init_port()
129 c = serial8250_early_in(port, UART_LCR); in init_port()
130 serial8250_early_out(port, UART_LCR, c | UART_LCR_DLAB); in init_port()
131 serial8250_early_out(port, UART_DLL, divisor & 0xff); in init_port()
132 serial8250_early_out(port, UART_DLM, (divisor >> 8) & 0xff); in init_port()
133 serial8250_early_out(port, UART_LCR, c & ~UART_LCR_DLAB); in init_port()
139 if (!(device->port.membase || device->port.iobase)) in early_serial8250_setup()
143 struct uart_port *port = &device->port; in early_serial8250_setup() local
147 ier = serial8250_early_in(port, UART_IER); in early_serial8250_setup()
148 serial8250_early_out(port, UART_IER, ier & UART_IER_UUE); in early_serial8250_setup()