Lines Matching refs:port

100 static void lqasc_tx_chars(struct uart_port *port);
106 int (*request_irq)(struct uart_port *port);
107 void (*free_irq)(struct uart_port *port);
111 struct uart_port port;
133 ltq_uart_port *to_ltq_uart_port(struct uart_port *port)
135 return container_of(port, struct ltq_uart_port, port);
139 lqasc_stop_tx(struct uart_port *port)
145 lqasc_start_tx(struct uart_port *port)
148 struct ltq_uart_port *ltq_port = to_ltq_uart_port(port);
151 lqasc_tx_chars(port);
157 lqasc_stop_rx(struct uart_port *port)
159 __raw_writel(ASCWHBSTATE_CLRREN, port->membase + LTQ_ASC_WHBSTATE);
163 lqasc_rx_chars(struct uart_port *port)
165 struct tty_port *tport = &port->state->port;
168 fifocnt = __raw_readl(port->membase + LTQ_ASC_FSTAT) &
172 ch = readb(port->membase + LTQ_ASC_RBUF);
173 rsr = (__raw_readl(port->membase + LTQ_ASC_STATE)
176 port->icount.rx++;
184 port->icount.parity++;
186 port->membase + LTQ_ASC_WHBSTATE);
188 port->icount.frame++;
190 port->membase + LTQ_ASC_WHBSTATE);
193 port->icount.overrun++;
195 port->membase + LTQ_ASC_WHBSTATE);
198 rsr &= port->read_status_mask;
206 if ((rsr & port->ignore_status_mask) == 0)
225 lqasc_tx_chars(struct uart_port *port)
227 struct circ_buf *xmit = &port->state->xmit;
228 if (uart_tx_stopped(port)) {
229 lqasc_stop_tx(port);
233 while (((__raw_readl(port->membase + LTQ_ASC_FSTAT) &
235 if (port->x_char) {
236 writeb(port->x_char, port->membase + LTQ_ASC_TBUF);
237 port->icount.tx++;
238 port->x_char = 0;
245 writeb(port->state->xmit.buf[port->state->xmit.tail],
246 port->membase + LTQ_ASC_TBUF);
248 port->icount.tx++;
252 uart_write_wakeup(port);
259 struct uart_port *port = (struct uart_port *)_port;
260 struct ltq_uart_port *ltq_port = to_ltq_uart_port(port);
263 __raw_writel(ASC_IRNCR_TIR, port->membase + LTQ_ASC_IRNCR);
265 lqasc_start_tx(port);
273 struct uart_port *port = (struct uart_port *)_port;
274 struct ltq_uart_port *ltq_port = to_ltq_uart_port(port);
277 __raw_writel(ASC_IRNCR_EIR, port->membase + LTQ_ASC_IRNCR);
280 ASCWHBSTATE_CLRROE, port->membase + LTQ_ASC_WHBSTATE);
289 struct uart_port *port = (struct uart_port *)_port;
290 struct ltq_uart_port *ltq_port = to_ltq_uart_port(port);
293 __raw_writel(ASC_IRNCR_RIR, port->membase + LTQ_ASC_IRNCR);
294 lqasc_rx_chars(port);
303 struct uart_port *port = p;
304 struct ltq_uart_port *ltq_port = to_ltq_uart_port(port);
307 stat = readl(port->membase + LTQ_ASC_IRNCR);
325 lqasc_tx_empty(struct uart_port *port)
328 status = __raw_readl(port->membase + LTQ_ASC_FSTAT) &
334 lqasc_get_mctrl(struct uart_port *port)
340 lqasc_set_mctrl(struct uart_port *port, u_int mctrl)
345 lqasc_break_ctl(struct uart_port *port, int break_state)
350 lqasc_startup(struct uart_port *port)
352 struct ltq_uart_port *ltq_port = to_ltq_uart_port(port);
358 port->uartclk = clk_get_rate(ltq_port->freqclk);
362 port->membase + LTQ_ASC_CLC);
364 __raw_writel(0, port->membase + LTQ_ASC_PISEL);
368 port->membase + LTQ_ASC_TXFCON);
372 port->membase + LTQ_ASC_RXFCON);
378 ASCCON_ROEN, port->membase + LTQ_ASC_CON);
382 retval = ltq_port->soc->request_irq(port);
387 port->membase + LTQ_ASC_IRNREN);
392 lqasc_shutdown(struct uart_port *port)
394 struct ltq_uart_port *ltq_port = to_ltq_uart_port(port);
397 ltq_port->soc->free_irq(port);
400 __raw_writel(0, port->membase + LTQ_ASC_CON);
402 port->membase + LTQ_ASC_RXFCON);
404 port->membase + LTQ_ASC_TXFCON);
411 lqasc_set_termios(struct uart_port *port,
420 struct ltq_uart_port *ltq_port = to_ltq_uart_port(port);
451 port->read_status_mask = ASCSTATE_ROE;
453 port->read_status_mask |= ASCSTATE_FE | ASCSTATE_PE;
455 port->ignore_status_mask = 0;
457 port->ignore_status_mask |= ASCSTATE_FE | ASCSTATE_PE;
465 port->ignore_status_mask |= ASCSTATE_ROE;
469 port->ignore_status_mask |= UART_DUMMY_UER_RX;
477 asc_update_bits(0, con, port->membase + LTQ_ASC_CON);
480 baud = uart_get_baud_rate(port, new, old, 0, port->uartclk / 16);
481 divisor = uart_get_divisor(port, baud);
485 asc_update_bits(ASCCON_R, 0, port->membase + LTQ_ASC_CON);
488 asc_update_bits(ASCCON_FDE, 0, port->membase + LTQ_ASC_CON);
491 asc_update_bits(ASCCON_BRS, 0, port->membase + LTQ_ASC_CON);
494 __raw_writel(divisor, port->membase + LTQ_ASC_BG);
497 asc_update_bits(0, ASCCON_R, port->membase + LTQ_ASC_CON);
500 __raw_writel(ASCWHBSTATE_SETREN, port->membase + LTQ_ASC_WHBSTATE);
508 uart_update_timeout(port, cflag, baud);
512 lqasc_type(struct uart_port *port)
514 if (port->type == PORT_LTQ_ASC)
521 lqasc_release_port(struct uart_port *port)
523 struct platform_device *pdev = to_platform_device(port->dev);
525 if (port->flags & UPF_IOREMAP) {
526 devm_iounmap(&pdev->dev, port->membase);
527 port->membase = NULL;
532 lqasc_request_port(struct uart_port *port)
534 struct platform_device *pdev = to_platform_device(port->dev);
552 if (port->flags & UPF_IOREMAP) {
553 port->membase = devm_ioremap(&pdev->dev,
554 port->mapbase, size);
555 if (port->membase == NULL)
562 lqasc_config_port(struct uart_port *port, int flags)
565 port->type = PORT_LTQ_ASC;
566 lqasc_request_port(port);
571 lqasc_verify_port(struct uart_port *port,
604 lqasc_console_putchar(struct uart_port *port, int ch)
608 if (!port->membase)
612 fifofree = (__raw_readl(port->membase + LTQ_ASC_FSTAT)
615 writeb(ch, port->membase + LTQ_ASC_TBUF);
618 static void lqasc_serial_port_write(struct uart_port *port, const char *s,
621 uart_console_write(port, s, count, lqasc_console_putchar);
638 lqasc_serial_port_write(&ltq_port->port, s, count);
646 struct uart_port *port;
659 port = &ltq_port->port;
664 port->uartclk = clk_get_rate(ltq_port->freqclk);
668 return uart_set_options(port, co, baud, parity, bits, flow);
695 lqasc_serial_port_write(&dev->port, s, count);
702 if (!device->port.membase)
731 struct uart_port *port = &ltq_port->port;
738 "failed to get IRQs for serial port\n");
744 port->irq = irqres[0].start;
749 static int request_irq_lantiq(struct uart_port *port)
751 struct ltq_uart_port *ltq_port = to_ltq_uart_port(port);
755 0, "asc_tx", port);
757 dev_err(port->dev, "failed to request asc_tx\n");
762 0, "asc_rx", port);
764 dev_err(port->dev, "failed to request asc_rx\n");
769 0, "asc_err", port);
771 dev_err(port->dev, "failed to request asc_err\n");
777 free_irq(ltq_port->rx_irq, port);
779 free_irq(ltq_port->tx_irq, port);
783 static void free_irq_lantiq(struct uart_port *port)
785 struct ltq_uart_port *ltq_port = to_ltq_uart_port(port);
787 free_irq(ltq_port->tx_irq, port);
788 free_irq(ltq_port->rx_irq, port);
789 free_irq(ltq_port->err_irq, port);
794 struct uart_port *port = &ltq_port->port;
799 dev_err(dev, "failed to fetch IRQ for serial port\n");
803 port->irq = ret;
808 static int request_irq_intel(struct uart_port *port)
810 struct ltq_uart_port *ltq_port = to_ltq_uart_port(port);
814 "asc_irq", port);
816 dev_err(port->dev, "failed to request asc_irq\n");
821 static void free_irq_intel(struct uart_port *port)
823 struct ltq_uart_port *ltq_port = to_ltq_uart_port(port);
825 free_irq(ltq_port->common_irq, port);
832 struct uart_port *port;
840 "failed to get memory for serial port\n");
849 port = &ltq_port->port;
872 dev_err(&pdev->dev, "port %d already allocated\n", line);
876 port->iotype = SERIAL_IO_MEM;
877 port->flags = UPF_BOOT_AUTOCONF | UPF_IOREMAP;
878 port->ops = &lqasc_pops;
879 port->fifosize = 16;
880 port->type = PORT_LTQ_ASC,
881 port->line = line;
882 port->dev = &pdev->dev;
884 port->mapbase = mmres->start;
907 ret = uart_add_one_port(&lqasc_reg, port);
914 struct uart_port *port = platform_get_drvdata(pdev);
916 return uart_remove_one_port(&lqasc_reg, port);