Lines Matching refs:port

105 	return readl(up->port.membase + (reg << up->port.regshift));  in uart_read()
108 static void omap8250_set_mctrl(struct uart_port *port, unsigned int mctrl) in omap8250_set_mctrl() argument
110 struct uart_8250_port *up = up_to_u8250p(port); in omap8250_set_mctrl()
111 struct omap8250_priv *priv = up->port.private_data; in omap8250_set_mctrl()
114 serial8250_do_set_mctrl(port, mctrl); in omap8250_set_mctrl()
122 if ((mctrl & TIOCM_RTS) && (port->status & UPSTAT_AUTORTS)) in omap8250_set_mctrl()
162 dev_crit(up->port.dev, "Errata i202: timedout %x\n", in omap_8250_mdr1_errataset()
170 static void omap_8250_get_divisor(struct uart_port *port, unsigned int baud, in omap_8250_get_divisor() argument
173 unsigned int uartclk = port->uartclk; in omap_8250_get_divisor()
180 if (baud == 38400 && (port->flags & UPF_SPD_MASK) == UPF_SPD_CUST) { in omap_8250_get_divisor()
181 priv->quot = port->custom_divisor & 0xffff; in omap_8250_get_divisor()
187 if (port->custom_divisor & (1 << 16)) in omap_8250_get_divisor()
235 struct omap8250_priv *priv = up->port.private_data; in omap8250_restore_regs()
288 up->port.ops->set_mctrl(&up->port, up->port.mctrl); in omap8250_restore_regs()
295 static void omap_8250_set_termios(struct uart_port *port, in omap_8250_set_termios() argument
300 container_of(port, struct uart_8250_port, port); in omap_8250_set_termios()
301 struct omap8250_priv *priv = up->port.private_data; in omap_8250_set_termios()
333 baud = uart_get_baud_rate(port, termios, old, in omap_8250_set_termios()
334 port->uartclk / 16 / 0xffff, in omap_8250_set_termios()
335 port->uartclk / 13); in omap_8250_set_termios()
336 omap_8250_get_divisor(port, baud, priv); in omap_8250_set_termios()
342 pm_runtime_get_sync(port->dev); in omap_8250_set_termios()
343 spin_lock_irq(&port->lock); in omap_8250_set_termios()
348 uart_update_timeout(port, termios->c_cflag, baud); in omap_8250_set_termios()
350 up->port.read_status_mask = UART_LSR_OE | UART_LSR_THRE | UART_LSR_DR; in omap_8250_set_termios()
352 up->port.read_status_mask |= UART_LSR_FE | UART_LSR_PE; in omap_8250_set_termios()
354 up->port.read_status_mask |= UART_LSR_BI; in omap_8250_set_termios()
359 up->port.ignore_status_mask = 0; in omap_8250_set_termios()
361 up->port.ignore_status_mask |= UART_LSR_PE | UART_LSR_FE; in omap_8250_set_termios()
363 up->port.ignore_status_mask |= UART_LSR_BI; in omap_8250_set_termios()
369 up->port.ignore_status_mask |= UART_LSR_OE; in omap_8250_set_termios()
376 up->port.ignore_status_mask |= UART_LSR_DR; in omap_8250_set_termios()
382 if (UART_ENABLE_MS(&up->port, termios->c_cflag)) in omap_8250_set_termios()
421 up->port.status &= ~(UPSTAT_AUTOCTS | UPSTAT_AUTORTS | UPSTAT_AUTOXOFF); in omap_8250_set_termios()
423 if (termios->c_cflag & CRTSCTS && up->port.flags & UPF_HARD_FLOW) { in omap_8250_set_termios()
425 up->port.status |= UPSTAT_AUTOCTS | UPSTAT_AUTORTS; in omap_8250_set_termios()
427 } else if (up->port.flags & UPF_SOFT_FLOW) { in omap_8250_set_termios()
442 up->port.status |= UPSTAT_AUTOXOFF; in omap_8250_set_termios()
457 spin_unlock_irq(&up->port.lock); in omap_8250_set_termios()
458 pm_runtime_mark_last_busy(port->dev); in omap_8250_set_termios()
459 pm_runtime_put_autosuspend(port->dev); in omap_8250_set_termios()
473 static void omap_8250_pm(struct uart_port *port, unsigned int state, in omap_8250_pm() argument
476 struct uart_8250_port *up = up_to_u8250p(port); in omap_8250_pm()
479 pm_runtime_get_sync(port->dev); in omap_8250_pm()
490 pm_runtime_mark_last_busy(port->dev); in omap_8250_pm()
491 pm_runtime_put_autosuspend(port->dev); in omap_8250_pm()
520 dev_warn(up->port.dev, in omap_serial_fill_features_erratas()
556 struct uart_port *port = dev_id; in omap_wake_irq() local
559 ret = port->handle_irq(port); in omap_wake_irq()
566 static int omap_8250_dma_handle_irq(struct uart_port *port);
571 struct uart_port *port = dev_id; in omap8250_irq() local
572 struct uart_8250_port *up = up_to_u8250p(port); in omap8250_irq()
578 ret = omap_8250_dma_handle_irq(port); in omap8250_irq()
584 iir = serial_port_in(port, UART_IIR); in omap8250_irq()
585 ret = serial8250_handle_irq(port, iir); in omap8250_irq()
591 static int omap_8250_startup(struct uart_port *port) in omap_8250_startup() argument
593 struct uart_8250_port *up = up_to_u8250p(port); in omap_8250_startup()
594 struct omap8250_priv *priv = port->private_data; in omap_8250_startup()
599 port->irqflags, "uart wakeup irq", port); in omap_8250_startup()
605 pm_runtime_get_sync(port->dev); in omap_8250_startup()
618 dev_warn_ratelimited(port->dev, in omap_8250_startup()
624 ret = request_irq(port->irq, omap8250_irq, IRQF_SHARED, in omap_8250_startup()
625 dev_name(port->dev), port); in omap_8250_startup()
645 pm_runtime_mark_last_busy(port->dev); in omap_8250_startup()
646 pm_runtime_put_autosuspend(port->dev); in omap_8250_startup()
649 pm_runtime_mark_last_busy(port->dev); in omap_8250_startup()
650 pm_runtime_put_autosuspend(port->dev); in omap_8250_startup()
652 free_irq(priv->wakeirq, port); in omap_8250_startup()
656 static void omap_8250_shutdown(struct uart_port *port) in omap_8250_shutdown() argument
658 struct uart_8250_port *up = up_to_u8250p(port); in omap_8250_shutdown()
659 struct omap8250_priv *priv = port->private_data; in omap_8250_shutdown()
665 pm_runtime_get_sync(port->dev); in omap_8250_shutdown()
682 pm_runtime_mark_last_busy(port->dev); in omap_8250_shutdown()
683 pm_runtime_put_autosuspend(port->dev); in omap_8250_shutdown()
685 free_irq(port->irq, port); in omap_8250_shutdown()
687 free_irq(priv->wakeirq, port); in omap_8250_shutdown()
690 static void omap_8250_throttle(struct uart_port *port) in omap_8250_throttle() argument
694 container_of(port, struct uart_8250_port, port); in omap_8250_throttle()
696 pm_runtime_get_sync(port->dev); in omap_8250_throttle()
698 spin_lock_irqsave(&port->lock, flags); in omap_8250_throttle()
701 spin_unlock_irqrestore(&port->lock, flags); in omap_8250_throttle()
703 pm_runtime_mark_last_busy(port->dev); in omap_8250_throttle()
704 pm_runtime_put_autosuspend(port->dev); in omap_8250_throttle()
707 static void omap_8250_unthrottle(struct uart_port *port) in omap_8250_unthrottle() argument
711 container_of(port, struct uart_8250_port, port); in omap_8250_unthrottle()
713 pm_runtime_get_sync(port->dev); in omap_8250_unthrottle()
715 spin_lock_irqsave(&port->lock, flags); in omap_8250_unthrottle()
718 spin_unlock_irqrestore(&port->lock, flags); in omap_8250_unthrottle()
720 pm_runtime_mark_last_busy(port->dev); in omap_8250_unthrottle()
721 pm_runtime_put_autosuspend(port->dev); in omap_8250_unthrottle()
730 struct tty_port *tty_port = &p->port.state->port; in __dma_rx_do_complete()
744 p->port.icount.rx += count; in __dma_rx_do_complete()
827 struct circ_buf *xmit = &p->port.state->xmit; in omap_8250_dma_tx_complete()
830 struct omap8250_priv *priv = p->port.private_data; in omap_8250_dma_tx_complete()
835 spin_lock_irqsave(&p->port.lock, flags); in omap_8250_dma_tx_complete()
841 p->port.icount.tx += dma->tx_size; in omap_8250_dma_tx_complete()
849 uart_write_wakeup(&p->port); in omap_8250_dma_tx_complete()
851 if (!uart_circ_empty(xmit) && !uart_tx_stopped(&p->port)) { in omap_8250_dma_tx_complete()
865 serial_port_out(&p->port, UART_IER, p->ier); in omap_8250_dma_tx_complete()
868 spin_unlock_irqrestore(&p->port.lock, flags); in omap_8250_dma_tx_complete()
874 struct omap8250_priv *priv = p->port.private_data; in omap_8250_tx_dma()
875 struct circ_buf *xmit = &p->port.state->xmit; in omap_8250_tx_dma()
882 if (uart_tx_stopped(&p->port) || uart_circ_empty(xmit)) { in omap_8250_tx_dma()
971 static int omap_8250_dma_handle_irq(struct uart_port *port) in omap_8250_dma_handle_irq() argument
973 struct uart_8250_port *up = up_to_u8250p(port); in omap_8250_dma_handle_irq()
981 iir = serial_port_in(port, UART_IIR); in omap_8250_dma_handle_irq()
987 spin_lock_irqsave(&port->lock, flags); in omap_8250_dma_handle_irq()
989 status = serial_port_in(port, UART_LSR); in omap_8250_dma_handle_irq()
1001 if (uart_tx_stopped(&up->port) || in omap_8250_dma_handle_irq()
1002 uart_circ_empty(&up->port.state->xmit)) { in omap_8250_dma_handle_irq()
1016 spin_unlock_irqrestore(&port->lock, flags); in omap_8250_dma_handle_irq()
1034 static int omap8250_no_handle_irq(struct uart_port *port) in omap8250_no_handle_irq() argument
1065 up.port.dev = &pdev->dev; in omap8250_probe()
1066 up.port.mapbase = regs->start; in omap8250_probe()
1067 up.port.membase = membase; in omap8250_probe()
1068 up.port.irq = irq->start; in omap8250_probe()
1077 up.port.type = PORT_8250; in omap8250_probe()
1078 up.port.iotype = UPIO_MEM; in omap8250_probe()
1079 up.port.flags = UPF_FIXED_PORT | UPF_FIXED_TYPE | UPF_SOFT_FLOW | in omap8250_probe()
1081 up.port.private_data = priv; in omap8250_probe()
1083 up.port.regshift = 2; in omap8250_probe()
1084 up.port.fifosize = 64; in omap8250_probe()
1096 up.port.set_termios = omap_8250_set_termios; in omap8250_probe()
1097 up.port.set_mctrl = omap8250_set_mctrl; in omap8250_probe()
1098 up.port.pm = omap_8250_pm; in omap8250_probe()
1099 up.port.startup = omap_8250_startup; in omap8250_probe()
1100 up.port.shutdown = omap_8250_shutdown; in omap8250_probe()
1101 up.port.throttle = omap_8250_throttle; in omap8250_probe()
1102 up.port.unthrottle = omap_8250_unthrottle; in omap8250_probe()
1108 &up.port.uartclk); in omap8250_probe()
1117 up.port.line = ret; in omap8250_probe()
1119 if (!up.port.uartclk) { in omap8250_probe()
1120 up.port.uartclk = DEFAULT_CLK_SPEED; in omap8250_probe()
1142 up.port.handle_irq = omap8250_no_handle_irq; in omap8250_probe()
1299 if (uart_console(&up->port)) in omap8250_runtime_suspend()