Lines Matching refs:port
104 int (*request_irq)(struct uart_port *port);
105 void (*free_irq)(struct uart_port *port);
109 struct uart_port port;
131 ltq_uart_port *to_ltq_uart_port(struct uart_port *port)
133 return container_of(port, struct ltq_uart_port, port);
137 lqasc_stop_tx(struct uart_port *port)
142 static bool lqasc_tx_ready(struct uart_port *port)
144 u32 fstat = __raw_readl(port->membase + LTQ_ASC_FSTAT);
150 lqasc_start_tx(struct uart_port *port)
153 struct ltq_uart_port *ltq_port = to_ltq_uart_port(port);
157 uart_port_tx(port, ch,
158 lqasc_tx_ready(port),
159 writeb(ch, port->membase + LTQ_ASC_TBUF));
165 lqasc_stop_rx(struct uart_port *port)
167 __raw_writel(ASCWHBSTATE_CLRREN, port->membase + LTQ_ASC_WHBSTATE);
171 lqasc_rx_chars(struct uart_port *port)
173 struct tty_port *tport = &port->state->port;
176 fifocnt = __raw_readl(port->membase + LTQ_ASC_FSTAT) &
180 ch = readb(port->membase + LTQ_ASC_RBUF);
181 rsr = (__raw_readl(port->membase + LTQ_ASC_STATE)
184 port->icount.rx++;
192 port->icount.parity++;
194 port->membase + LTQ_ASC_WHBSTATE);
196 port->icount.frame++;
198 port->membase + LTQ_ASC_WHBSTATE);
201 port->icount.overrun++;
203 port->membase + LTQ_ASC_WHBSTATE);
206 rsr &= port->read_status_mask;
214 if ((rsr & port->ignore_status_mask) == 0)
236 struct uart_port *port = (struct uart_port *)_port;
237 struct ltq_uart_port *ltq_port = to_ltq_uart_port(port);
240 __raw_writel(ASC_IRNCR_TIR, port->membase + LTQ_ASC_IRNCR);
242 lqasc_start_tx(port);
250 struct uart_port *port = (struct uart_port *)_port;
251 struct ltq_uart_port *ltq_port = to_ltq_uart_port(port);
254 __raw_writel(ASC_IRNCR_EIR, port->membase + LTQ_ASC_IRNCR);
257 ASCWHBSTATE_CLRROE, port->membase + LTQ_ASC_WHBSTATE);
266 struct uart_port *port = (struct uart_port *)_port;
267 struct ltq_uart_port *ltq_port = to_ltq_uart_port(port);
270 __raw_writel(ASC_IRNCR_RIR, port->membase + LTQ_ASC_IRNCR);
271 lqasc_rx_chars(port);
280 struct uart_port *port = p;
281 struct ltq_uart_port *ltq_port = to_ltq_uart_port(port);
284 stat = readl(port->membase + LTQ_ASC_IRNCR);
302 lqasc_tx_empty(struct uart_port *port)
305 status = __raw_readl(port->membase + LTQ_ASC_FSTAT) &
311 lqasc_get_mctrl(struct uart_port *port)
317 lqasc_set_mctrl(struct uart_port *port, u_int mctrl)
322 lqasc_break_ctl(struct uart_port *port, int break_state)
327 lqasc_startup(struct uart_port *port)
329 struct ltq_uart_port *ltq_port = to_ltq_uart_port(port);
335 port->uartclk = clk_get_rate(ltq_port->freqclk);
339 port->membase + LTQ_ASC_CLC);
341 __raw_writel(0, port->membase + LTQ_ASC_PISEL);
345 port->membase + LTQ_ASC_TXFCON);
349 port->membase + LTQ_ASC_RXFCON);
355 ASCCON_ROEN, port->membase + LTQ_ASC_CON);
359 retval = ltq_port->soc->request_irq(port);
364 port->membase + LTQ_ASC_IRNREN);
369 lqasc_shutdown(struct uart_port *port)
371 struct ltq_uart_port *ltq_port = to_ltq_uart_port(port);
374 ltq_port->soc->free_irq(port);
377 __raw_writel(0, port->membase + LTQ_ASC_CON);
379 port->membase + LTQ_ASC_RXFCON);
381 port->membase + LTQ_ASC_TXFCON);
388 lqasc_set_termios(struct uart_port *port, struct ktermios *new,
397 struct ltq_uart_port *ltq_port = to_ltq_uart_port(port);
428 port->read_status_mask = ASCSTATE_ROE;
430 port->read_status_mask |= ASCSTATE_FE | ASCSTATE_PE;
432 port->ignore_status_mask = 0;
434 port->ignore_status_mask |= ASCSTATE_FE | ASCSTATE_PE;
442 port->ignore_status_mask |= ASCSTATE_ROE;
446 port->ignore_status_mask |= UART_DUMMY_UER_RX;
454 asc_update_bits(0, con, port->membase + LTQ_ASC_CON);
457 baud = uart_get_baud_rate(port, new, old, 0, port->uartclk / 16);
458 divisor = uart_get_divisor(port, baud);
462 asc_update_bits(ASCCON_R, 0, port->membase + LTQ_ASC_CON);
465 asc_update_bits(ASCCON_FDE, 0, port->membase + LTQ_ASC_CON);
468 asc_update_bits(ASCCON_BRS, 0, port->membase + LTQ_ASC_CON);
471 __raw_writel(divisor, port->membase + LTQ_ASC_BG);
474 asc_update_bits(0, ASCCON_R, port->membase + LTQ_ASC_CON);
477 __raw_writel(ASCWHBSTATE_SETREN, port->membase + LTQ_ASC_WHBSTATE);
485 uart_update_timeout(port, cflag, baud);
489 lqasc_type(struct uart_port *port)
491 if (port->type == PORT_LTQ_ASC)
498 lqasc_release_port(struct uart_port *port)
500 struct platform_device *pdev = to_platform_device(port->dev);
502 if (port->flags & UPF_IOREMAP) {
503 devm_iounmap(&pdev->dev, port->membase);
504 port->membase = NULL;
509 lqasc_request_port(struct uart_port *port)
511 struct platform_device *pdev = to_platform_device(port->dev);
529 if (port->flags & UPF_IOREMAP) {
530 port->membase = devm_ioremap(&pdev->dev,
531 port->mapbase, size);
532 if (port->membase == NULL)
539 lqasc_config_port(struct uart_port *port, int flags)
542 port->type = PORT_LTQ_ASC;
543 lqasc_request_port(port);
548 lqasc_verify_port(struct uart_port *port,
581 lqasc_console_putchar(struct uart_port *port, unsigned char ch)
583 if (!port->membase)
586 while (!lqasc_tx_ready(port))
589 writeb(ch, port->membase + LTQ_ASC_TBUF);
592 static void lqasc_serial_port_write(struct uart_port *port, const char *s,
595 uart_console_write(port, s, count, lqasc_console_putchar);
612 lqasc_serial_port_write(<q_port->port, s, count);
620 struct uart_port *port;
633 port = <q_port->port;
638 port->uartclk = clk_get_rate(ltq_port->freqclk);
642 return uart_set_options(port, co, baud, parity, bits, flow);
669 lqasc_serial_port_write(&dev->port, s, count);
676 if (!device->port.membase)
705 struct uart_port *port = <q_port->port;
722 port->irq = ltq_port->tx_irq;
727 static int request_irq_lantiq(struct uart_port *port)
729 struct ltq_uart_port *ltq_port = to_ltq_uart_port(port);
733 0, "asc_tx", port);
735 dev_err(port->dev, "failed to request asc_tx\n");
740 0, "asc_rx", port);
742 dev_err(port->dev, "failed to request asc_rx\n");
747 0, "asc_err", port);
749 dev_err(port->dev, "failed to request asc_err\n");
755 free_irq(ltq_port->rx_irq, port);
757 free_irq(ltq_port->tx_irq, port);
761 static void free_irq_lantiq(struct uart_port *port)
763 struct ltq_uart_port *ltq_port = to_ltq_uart_port(port);
765 free_irq(ltq_port->tx_irq, port);
766 free_irq(ltq_port->rx_irq, port);
767 free_irq(ltq_port->err_irq, port);
772 struct uart_port *port = <q_port->port;
777 dev_err(dev, "failed to fetch IRQ for serial port\n");
781 port->irq = ret;
786 static int request_irq_intel(struct uart_port *port)
788 struct ltq_uart_port *ltq_port = to_ltq_uart_port(port);
792 "asc_irq", port);
794 dev_err(port->dev, "failed to request asc_irq\n");
799 static void free_irq_intel(struct uart_port *port)
801 struct ltq_uart_port *ltq_port = to_ltq_uart_port(port);
803 free_irq(ltq_port->common_irq, port);
810 struct uart_port *port;
818 "failed to get memory for serial port\n");
827 port = <q_port->port;
850 dev_err(&pdev->dev, "port %d already allocated\n", line);
854 port->iotype = SERIAL_IO_MEM;
855 port->flags = UPF_BOOT_AUTOCONF | UPF_IOREMAP;
856 port->ops = &lqasc_pops;
857 port->fifosize = 16;
858 port->type = PORT_LTQ_ASC;
859 port->line = line;
860 port->dev = &pdev->dev;
862 port->mapbase = mmres->start;
885 ret = uart_add_one_port(&lqasc_reg, port);
892 struct uart_port *port = platform_get_drvdata(pdev);
894 uart_remove_one_port(&lqasc_reg, port);