• Home
  • Raw
  • Download

Lines Matching refs:uport

132 	struct uart_port uport;  member
140 int (*handle_rx)(struct uart_port *uport, u32 bytes, bool drop);
159 static int handle_rx_console(struct uart_port *uport, u32 bytes, bool drop);
160 static int handle_rx_uart(struct uart_port *uport, u32 bytes, bool drop);
162 static void qcom_geni_serial_stop_rx(struct uart_port *uport);
163 static void qcom_geni_serial_handle_rx(struct uart_port *uport, bool drop);
176 .uport = {
184 .uport = {
192 .uport = {
202 .uport = {
210 static int qcom_geni_serial_request_port(struct uart_port *uport) in qcom_geni_serial_request_port() argument
212 struct platform_device *pdev = to_platform_device(uport->dev); in qcom_geni_serial_request_port()
213 struct qcom_geni_serial_port *port = to_dev_port(uport, uport); in qcom_geni_serial_request_port()
215 uport->membase = devm_platform_ioremap_resource(pdev, 0); in qcom_geni_serial_request_port()
216 if (IS_ERR(uport->membase)) in qcom_geni_serial_request_port()
217 return PTR_ERR(uport->membase); in qcom_geni_serial_request_port()
218 port->se.base = uport->membase; in qcom_geni_serial_request_port()
222 static void qcom_geni_serial_config_port(struct uart_port *uport, int cfg_flags) in qcom_geni_serial_config_port() argument
225 uport->type = PORT_MSM; in qcom_geni_serial_config_port()
226 qcom_geni_serial_request_port(uport); in qcom_geni_serial_config_port()
230 static unsigned int qcom_geni_serial_get_mctrl(struct uart_port *uport) in qcom_geni_serial_get_mctrl() argument
235 if (uart_console(uport)) { in qcom_geni_serial_get_mctrl()
238 geni_ios = readl(uport->membase + SE_GENI_IOS); in qcom_geni_serial_get_mctrl()
246 static void qcom_geni_serial_set_mctrl(struct uart_port *uport, in qcom_geni_serial_set_mctrl() argument
250 struct qcom_geni_serial_port *port = to_dev_port(uport, uport); in qcom_geni_serial_set_mctrl()
252 if (uart_console(uport)) in qcom_geni_serial_set_mctrl()
258 if (!(mctrl & TIOCM_RTS) && !uport->suspended) in qcom_geni_serial_set_mctrl()
260 writel(uart_manual_rfr, uport->membase + SE_UART_MANUAL_RFR); in qcom_geni_serial_set_mctrl()
263 static const char *qcom_geni_serial_get_type(struct uart_port *uport) in qcom_geni_serial_get_type() argument
280 static bool qcom_geni_serial_poll_bit(struct uart_port *uport, in qcom_geni_serial_poll_bit() argument
288 struct qcom_geni_private_data *private_data = uport->private_data; in qcom_geni_serial_poll_bit()
291 port = to_dev_port(uport, uport); in qcom_geni_serial_poll_bit()
309 reg = readl(uport->membase + offset); in qcom_geni_serial_poll_bit()
318 static void qcom_geni_serial_setup_tx(struct uart_port *uport, u32 xmit_size) in qcom_geni_serial_setup_tx() argument
322 writel(xmit_size, uport->membase + SE_UART_TX_TRANS_LEN); in qcom_geni_serial_setup_tx()
324 writel(m_cmd, uport->membase + SE_GENI_M_CMD0); in qcom_geni_serial_setup_tx()
327 static void qcom_geni_serial_poll_tx_done(struct uart_port *uport) in qcom_geni_serial_poll_tx_done() argument
332 done = qcom_geni_serial_poll_bit(uport, SE_GENI_M_IRQ_STATUS, in qcom_geni_serial_poll_tx_done()
335 writel(M_GENI_CMD_ABORT, uport->membase + in qcom_geni_serial_poll_tx_done()
338 qcom_geni_serial_poll_bit(uport, SE_GENI_M_IRQ_STATUS, in qcom_geni_serial_poll_tx_done()
341 writel(irq_clear, uport->membase + SE_GENI_M_IRQ_CLEAR); in qcom_geni_serial_poll_tx_done()
344 static void qcom_geni_serial_abort_rx(struct uart_port *uport) in qcom_geni_serial_abort_rx() argument
348 writel(S_GENI_CMD_ABORT, uport->membase + SE_GENI_S_CMD_CTRL_REG); in qcom_geni_serial_abort_rx()
349 qcom_geni_serial_poll_bit(uport, SE_GENI_S_CMD_CTRL_REG, in qcom_geni_serial_abort_rx()
351 writel(irq_clear, uport->membase + SE_GENI_S_IRQ_CLEAR); in qcom_geni_serial_abort_rx()
352 writel(FORCE_DEFAULT, uport->membase + GENI_FORCE_DEFAULT_REG); in qcom_geni_serial_abort_rx()
357 static int qcom_geni_serial_get_char(struct uart_port *uport) in qcom_geni_serial_get_char() argument
359 struct qcom_geni_private_data *private_data = uport->private_data; in qcom_geni_serial_get_char()
365 status = readl(uport->membase + SE_GENI_M_IRQ_STATUS); in qcom_geni_serial_get_char()
366 writel(status, uport->membase + SE_GENI_M_IRQ_CLEAR); in qcom_geni_serial_get_char()
368 status = readl(uport->membase + SE_GENI_S_IRQ_STATUS); in qcom_geni_serial_get_char()
369 writel(status, uport->membase + SE_GENI_S_IRQ_CLEAR); in qcom_geni_serial_get_char()
371 status = readl(uport->membase + SE_GENI_RX_FIFO_STATUS); in qcom_geni_serial_get_char()
389 readl(uport->membase + SE_GENI_RX_FIFOn); in qcom_geni_serial_get_char()
399 static void qcom_geni_serial_poll_put_char(struct uart_port *uport, in qcom_geni_serial_poll_put_char() argument
402 writel(DEF_TX_WM, uport->membase + SE_GENI_TX_WATERMARK_REG); in qcom_geni_serial_poll_put_char()
403 qcom_geni_serial_setup_tx(uport, 1); in qcom_geni_serial_poll_put_char()
404 WARN_ON(!qcom_geni_serial_poll_bit(uport, SE_GENI_M_IRQ_STATUS, in qcom_geni_serial_poll_put_char()
406 writel(c, uport->membase + SE_GENI_TX_FIFOn); in qcom_geni_serial_poll_put_char()
407 writel(M_TX_FIFO_WATERMARK_EN, uport->membase + SE_GENI_M_IRQ_CLEAR); in qcom_geni_serial_poll_put_char()
408 qcom_geni_serial_poll_tx_done(uport); in qcom_geni_serial_poll_put_char()
413 static void qcom_geni_serial_wr_char(struct uart_port *uport, int ch) in qcom_geni_serial_wr_char() argument
415 struct qcom_geni_private_data *private_data = uport->private_data; in qcom_geni_serial_wr_char()
423 uport->membase + SE_GENI_TX_FIFOn); in qcom_geni_serial_wr_char()
429 __qcom_geni_serial_console_write(struct uart_port *uport, const char *s, in __qcom_geni_serial_console_write() argument
432 struct qcom_geni_private_data *private_data = uport->private_data; in __qcom_geni_serial_console_write()
446 writel(DEF_TX_WM, uport->membase + SE_GENI_TX_WATERMARK_REG); in __qcom_geni_serial_console_write()
447 qcom_geni_serial_setup_tx(uport, bytes_to_send); in __qcom_geni_serial_console_write()
458 if (!qcom_geni_serial_poll_bit(uport, SE_GENI_M_IRQ_STATUS, in __qcom_geni_serial_console_write()
462 uart_console_write(uport, s + i, chars_to_write, in __qcom_geni_serial_console_write()
464 writel(M_TX_FIFO_WATERMARK_EN, uport->membase + in __qcom_geni_serial_console_write()
473 uport->membase + SE_GENI_TX_FIFOn); in __qcom_geni_serial_console_write()
477 qcom_geni_serial_poll_tx_done(uport); in __qcom_geni_serial_console_write()
483 struct uart_port *uport; in qcom_geni_serial_console_write() local
496 uport = &port->uport; in qcom_geni_serial_console_write()
498 locked = spin_trylock_irqsave(&uport->lock, flags); in qcom_geni_serial_console_write()
500 spin_lock_irqsave(&uport->lock, flags); in qcom_geni_serial_console_write()
502 geni_status = readl(uport->membase + SE_GENI_STATUS); in qcom_geni_serial_console_write()
507 if (!qcom_geni_serial_poll_bit(uport, SE_GENI_M_IRQ_STATUS, in qcom_geni_serial_console_write()
510 qcom_geni_serial_poll_bit(uport, SE_GENI_M_IRQ_STATUS, in qcom_geni_serial_console_write()
512 writel(M_CMD_ABORT_EN, uport->membase + in qcom_geni_serial_console_write()
515 writel(M_CMD_CANCEL_EN, uport->membase + SE_GENI_M_IRQ_CLEAR); in qcom_geni_serial_console_write()
521 qcom_geni_serial_poll_tx_done(uport); in qcom_geni_serial_console_write()
523 if (uart_circ_chars_pending(&uport->state->xmit)) { in qcom_geni_serial_console_write()
524 irq_en = readl(uport->membase + SE_GENI_M_IRQ_EN); in qcom_geni_serial_console_write()
526 uport->membase + SE_GENI_M_IRQ_EN); in qcom_geni_serial_console_write()
530 __qcom_geni_serial_console_write(uport, s, count); in qcom_geni_serial_console_write()
533 qcom_geni_serial_setup_tx(uport, port->tx_remaining); in qcom_geni_serial_console_write()
536 spin_unlock_irqrestore(&uport->lock, flags); in qcom_geni_serial_console_write()
539 static int handle_rx_console(struct uart_port *uport, u32 bytes, bool drop) in handle_rx_console() argument
544 struct qcom_geni_serial_port *port = to_dev_port(uport, uport); in handle_rx_console()
546 tport = &uport->state->port; in handle_rx_console()
551 ioread32_rep(uport->membase + SE_GENI_RX_FIFOn, buf, 1); in handle_rx_console()
559 uport->icount.rx++; in handle_rx_console()
562 if (uart_handle_break(uport)) in handle_rx_console()
566 sysrq = uart_prepare_sysrq_char(uport, buf[c]); in handle_rx_console()
577 static int handle_rx_console(struct uart_port *uport, u32 bytes, bool drop) in handle_rx_console() argument
584 static int handle_rx_uart(struct uart_port *uport, u32 bytes, bool drop) in handle_rx_uart() argument
587 struct qcom_geni_serial_port *port = to_dev_port(uport, uport); in handle_rx_uart()
592 tport = &uport->state->port; in handle_rx_uart()
593 ioread32_rep(uport->membase + SE_GENI_RX_FIFOn, port->rx_fifo, words); in handle_rx_uart()
599 dev_err(uport->dev, "%s:Unable to push data ret %d_bytes %d\n", in handle_rx_uart()
603 uport->icount.rx += ret; in handle_rx_uart()
608 static void qcom_geni_serial_start_tx(struct uart_port *uport) in qcom_geni_serial_start_tx() argument
613 status = readl(uport->membase + SE_GENI_STATUS); in qcom_geni_serial_start_tx()
617 if (!qcom_geni_serial_tx_empty(uport)) in qcom_geni_serial_start_tx()
620 irq_en = readl(uport->membase + SE_GENI_M_IRQ_EN); in qcom_geni_serial_start_tx()
623 writel(DEF_TX_WM, uport->membase + SE_GENI_TX_WATERMARK_REG); in qcom_geni_serial_start_tx()
624 writel(irq_en, uport->membase + SE_GENI_M_IRQ_EN); in qcom_geni_serial_start_tx()
627 static void qcom_geni_serial_stop_tx(struct uart_port *uport) in qcom_geni_serial_stop_tx() argument
631 struct qcom_geni_serial_port *port = to_dev_port(uport, uport); in qcom_geni_serial_stop_tx()
633 irq_en = readl(uport->membase + SE_GENI_M_IRQ_EN); in qcom_geni_serial_stop_tx()
635 writel(0, uport->membase + SE_GENI_TX_WATERMARK_REG); in qcom_geni_serial_stop_tx()
636 writel(irq_en, uport->membase + SE_GENI_M_IRQ_EN); in qcom_geni_serial_stop_tx()
637 status = readl(uport->membase + SE_GENI_STATUS); in qcom_geni_serial_stop_tx()
643 if (!qcom_geni_serial_poll_bit(uport, SE_GENI_M_IRQ_STATUS, in qcom_geni_serial_stop_tx()
646 qcom_geni_serial_poll_bit(uport, SE_GENI_M_IRQ_STATUS, in qcom_geni_serial_stop_tx()
648 writel(M_CMD_ABORT_EN, uport->membase + SE_GENI_M_IRQ_CLEAR); in qcom_geni_serial_stop_tx()
650 writel(M_CMD_CANCEL_EN, uport->membase + SE_GENI_M_IRQ_CLEAR); in qcom_geni_serial_stop_tx()
653 static void qcom_geni_serial_start_rx(struct uart_port *uport) in qcom_geni_serial_start_rx() argument
657 struct qcom_geni_serial_port *port = to_dev_port(uport, uport); in qcom_geni_serial_start_rx()
659 status = readl(uport->membase + SE_GENI_STATUS); in qcom_geni_serial_start_rx()
661 qcom_geni_serial_stop_rx(uport); in qcom_geni_serial_start_rx()
665 irq_en = readl(uport->membase + SE_GENI_S_IRQ_EN); in qcom_geni_serial_start_rx()
667 writel(irq_en, uport->membase + SE_GENI_S_IRQ_EN); in qcom_geni_serial_start_rx()
669 irq_en = readl(uport->membase + SE_GENI_M_IRQ_EN); in qcom_geni_serial_start_rx()
671 writel(irq_en, uport->membase + SE_GENI_M_IRQ_EN); in qcom_geni_serial_start_rx()
674 static void qcom_geni_serial_stop_rx(struct uart_port *uport) in qcom_geni_serial_stop_rx() argument
678 struct qcom_geni_serial_port *port = to_dev_port(uport, uport); in qcom_geni_serial_stop_rx()
681 irq_en = readl(uport->membase + SE_GENI_S_IRQ_EN); in qcom_geni_serial_stop_rx()
683 writel(irq_en, uport->membase + SE_GENI_S_IRQ_EN); in qcom_geni_serial_stop_rx()
685 irq_en = readl(uport->membase + SE_GENI_M_IRQ_EN); in qcom_geni_serial_stop_rx()
687 writel(irq_en, uport->membase + SE_GENI_M_IRQ_EN); in qcom_geni_serial_stop_rx()
689 status = readl(uport->membase + SE_GENI_STATUS); in qcom_geni_serial_stop_rx()
695 qcom_geni_serial_poll_bit(uport, SE_GENI_S_IRQ_STATUS, in qcom_geni_serial_stop_rx()
701 s_irq_status = readl(uport->membase + SE_GENI_S_IRQ_STATUS); in qcom_geni_serial_stop_rx()
704 qcom_geni_serial_handle_rx(uport, true); in qcom_geni_serial_stop_rx()
705 writel(s_irq_status, uport->membase + SE_GENI_S_IRQ_CLEAR); in qcom_geni_serial_stop_rx()
707 status = readl(uport->membase + SE_GENI_STATUS); in qcom_geni_serial_stop_rx()
709 qcom_geni_serial_abort_rx(uport); in qcom_geni_serial_stop_rx()
712 static void qcom_geni_serial_handle_rx(struct uart_port *uport, bool drop) in qcom_geni_serial_handle_rx() argument
719 struct qcom_geni_serial_port *port = to_dev_port(uport, uport); in qcom_geni_serial_handle_rx()
721 status = readl(uport->membase + SE_GENI_RX_FIFO_STATUS); in qcom_geni_serial_handle_rx()
734 port->handle_rx(uport, total_bytes, drop); in qcom_geni_serial_handle_rx()
737 static void qcom_geni_serial_handle_tx(struct uart_port *uport, bool done, in qcom_geni_serial_handle_tx() argument
740 struct qcom_geni_serial_port *port = to_dev_port(uport, uport); in qcom_geni_serial_handle_tx()
741 struct circ_buf *xmit = &uport->state->xmit; in qcom_geni_serial_handle_tx()
751 status = readl(uport->membase + SE_GENI_TX_FIFO_STATUS); in qcom_geni_serial_handle_tx()
761 qcom_geni_serial_stop_tx(uport); in qcom_geni_serial_handle_tx()
774 qcom_geni_serial_setup_tx(uport, pending); in qcom_geni_serial_handle_tx()
777 irq_en = readl(uport->membase + SE_GENI_M_IRQ_EN); in qcom_geni_serial_handle_tx()
780 uport->membase + SE_GENI_M_IRQ_EN); in qcom_geni_serial_handle_tx()
797 iowrite32_rep(uport->membase + SE_GENI_TX_FIFOn, buf, 1); in qcom_geni_serial_handle_tx()
800 uport->icount.tx += tx_bytes; in qcom_geni_serial_handle_tx()
813 uport->membase + SE_GENI_M_IRQ_CLEAR); in qcom_geni_serial_handle_tx()
817 irq_en = readl(uport->membase + SE_GENI_M_IRQ_EN); in qcom_geni_serial_handle_tx()
820 uport->membase + SE_GENI_M_IRQ_EN); in qcom_geni_serial_handle_tx()
824 uart_write_wakeup(uport); in qcom_geni_serial_handle_tx()
833 struct uart_port *uport = dev; in qcom_geni_serial_isr() local
835 struct tty_port *tport = &uport->state->port; in qcom_geni_serial_isr()
836 struct qcom_geni_serial_port *port = to_dev_port(uport, uport); in qcom_geni_serial_isr()
838 if (uport->suspended) in qcom_geni_serial_isr()
841 spin_lock(&uport->lock); in qcom_geni_serial_isr()
843 m_irq_status = readl(uport->membase + SE_GENI_M_IRQ_STATUS); in qcom_geni_serial_isr()
844 s_irq_status = readl(uport->membase + SE_GENI_S_IRQ_STATUS); in qcom_geni_serial_isr()
845 geni_status = readl(uport->membase + SE_GENI_STATUS); in qcom_geni_serial_isr()
846 m_irq_en = readl(uport->membase + SE_GENI_M_IRQ_EN); in qcom_geni_serial_isr()
847 writel(m_irq_status, uport->membase + SE_GENI_M_IRQ_CLEAR); in qcom_geni_serial_isr()
848 writel(s_irq_status, uport->membase + SE_GENI_S_IRQ_CLEAR); in qcom_geni_serial_isr()
854 uport->icount.overrun++; in qcom_geni_serial_isr()
859 qcom_geni_serial_handle_tx(uport, m_irq_status & M_CMD_DONE_EN, in qcom_geni_serial_isr()
864 uport->icount.parity++; in qcom_geni_serial_isr()
868 uport->icount.brk++; in qcom_geni_serial_isr()
874 qcom_geni_serial_handle_rx(uport, drop_rx); in qcom_geni_serial_isr()
877 uart_unlock_and_check_sysrq(uport); in qcom_geni_serial_isr()
884 struct uart_port *uport; in setup_fifos() local
887 uport = &port->uport; in setup_fifos()
891 uport->fifosize = in setup_fifos()
895 port->rx_fifo = devm_krealloc(uport->dev, port->rx_fifo, in setup_fifos()
906 static void qcom_geni_serial_shutdown(struct uart_port *uport) in qcom_geni_serial_shutdown() argument
908 disable_irq(uport->irq); in qcom_geni_serial_shutdown()
911 static int qcom_geni_serial_port_setup(struct uart_port *uport) in qcom_geni_serial_port_setup() argument
913 struct qcom_geni_serial_port *port = to_dev_port(uport, uport); in qcom_geni_serial_port_setup()
921 dev_err(uport->dev, "Invalid FW loaded, proto: %d\n", proto); in qcom_geni_serial_port_setup()
925 qcom_geni_serial_stop_rx(uport); in qcom_geni_serial_port_setup()
931 writel(rxstale, uport->membase + SE_UART_RX_STALE_CNT); in qcom_geni_serial_port_setup()
933 pin_swap = readl(uport->membase + SE_UART_IO_MACRO_CTRL); in qcom_geni_serial_port_setup()
944 writel(pin_swap, uport->membase + SE_UART_IO_MACRO_CTRL); in qcom_geni_serial_port_setup()
950 if (uart_console(uport)) in qcom_geni_serial_port_setup()
951 qcom_geni_serial_poll_tx_done(uport); in qcom_geni_serial_port_setup()
961 static int qcom_geni_serial_startup(struct uart_port *uport) in qcom_geni_serial_startup() argument
964 struct qcom_geni_serial_port *port = to_dev_port(uport, uport); in qcom_geni_serial_startup()
967 ret = qcom_geni_serial_port_setup(uport); in qcom_geni_serial_startup()
971 enable_irq(uport->irq); in qcom_geni_serial_startup()
1005 static void qcom_geni_serial_set_termios(struct uart_port *uport, in qcom_geni_serial_set_termios() argument
1017 struct qcom_geni_serial_port *port = to_dev_port(uport, uport); in qcom_geni_serial_set_termios()
1022 qcom_geni_serial_stop_rx(uport); in qcom_geni_serial_set_termios()
1024 baud = uart_get_baud_rate(uport, termios, old, 300, 4000000); in qcom_geni_serial_set_termios()
1037 uport->uartclk = clk_rate; in qcom_geni_serial_set_termios()
1039 dev_pm_opp_set_rate(uport->dev, clk_rate); in qcom_geni_serial_set_termios()
1054 tx_trans_cfg = readl(uport->membase + SE_UART_TX_TRANS_CFG); in qcom_geni_serial_set_termios()
1055 tx_parity_cfg = readl(uport->membase + SE_UART_TX_PARITY_CFG); in qcom_geni_serial_set_termios()
1056 rx_trans_cfg = readl(uport->membase + SE_UART_RX_TRANS_CFG); in qcom_geni_serial_set_termios()
1057 rx_parity_cfg = readl(uport->membase + SE_UART_RX_PARITY_CFG); in qcom_geni_serial_set_termios()
1096 uart_update_timeout(uport, termios->c_cflag, baud); in qcom_geni_serial_set_termios()
1098 if (!uart_console(uport)) in qcom_geni_serial_set_termios()
1100 uport->membase + SE_UART_LOOPBACK_CFG); in qcom_geni_serial_set_termios()
1101 writel(tx_trans_cfg, uport->membase + SE_UART_TX_TRANS_CFG); in qcom_geni_serial_set_termios()
1102 writel(tx_parity_cfg, uport->membase + SE_UART_TX_PARITY_CFG); in qcom_geni_serial_set_termios()
1103 writel(rx_trans_cfg, uport->membase + SE_UART_RX_TRANS_CFG); in qcom_geni_serial_set_termios()
1104 writel(rx_parity_cfg, uport->membase + SE_UART_RX_PARITY_CFG); in qcom_geni_serial_set_termios()
1105 writel(bits_per_char, uport->membase + SE_UART_TX_WORD_LEN); in qcom_geni_serial_set_termios()
1106 writel(bits_per_char, uport->membase + SE_UART_RX_WORD_LEN); in qcom_geni_serial_set_termios()
1107 writel(stop_bit_len, uport->membase + SE_UART_TX_STOP_BIT_LEN); in qcom_geni_serial_set_termios()
1108 writel(ser_clk_cfg, uport->membase + GENI_SER_M_CLK_CFG); in qcom_geni_serial_set_termios()
1109 writel(ser_clk_cfg, uport->membase + GENI_SER_S_CLK_CFG); in qcom_geni_serial_set_termios()
1111 qcom_geni_serial_start_rx(uport); in qcom_geni_serial_set_termios()
1114 static unsigned int qcom_geni_serial_tx_empty(struct uart_port *uport) in qcom_geni_serial_tx_empty() argument
1116 return !readl(uport->membase + SE_GENI_TX_FIFO_STATUS); in qcom_geni_serial_tx_empty()
1122 struct uart_port *uport; in qcom_geni_console_setup() local
1139 uport = &port->uport; in qcom_geni_console_setup()
1141 if (unlikely(!uport->membase)) in qcom_geni_console_setup()
1145 ret = qcom_geni_serial_port_setup(uport); in qcom_geni_console_setup()
1153 return uart_set_options(uport, co, baud, parity, bits, flow); in qcom_geni_console_setup()
1169 struct uart_port *uport = &dev->port; in qcom_geni_serial_earlycon_read() local
1174 ch = qcom_geni_serial_get_char(uport); in qcom_geni_serial_earlycon_read()
1199 struct uart_port *uport = &dev->port; in qcom_geni_serial_earlycon_setup() local
1208 if (!uport->membase) in qcom_geni_serial_earlycon_setup()
1211 uport->private_data = &earlycon_private_data; in qcom_geni_serial_earlycon_setup()
1214 se.base = uport->membase; in qcom_geni_serial_earlycon_setup()
1228 qcom_geni_serial_poll_tx_done(uport); in qcom_geni_serial_earlycon_setup()
1229 qcom_geni_serial_abort_rx(uport); in qcom_geni_serial_earlycon_setup()
1235 writel(tx_trans_cfg, uport->membase + SE_UART_TX_TRANS_CFG); in qcom_geni_serial_earlycon_setup()
1236 writel(tx_parity_cfg, uport->membase + SE_UART_TX_PARITY_CFG); in qcom_geni_serial_earlycon_setup()
1237 writel(rx_trans_cfg, uport->membase + SE_UART_RX_TRANS_CFG); in qcom_geni_serial_earlycon_setup()
1238 writel(rx_parity_cfg, uport->membase + SE_UART_RX_PARITY_CFG); in qcom_geni_serial_earlycon_setup()
1239 writel(bits_per_char, uport->membase + SE_UART_TX_WORD_LEN); in qcom_geni_serial_earlycon_setup()
1240 writel(bits_per_char, uport->membase + SE_UART_RX_WORD_LEN); in qcom_geni_serial_earlycon_setup()
1241 writel(stop_bit_len, uport->membase + SE_UART_TX_STOP_BIT_LEN); in qcom_geni_serial_earlycon_setup()
1297 static void qcom_geni_serial_pm(struct uart_port *uport, in qcom_geni_serial_pm() argument
1300 struct qcom_geni_serial_port *port = to_dev_port(uport, uport); in qcom_geni_serial_pm()
1309 dev_pm_opp_set_rate(uport->dev, port->clk_rate); in qcom_geni_serial_pm()
1314 dev_pm_opp_set_rate(uport->dev, 0); in qcom_geni_serial_pm()
1360 struct uart_port *uport; in qcom_geni_serial_probe() local
1397 uport = &port->uport; in qcom_geni_serial_probe()
1399 if (uport->private_data) in qcom_geni_serial_probe()
1402 uport->dev = &pdev->dev; in qcom_geni_serial_probe()
1415 uport->mapbase = res->start; in qcom_geni_serial_probe()
1422 port->rx_fifo = devm_kcalloc(uport->dev, in qcom_geni_serial_probe()
1439 port->name = devm_kasprintf(uport->dev, GFP_KERNEL, in qcom_geni_serial_probe()
1441 uart_console(uport) ? "console" : "uart", uport->line); in qcom_geni_serial_probe()
1448 uport->irq = irq; in qcom_geni_serial_probe()
1449 uport->has_sysrq = IS_ENABLED(CONFIG_SERIAL_QCOM_GENI_CONSOLE); in qcom_geni_serial_probe()
1471 uport->private_data = &port->private_data; in qcom_geni_serial_probe()
1475 irq_set_status_flags(uport->irq, IRQ_NOAUTOEN); in qcom_geni_serial_probe()
1476 ret = devm_request_irq(uport->dev, uport->irq, qcom_geni_serial_isr, in qcom_geni_serial_probe()
1477 IRQF_TRIGGER_HIGH, port->name, uport); in qcom_geni_serial_probe()
1479 dev_err(uport->dev, "Failed to get IRQ ret %d\n", ret); in qcom_geni_serial_probe()
1483 ret = uart_add_one_port(drv, uport); in qcom_geni_serial_probe()
1493 uart_remove_one_port(drv, uport); in qcom_geni_serial_probe()
1514 uart_remove_one_port(drv, &port->uport); in qcom_geni_serial_remove()
1521 struct uart_port *uport; in qcom_geni_serial_sys_suspend() local
1531 uport = &port->uport; in qcom_geni_serial_sys_suspend()
1532 private_data = uport->private_data; in qcom_geni_serial_sys_suspend()
1538 if (uart_console(uport)) { in qcom_geni_serial_sys_suspend()
1542 return uart_suspend_port(private_data->drv, uport); in qcom_geni_serial_sys_suspend()
1548 struct uart_port *uport; in qcom_geni_serial_sys_resume() local
1558 uport = &port->uport; in qcom_geni_serial_sys_resume()
1559 private_data = uport->private_data; in qcom_geni_serial_sys_resume()
1561 ret = uart_resume_port(private_data->drv, uport); in qcom_geni_serial_sys_resume()
1562 if (uart_console(uport)) { in qcom_geni_serial_sys_resume()