Lines Matching refs:port
45 struct uart_port port; member
60 static void sport_stop_tx(struct uart_port *port);
153 struct tty_port *port = &up->port.state->port; in sport_uart_rx_irq() local
156 spin_lock(&up->port.lock); in sport_uart_rx_irq()
160 up->port.icount.rx++; in sport_uart_rx_irq()
162 if (!uart_handle_sysrq_char(&up->port, ch)) in sport_uart_rx_irq()
163 tty_insert_flip_char(port, ch, TTY_NORMAL); in sport_uart_rx_irq()
166 spin_unlock(&up->port.lock); in sport_uart_rx_irq()
169 tty_flip_buffer_push(port); in sport_uart_rx_irq()
178 spin_lock(&up->port.lock); in sport_uart_tx_irq()
180 spin_unlock(&up->port.lock); in sport_uart_tx_irq()
190 spin_lock(&up->port.lock); in sport_uart_err_irq()
194 up->port.icount.overrun++; in sport_uart_err_irq()
195 tty_insert_flip_char(&up->port.state->port, 0, TTY_OVERRUN); in sport_uart_err_irq()
209 spin_unlock(&up->port.lock); in sport_uart_err_irq()
216 static unsigned int sport_get_mctrl(struct uart_port *port) in sport_get_mctrl() argument
218 struct sport_uart_port *up = (struct sport_uart_port *)port; in sport_get_mctrl()
229 static void sport_set_mctrl(struct uart_port *port, unsigned int mctrl) in sport_set_mctrl() argument
231 struct sport_uart_port *up = (struct sport_uart_port *)port; in sport_set_mctrl()
250 status = sport_get_mctrl(&up->port); in sport_mctrl_cts_int()
251 uart_handle_cts_change(&up->port, status & TIOCM_CTS); in sport_mctrl_cts_int()
256 static unsigned int sport_get_mctrl(struct uart_port *port) in sport_get_mctrl() argument
262 static void sport_set_mctrl(struct uart_port *port, unsigned int mctrl) in sport_set_mctrl() argument
269 static int sport_startup(struct uart_port *port) in sport_startup() argument
271 struct sport_uart_port *up = (struct sport_uart_port *)port; in sport_startup()
275 ret = request_irq(up->port.irq, sport_uart_rx_irq, 0, in sport_startup()
278 dev_err(port->dev, "unable to request SPORT RX interrupt\n"); in sport_startup()
282 ret = request_irq(up->port.irq+1, sport_uart_tx_irq, 0, in sport_startup()
285 dev_err(port->dev, "unable to request SPORT TX interrupt\n"); in sport_startup()
292 dev_err(port->dev, "unable to request SPORT status interrupt\n"); in sport_startup()
303 … dev_info(port->dev, "Unable to attach BlackFin UART over SPORT CTS interrupt. So, disable it.\n"); in sport_startup()
308 dev_info(port->dev, "fail to request RTS PIN at GPIO_%d\n", up->rts_pin); in sport_startup()
317 free_irq(up->port.irq+1, up); in sport_startup()
319 free_irq(up->port.irq, up); in sport_startup()
332 struct circ_buf *xmit = &up->port.state->xmit; in sport_uart_tx_chars()
337 if (up->port.x_char) { in sport_uart_tx_chars()
338 tx_one_byte(up, up->port.x_char); in sport_uart_tx_chars()
339 up->port.icount.tx++; in sport_uart_tx_chars()
340 up->port.x_char = 0; in sport_uart_tx_chars()
344 if (uart_circ_empty(xmit) || uart_tx_stopped(&up->port)) { in sport_uart_tx_chars()
351 sport_stop_tx(&up->port); in sport_uart_tx_chars()
358 up->port.icount.tx++; in sport_uart_tx_chars()
362 uart_write_wakeup(&up->port); in sport_uart_tx_chars()
367 static unsigned int sport_tx_empty(struct uart_port *port) in sport_tx_empty() argument
369 struct sport_uart_port *up = (struct sport_uart_port *)port; in sport_tx_empty()
380 static void sport_stop_tx(struct uart_port *port) in sport_stop_tx() argument
382 struct sport_uart_port *up = (struct sport_uart_port *)port; in sport_stop_tx()
404 static void sport_start_tx(struct uart_port *port) in sport_start_tx() argument
406 struct sport_uart_port *up = (struct sport_uart_port *)port; in sport_start_tx()
420 static void sport_stop_rx(struct uart_port *port) in sport_stop_rx() argument
422 struct sport_uart_port *up = (struct sport_uart_port *)port; in sport_stop_rx()
430 static void sport_break_ctl(struct uart_port *port, int break_state) in sport_break_ctl() argument
435 static void sport_shutdown(struct uart_port *port) in sport_shutdown() argument
437 struct sport_uart_port *up = (struct sport_uart_port *)port; in sport_shutdown()
439 dev_dbg(port->dev, "%s enter\n", __func__); in sport_shutdown()
446 free_irq(up->port.irq, up); in sport_shutdown()
447 free_irq(up->port.irq+1, up); in sport_shutdown()
457 static const char *sport_type(struct uart_port *port) in sport_type() argument
459 struct sport_uart_port *up = (struct sport_uart_port *)port; in sport_type()
462 return up->port.type == PORT_BFIN_SPORT ? "BFIN-SPORT-UART" : NULL; in sport_type()
465 static void sport_release_port(struct uart_port *port) in sport_release_port() argument
470 static int sport_request_port(struct uart_port *port) in sport_request_port() argument
476 static void sport_config_port(struct uart_port *port, int flags) in sport_config_port() argument
478 struct sport_uart_port *up = (struct sport_uart_port *)port; in sport_config_port()
481 up->port.type = PORT_BFIN_SPORT; in sport_config_port()
484 static int sport_verify_port(struct uart_port *port, struct serial_struct *ser) in sport_verify_port() argument
490 static void sport_set_termios(struct uart_port *port, in sport_set_termios() argument
493 struct sport_uart_port *up = (struct sport_uart_port *)port; in sport_set_termios()
532 spin_lock_irqsave(&up->port.lock, flags); in sport_set_termios()
534 port->read_status_mask = 0; in sport_set_termios()
539 port->ignore_status_mask = 0; in sport_set_termios()
557 port->uartclk = uart_get_baud_rate(port, termios, old, 0, get_sclk()/16); in sport_set_termios()
563 sport_uart_setup(up, up->csize + up->stopb, port->uartclk); in sport_set_termios()
578 uart_update_timeout(port, termios->c_cflag, port->uartclk); in sport_set_termios()
584 spin_unlock_irqrestore(&up->port.lock, flags); in sport_set_termios()
636 return uart_set_options(&up->port, co, baud, parity, bits, flow); in sport_uart_console_setup()
639 static void sport_uart_console_putchar(struct uart_port *port, int ch) in sport_uart_console_putchar() argument
641 struct sport_uart_port *up = (struct sport_uart_port *)port; in sport_uart_console_putchar()
658 spin_lock_irqsave(&up->port.lock, flags); in sport_uart_console_write()
661 uart_console_write(&up->port, s, count, sport_uart_console_putchar); in sport_uart_console_write()
671 uart_console_write(&up->port, s, count, sport_uart_console_putchar); in sport_uart_console_write()
689 spin_unlock_irqrestore(&up->port.lock, flags); in sport_uart_console_write()
727 uart_suspend_port(&sport_uart_reg, &sport->port); in sport_uart_suspend()
738 uart_resume_port(&sport_uart_reg, &sport->port); in sport_uart_resume()
780 spin_lock_init(&sport->port.lock); in sport_uart_probe()
781 sport->port.fifosize = SPORT_TX_FIFO_SIZE, in sport_uart_probe()
782 sport->port.ops = &sport_uart_ops; in sport_uart_probe()
783 sport->port.line = pdev->id; in sport_uart_probe()
784 sport->port.iotype = UPIO_MEM; in sport_uart_probe()
785 sport->port.flags = UPF_BOOT_AUTOCONF; in sport_uart_probe()
794 sport->port.membase = ioremap(res->start, resource_size(res)); in sport_uart_probe()
795 if (!sport->port.membase) { in sport_uart_probe()
800 sport->port.mapbase = res->start; in sport_uart_probe()
802 sport->port.irq = platform_get_irq(pdev, 0); in sport_uart_probe()
803 if ((int)sport->port.irq < 0) { in sport_uart_probe()
834 sport->port.dev = &pdev->dev; in sport_uart_probe()
836 ret = uart_add_one_port(&sport_uart_reg, &sport->port); in sport_uart_probe()
845 iounmap(sport->port.membase); in sport_uart_probe()
864 uart_remove_one_port(&sport_uart_reg, &sport->port); in sport_uart_remove()
865 iounmap(sport->port.membase); in sport_uart_remove()