Lines Matching refs:port

3  * Driver for the serial port on the 21285 StrongArm-110 core logic chip.
46 * this, use bits of the private_data pointer of the uart port structure.
51 static bool is_enabled(struct uart_port *port, int bit)
53 unsigned long *private_data = (unsigned long *)&port->private_data;
60 static void enable(struct uart_port *port, int bit)
62 unsigned long *private_data = (unsigned long *)&port->private_data;
67 static void disable(struct uart_port *port, int bit)
69 unsigned long *private_data = (unsigned long *)&port->private_data;
74 #define is_tx_enabled(port) is_enabled(port, tx_enabled_bit)
75 #define tx_enable(port) enable(port, tx_enabled_bit)
76 #define tx_disable(port) disable(port, tx_enabled_bit)
78 #define is_rx_enabled(port) is_enabled(port, rx_enabled_bit)
79 #define rx_enable(port) enable(port, rx_enabled_bit)
80 #define rx_disable(port) disable(port, rx_enabled_bit)
93 static void serial21285_stop_tx(struct uart_port *port)
95 if (is_tx_enabled(port)) {
97 tx_disable(port);
101 static void serial21285_start_tx(struct uart_port *port)
103 if (!is_tx_enabled(port)) {
105 tx_enable(port);
109 static void serial21285_stop_rx(struct uart_port *port)
111 if (is_rx_enabled(port)) {
113 rx_disable(port);
119 struct uart_port *port = dev_id;
126 port->icount.rx++;
131 port->icount.parity++;
133 port->icount.frame++;
135 port->icount.overrun++;
137 rxs &= port->read_status_mask;
145 uart_insert_char(port, rxs, RXSTAT_OVERRUN, ch, flag);
149 tty_flip_buffer_push(&port->state->port);
156 struct uart_port *port = dev_id;
157 struct circ_buf *xmit = &port->state->xmit;
160 if (port->x_char) {
161 *CSR_UARTDR = port->x_char;
162 port->icount.tx++;
163 port->x_char = 0;
166 if (uart_circ_empty(xmit) || uart_tx_stopped(port)) {
167 serial21285_stop_tx(port);
174 port->icount.tx++;
180 uart_write_wakeup(port);
183 serial21285_stop_tx(port);
189 static unsigned int serial21285_tx_empty(struct uart_port *port)
195 static unsigned int serial21285_get_mctrl(struct uart_port *port)
200 static void serial21285_set_mctrl(struct uart_port *port, unsigned int mctrl)
204 static void serial21285_break_ctl(struct uart_port *port, int break_state)
209 spin_lock_irqsave(&port->lock, flags);
216 spin_unlock_irqrestore(&port->lock, flags);
219 static int serial21285_startup(struct uart_port *port)
223 tx_enable(port);
224 rx_enable(port);
227 serial21285_name, port);
230 serial21285_name, port);
232 free_irq(IRQ_CONRX, port);
238 static void serial21285_shutdown(struct uart_port *port)
240 free_irq(IRQ_CONTX, port);
241 free_irq(IRQ_CONRX, port);
245 serial21285_set_termios(struct uart_port *port, struct ktermios *termios,
265 baud = uart_get_baud_rate(port, termios, old, 0, port->uartclk/16);
266 quot = uart_get_divisor(port, baud);
267 b = port->uartclk / (16 * quot);
293 if (port->fifosize)
296 spin_lock_irqsave(&port->lock, flags);
299 * Update the per-port timeout.
301 uart_update_timeout(port, termios->c_cflag, baud);
306 port->read_status_mask = RXSTAT_OVERRUN;
308 port->read_status_mask |= RXSTAT_FRAME | RXSTAT_PARITY;
313 port->ignore_status_mask = 0;
315 port->ignore_status_mask |= RXSTAT_FRAME | RXSTAT_PARITY;
317 port->ignore_status_mask |= RXSTAT_OVERRUN;
323 port->ignore_status_mask |= RXSTAT_DUMMY_READ;
333 spin_unlock_irqrestore(&port->lock, flags);
336 static const char *serial21285_type(struct uart_port *port)
338 return port->type == PORT_21285 ? "DC21285" : NULL;
341 static void serial21285_release_port(struct uart_port *port)
343 release_mem_region(port->mapbase, 32);
346 static int serial21285_request_port(struct uart_port *port)
348 return request_mem_region(port->mapbase, 32, serial21285_name)
352 static void serial21285_config_port(struct uart_port *port, int flags)
354 if (flags & UART_CONFIG_TYPE && serial21285_request_port(port) == 0)
355 port->type = PORT_21285;
361 static int serial21285_verify_port(struct uart_port *port, struct serial_struct *ser)
368 if (ser->baud_base != port->uartclk / 16)
406 static void serial21285_console_putchar(struct uart_port *port, int ch)
421 serial21285_get_options(struct uart_port *port, int *baud,
452 *baud = port->uartclk / (16 * (tmp + 1));
458 struct uart_port *port = &serial21285_port;
469 * if so, search for the first available port that does have
475 serial21285_get_options(port, &baud, &parity, &bits);
477 return uart_set_options(port, co, baud, parity, bits, flow);