Lines Matching refs:up

51 	struct uart_cris_port *up;  in cris_console_write()  local
56 up = etraxfs_uart_ports[co->index]; in cris_console_write()
58 if (!up) in cris_console_write()
62 tr_dma_en = old = REG_RD(ser, up->regi_ser, rw_tr_dma_en); in cris_console_write()
65 REG_WR(ser, up->regi_ser, rw_tr_dma_en, tr_dma_en); in cris_console_write()
73 stat = REG_RD(ser, up->regi_ser, r_stat_din); in cris_console_write()
75 REG_WR_INT(ser, up->regi_ser, rw_dout, '\r'); in cris_console_write()
79 stat = REG_RD(ser, up->regi_ser, r_stat_din); in cris_console_write()
81 REG_WR_INT(ser, up->regi_ser, rw_dout, s[i]); in cris_console_write()
86 REG_WR(ser, up->regi_ser, rw_tr_dma_en, old); in cris_console_write()
137 static inline int crisv32_serial_get_rts(struct uart_cris_port *up) in crisv32_serial_get_rts() argument
139 void __iomem *regi_ser = up->regi_ser; in crisv32_serial_get_rts()
153 static inline void crisv32_serial_set_rts(struct uart_cris_port *up, in crisv32_serial_set_rts() argument
156 void __iomem *regi_ser = up->regi_ser; in crisv32_serial_set_rts()
172 static inline int crisv32_serial_get_cts(struct uart_cris_port *up) in crisv32_serial_get_cts() argument
174 void __iomem *regi_ser = up->regi_ser; in crisv32_serial_get_cts()
193 struct uart_cris_port *up = (struct uart_cris_port *)port; in etraxfs_uart_send_xchar() local
198 void __iomem *regi_ser = up->regi_ser; in etraxfs_uart_send_xchar()
232 up->port.icount.tx++; in etraxfs_uart_send_xchar()
235 rstat = REG_RD(ser, up->regi_ser, r_stat_din); in etraxfs_uart_send_xchar()
273 struct uart_cris_port *up = (struct uart_cris_port *)port; in etraxfs_uart_start_tx() local
276 if (up->write_ongoing) in etraxfs_uart_start_tx()
280 up->write_ongoing = 1; in etraxfs_uart_start_tx()
287 struct uart_cris_port *up = (struct uart_cris_port *)port; in etraxfs_uart_start_tx_bottom() local
288 void __iomem *regi_ser = up->regi_ser; in etraxfs_uart_start_tx_bottom()
312 struct uart_cris_port *up = (struct uart_cris_port *)port; in etraxfs_uart_stop_tx() local
313 void __iomem *regi_ser = up->regi_ser; in etraxfs_uart_stop_tx()
355 up->write_ongoing = 0; in etraxfs_uart_stop_tx()
360 struct uart_cris_port *up = (struct uart_cris_port *)port; in etraxfs_uart_stop_rx() local
361 void __iomem *regi_ser = up->regi_ser; in etraxfs_uart_stop_rx()
370 struct uart_cris_port *up = (struct uart_cris_port *)port; in etraxfs_uart_tx_empty() local
375 spin_lock_irqsave(&up->port.lock, flags); in etraxfs_uart_tx_empty()
377 rstat = REG_RD(ser, up->regi_ser, r_stat_din); in etraxfs_uart_tx_empty()
380 spin_unlock_irqrestore(&up->port.lock, flags); in etraxfs_uart_tx_empty()
385 struct uart_cris_port *up = (struct uart_cris_port *)port; in etraxfs_uart_get_mctrl() local
389 if (crisv32_serial_get_rts(up)) in etraxfs_uart_get_mctrl()
391 if (crisv32_serial_get_cts(up)) in etraxfs_uart_get_mctrl()
393 return mctrl_gpio_get(up->gpios, &ret); in etraxfs_uart_get_mctrl()
398 struct uart_cris_port *up = (struct uart_cris_port *)port; in etraxfs_uart_set_mctrl() local
400 crisv32_serial_set_rts(up, mctrl & TIOCM_RTS ? 1 : 0, 0); in etraxfs_uart_set_mctrl()
401 mctrl_gpio_set(up->gpios, mctrl); in etraxfs_uart_set_mctrl()
406 struct uart_cris_port *up = (struct uart_cris_port *)port; in etraxfs_uart_break_ctl() local
412 spin_lock_irqsave(&up->port.lock, flags); in etraxfs_uart_break_ctl()
413 tr_ctrl = REG_RD(ser, up->regi_ser, rw_tr_ctrl); in etraxfs_uart_break_ctl()
414 tr_dma_en = REG_RD(ser, up->regi_ser, rw_tr_dma_en); in etraxfs_uart_break_ctl()
415 intr_mask = REG_RD(ser, up->regi_ser, rw_intr_mask); in etraxfs_uart_break_ctl()
440 REG_WR(ser, up->regi_ser, rw_tr_ctrl, tr_ctrl); in etraxfs_uart_break_ctl()
441 REG_WR(ser, up->regi_ser, rw_tr_dma_en, tr_dma_en); in etraxfs_uart_break_ctl()
442 REG_WR(ser, up->regi_ser, rw_intr_mask, intr_mask); in etraxfs_uart_break_ctl()
444 spin_unlock_irqrestore(&up->port.lock, flags); in etraxfs_uart_break_ctl()
448 transmit_chars_no_dma(struct uart_cris_port *up) in transmit_chars_no_dma() argument
451 struct circ_buf *xmit = &up->port.state->xmit; in transmit_chars_no_dma()
453 void __iomem *regi_ser = up->regi_ser; in transmit_chars_no_dma()
457 if (uart_circ_empty(xmit) || uart_tx_stopped(&up->port)) { in transmit_chars_no_dma()
465 up->write_ongoing = 0; in transmit_chars_no_dma()
478 up->port.icount.tx++; in transmit_chars_no_dma()
485 uart_write_wakeup(&up->port); in transmit_chars_no_dma()
488 static void receive_chars_no_dma(struct uart_cris_port *up) in receive_chars_no_dma() argument
498 rstat = REG_RD(ser, up->regi_ser, r_stat_din); in receive_chars_no_dma()
499 icount = &up->port.icount; in receive_chars_no_dma()
500 port = &up->port.state->port; in receive_chars_no_dma()
503 stat_din = REG_RD(ser, up->regi_ser, rs_stat_din); in receive_chars_no_dma()
507 REG_WR(ser, up->regi_ser, rw_ack_intr, ack_intr); in receive_chars_no_dma()
534 rstat = REG_RD(ser, up->regi_ser, r_stat_din); in receive_chars_no_dma()
536 spin_unlock(&up->port.lock); in receive_chars_no_dma()
538 spin_lock(&up->port.lock); in receive_chars_no_dma()
544 struct uart_cris_port *up = (struct uart_cris_port *)dev_id; in ser_interrupt() local
548 spin_lock(&up->port.lock); in ser_interrupt()
550 regi_ser = up->regi_ser; in ser_interrupt()
562 receive_chars_no_dma(up); in ser_interrupt()
567 transmit_chars_no_dma(up); in ser_interrupt()
571 spin_unlock(&up->port.lock); in ser_interrupt()
580 struct uart_cris_port *up = (struct uart_cris_port *)port; in etraxfs_uart_get_poll_char() local
583 stat = REG_RD(ser, up->regi_ser, rs_stat_din); in etraxfs_uart_get_poll_char()
588 REG_WR(ser, up->regi_ser, rw_ack_intr, ack_intr); in etraxfs_uart_get_poll_char()
597 struct uart_cris_port *up = (struct uart_cris_port *)port; in etraxfs_uart_put_poll_char() local
600 stat = REG_RD(ser, up->regi_ser, r_stat_din); in etraxfs_uart_put_poll_char()
602 REG_WR_INT(ser, up->regi_ser, rw_dout, c); in etraxfs_uart_put_poll_char()
608 struct uart_cris_port *up = (struct uart_cris_port *)port; in etraxfs_uart_startup() local
618 spin_lock_irqsave(&up->port.lock, flags); in etraxfs_uart_startup()
620 REG_WR(ser, up->regi_ser, rw_intr_mask, ser_intr_mask); in etraxfs_uart_startup()
622 etraxfs_uart_set_mctrl(&up->port, up->port.mctrl); in etraxfs_uart_startup()
624 spin_unlock_irqrestore(&up->port.lock, flags); in etraxfs_uart_startup()
631 struct uart_cris_port *up = (struct uart_cris_port *)port; in etraxfs_uart_shutdown() local
634 spin_lock_irqsave(&up->port.lock, flags); in etraxfs_uart_shutdown()
642 etraxfs_uart_set_mctrl(&up->port, up->port.mctrl); in etraxfs_uart_shutdown()
644 spin_unlock_irqrestore(&up->port.lock, flags); in etraxfs_uart_shutdown()
652 struct uart_cris_port *up = (struct uart_cris_port *)port; in etraxfs_uart_set_termios() local
763 REG_WR(ser, up->regi_ser, rw_tr_dma_en, tx_dma_en); in etraxfs_uart_set_termios()
767 MODIFY_REG(up->regi_ser, rw_rec_baud_div, rx_baud_div); in etraxfs_uart_set_termios()
768 MODIFY_REG(up->regi_ser, rw_rec_ctrl, rx_ctrl); in etraxfs_uart_set_termios()
770 MODIFY_REG(up->regi_ser, rw_tr_baud_div, tx_baud_div); in etraxfs_uart_set_termios()
771 MODIFY_REG(up->regi_ser, rw_tr_ctrl, tx_ctrl); in etraxfs_uart_set_termios()
774 REG_WR(ser, up->regi_ser, rw_tr_dma_en, tx_dma_en); in etraxfs_uart_set_termios()
776 xoff = REG_RD(ser, up->regi_ser, rw_xoff); in etraxfs_uart_set_termios()
778 if (up->port.state && up->port.state->port.tty && in etraxfs_uart_set_termios()
779 (up->port.state->port.tty->termios.c_iflag & IXON)) { in etraxfs_uart_set_termios()
780 xoff.chr = STOP_CHAR(up->port.state->port.tty); in etraxfs_uart_set_termios()
785 MODIFY_REG(up->regi_ser, rw_xoff, xoff); in etraxfs_uart_set_termios()
792 REG_WR(ser, up->regi_ser, rw_xoff_clr, xoff_clr); in etraxfs_uart_set_termios()
794 etraxfs_uart_set_mctrl(&up->port, up->port.mctrl); in etraxfs_uart_set_termios()
795 spin_unlock_irqrestore(&up->port.lock, flags); in etraxfs_uart_set_termios()
815 struct uart_cris_port *up = (struct uart_cris_port *)port; in etraxfs_uart_config_port() local
817 up->port.type = PORT_CRIS; in etraxfs_uart_config_port()
844 struct uart_cris_port *up = (struct uart_cris_port *)port; in cris_serial_port_init() local
846 if (up->initialized) in cris_serial_port_init()
848 up->initialized = 1; in cris_serial_port_init()
852 port->irq = up->irq; in cris_serial_port_init()
853 port->iobase = (unsigned long) up->regi_ser; in cris_serial_port_init()
872 struct uart_cris_port *up; in etraxfs_uart_probe() local
888 up = devm_kzalloc(&pdev->dev, sizeof(struct uart_cris_port), in etraxfs_uart_probe()
890 if (!up) in etraxfs_uart_probe()
893 up->irq = irq_of_parse_and_map(np, 0); in etraxfs_uart_probe()
894 up->regi_ser = of_iomap(np, 0); in etraxfs_uart_probe()
895 up->port.dev = &pdev->dev; in etraxfs_uart_probe()
897 up->gpios = mctrl_gpio_init_noauto(&pdev->dev, 0); in etraxfs_uart_probe()
898 if (IS_ERR(up->gpios)) in etraxfs_uart_probe()
899 return PTR_ERR(up->gpios); in etraxfs_uart_probe()
901 cris_serial_port_init(&up->port, dev_id); in etraxfs_uart_probe()
903 etraxfs_uart_ports[dev_id] = up; in etraxfs_uart_probe()
904 platform_set_drvdata(pdev, &up->port); in etraxfs_uart_probe()
905 uart_add_one_port(&etraxfs_uart_driver, &up->port); in etraxfs_uart_probe()