Lines Matching refs:stm32_port

40 static inline struct stm32_port *to_stm32_port(struct uart_port *port)  in to_stm32_port()
42 return container_of(port, struct stm32_port, port); in to_stm32_port()
103 struct stm32_port *stm32_port = to_stm32_port(port); in stm32_usart_config_rs485() local
104 const struct stm32_usart_offsets *ofs = &stm32_port->info->ofs; in stm32_usart_config_rs485()
105 const struct stm32_usart_config *cfg = &stm32_port->info->cfg; in stm32_usart_config_rs485()
172 struct stm32_port *stm32_port = to_stm32_port(port); in stm32_usart_pending_rx() local
173 const struct stm32_usart_offsets *ofs = &stm32_port->info->ofs; in stm32_usart_pending_rx()
179 if (threaded && stm32_port->rx_ch) { in stm32_usart_pending_rx()
180 status = dmaengine_tx_status(stm32_port->rx_ch, in stm32_usart_pending_rx()
181 stm32_port->rx_ch->cookie, in stm32_usart_pending_rx()
196 struct stm32_port *stm32_port = to_stm32_port(port); in stm32_usart_get_char() local
197 const struct stm32_usart_offsets *ofs = &stm32_port->info->ofs; in stm32_usart_get_char()
200 if (stm32_port->rx_ch) { in stm32_usart_get_char()
201 c = stm32_port->rx_buf[RX_BUF_L - (*last_res)--]; in stm32_usart_get_char()
207 c &= stm32_port->rdr_mask; in stm32_usart_get_char()
216 struct stm32_port *stm32_port = to_stm32_port(port); in stm32_usart_receive_chars() local
217 const struct stm32_usart_offsets *ofs = &stm32_port->info->ofs; in stm32_usart_receive_chars()
224 while (stm32_usart_pending_rx(port, &sr, &stm32_port->last_res, in stm32_usart_receive_chars()
244 c = stm32_usart_get_char(port, &sr, &stm32_port->last_res); in stm32_usart_receive_chars()
287 struct stm32_port *stm32port = to_stm32_port(port); in stm32_usart_tx_dma_complete()
303 struct stm32_port *stm32_port = to_stm32_port(port); in stm32_usart_tx_interrupt_enable() local
304 const struct stm32_usart_offsets *ofs = &stm32_port->info->ofs; in stm32_usart_tx_interrupt_enable()
310 if (stm32_port->fifoen) in stm32_usart_tx_interrupt_enable()
318 struct stm32_port *stm32_port = to_stm32_port(port); in stm32_usart_tx_interrupt_disable() local
319 const struct stm32_usart_offsets *ofs = &stm32_port->info->ofs; in stm32_usart_tx_interrupt_disable()
321 if (stm32_port->fifoen) in stm32_usart_tx_interrupt_disable()
329 struct stm32_port *stm32_port = to_stm32_port(port); in stm32_usart_transmit_chars_pio() local
330 const struct stm32_usart_offsets *ofs = &stm32_port->info->ofs; in stm32_usart_transmit_chars_pio()
333 if (stm32_port->tx_dma_busy) { in stm32_usart_transmit_chars_pio()
335 stm32_port->tx_dma_busy = false; in stm32_usart_transmit_chars_pio()
356 struct stm32_port *stm32port = to_stm32_port(port); in stm32_usart_transmit_chars_dma()
422 struct stm32_port *stm32_port = to_stm32_port(port); in stm32_usart_transmit_chars() local
423 const struct stm32_usart_offsets *ofs = &stm32_port->info->ofs; in stm32_usart_transmit_chars()
429 if (stm32_port->tx_dma_busy) in stm32_usart_transmit_chars()
444 if (stm32_port->tx_dma_busy) in stm32_usart_transmit_chars()
459 if (stm32_port->tx_ch) in stm32_usart_transmit_chars()
475 struct stm32_port *stm32_port = to_stm32_port(port); in stm32_usart_interrupt() local
476 const struct stm32_usart_offsets *ofs = &stm32_port->info->ofs; in stm32_usart_interrupt()
494 if ((sr & USART_SR_RXNE) && !(stm32_port->rx_ch)) in stm32_usart_interrupt()
497 if ((sr & USART_SR_TXE) && !(stm32_port->tx_ch)) { in stm32_usart_interrupt()
503 if (stm32_port->rx_ch) in stm32_usart_interrupt()
512 struct stm32_port *stm32_port = to_stm32_port(port); in stm32_usart_threaded_interrupt() local
514 if (stm32_port->rx_ch) in stm32_usart_threaded_interrupt()
522 struct stm32_port *stm32_port = to_stm32_port(port); in stm32_usart_tx_empty() local
523 const struct stm32_usart_offsets *ofs = &stm32_port->info->ofs; in stm32_usart_tx_empty()
533 struct stm32_port *stm32_port = to_stm32_port(port); in stm32_usart_set_mctrl() local
534 const struct stm32_usart_offsets *ofs = &stm32_port->info->ofs; in stm32_usart_set_mctrl()
541 mctrl_gpio_set(stm32_port->gpios, mctrl); in stm32_usart_set_mctrl()
546 struct stm32_port *stm32_port = to_stm32_port(port); in stm32_usart_get_mctrl() local
552 return mctrl_gpio_get(stm32_port->gpios, &ret); in stm32_usart_get_mctrl()
568 struct stm32_port *stm32_port = to_stm32_port(port); in stm32_usart_stop_tx() local
575 mctrl_gpio_set(stm32_port->gpios, in stm32_usart_stop_tx()
576 stm32_port->port.mctrl & ~TIOCM_RTS); in stm32_usart_stop_tx()
578 mctrl_gpio_set(stm32_port->gpios, in stm32_usart_stop_tx()
579 stm32_port->port.mctrl | TIOCM_RTS); in stm32_usart_stop_tx()
587 struct stm32_port *stm32_port = to_stm32_port(port); in stm32_usart_start_tx() local
596 mctrl_gpio_set(stm32_port->gpios, in stm32_usart_start_tx()
597 stm32_port->port.mctrl | TIOCM_RTS); in stm32_usart_start_tx()
599 mctrl_gpio_set(stm32_port->gpios, in stm32_usart_start_tx()
600 stm32_port->port.mctrl & ~TIOCM_RTS); in stm32_usart_start_tx()
610 struct stm32_port *stm32_port = to_stm32_port(port); in stm32_usart_throttle() local
611 const struct stm32_usart_offsets *ofs = &stm32_port->info->ofs; in stm32_usart_throttle()
615 stm32_usart_clr_bits(port, ofs->cr1, stm32_port->cr1_irq); in stm32_usart_throttle()
616 if (stm32_port->cr3_irq) in stm32_usart_throttle()
617 stm32_usart_clr_bits(port, ofs->cr3, stm32_port->cr3_irq); in stm32_usart_throttle()
625 struct stm32_port *stm32_port = to_stm32_port(port); in stm32_usart_unthrottle() local
626 const struct stm32_usart_offsets *ofs = &stm32_port->info->ofs; in stm32_usart_unthrottle()
630 stm32_usart_set_bits(port, ofs->cr1, stm32_port->cr1_irq); in stm32_usart_unthrottle()
631 if (stm32_port->cr3_irq) in stm32_usart_unthrottle()
632 stm32_usart_set_bits(port, ofs->cr3, stm32_port->cr3_irq); in stm32_usart_unthrottle()
640 struct stm32_port *stm32_port = to_stm32_port(port); in stm32_usart_stop_rx() local
641 const struct stm32_usart_offsets *ofs = &stm32_port->info->ofs; in stm32_usart_stop_rx()
643 stm32_usart_clr_bits(port, ofs->cr1, stm32_port->cr1_irq); in stm32_usart_stop_rx()
644 if (stm32_port->cr3_irq) in stm32_usart_stop_rx()
645 stm32_usart_clr_bits(port, ofs->cr3, stm32_port->cr3_irq); in stm32_usart_stop_rx()
655 struct stm32_port *stm32_port = to_stm32_port(port); in stm32_usart_startup() local
656 const struct stm32_usart_offsets *ofs = &stm32_port->info->ofs; in stm32_usart_startup()
657 const struct stm32_usart_config *cfg = &stm32_port->info->cfg; in stm32_usart_startup()
674 val = stm32_port->cr1_irq | USART_CR1_RE | BIT(cfg->uart_enable_bit); in stm32_usart_startup()
682 struct stm32_port *stm32_port = to_stm32_port(port); in stm32_usart_shutdown() local
683 const struct stm32_usart_offsets *ofs = &stm32_port->info->ofs; in stm32_usart_shutdown()
684 const struct stm32_usart_config *cfg = &stm32_port->info->cfg; in stm32_usart_shutdown()
692 val |= stm32_port->cr1_irq | USART_CR1_RE; in stm32_usart_shutdown()
694 if (stm32_port->fifoen) in stm32_usart_shutdown()
748 struct stm32_port *stm32_port = to_stm32_port(port); in stm32_usart_set_termios() local
749 const struct stm32_usart_offsets *ofs = &stm32_port->info->ofs; in stm32_usart_set_termios()
750 const struct stm32_usart_config *cfg = &stm32_port->info->cfg; in stm32_usart_set_termios()
759 if (!stm32_port->hw_flow_control) in stm32_usart_set_termios()
784 if (stm32_port->fifoen) in stm32_usart_set_termios()
791 if (stm32_port->fifoen) { in stm32_usart_set_termios()
801 stm32_port->rdr_mask = (BIT(bits) - 1); in stm32_usart_set_termios()
832 if (ofs->rtor != UNDEF_REG && (stm32_port->rx_ch || in stm32_usart_set_termios()
833 stm32_port->fifoen)) { in stm32_usart_set_termios()
840 stm32_port->cr1_irq = USART_CR1_RTOIE; in stm32_usart_set_termios()
844 if (!stm32_port->rx_ch) in stm32_usart_set_termios()
845 stm32_port->cr3_irq = USART_CR3_RXFTIE; in stm32_usart_set_termios()
848 cr1 |= stm32_port->cr1_irq; in stm32_usart_set_termios()
849 cr3 |= stm32_port->cr3_irq; in stm32_usart_set_termios()
908 if (stm32_port->rx_ch) in stm32_usart_set_termios()
930 if (stm32_port->wakeirq > 0) { in stm32_usart_set_termios()
979 struct stm32_port *stm32port = container_of(port, in stm32_usart_pm()
980 struct stm32_port, port); in stm32_usart_pm()
1020 static int stm32_usart_init_port(struct stm32_port *stm32port, in stm32_usart_init_port()
1099 static struct stm32_port *stm32_usart_of_get_port(struct platform_device *pdev) in stm32_usart_of_get_port()
1137 static int stm32_usart_of_dma_rx_probe(struct stm32_port *stm32port, in stm32_usart_of_dma_rx_probe()
1219 static int stm32_usart_of_dma_tx_probe(struct stm32_port *stm32port, in stm32_usart_of_dma_tx_probe()
1272 struct stm32_port *stm32port; in stm32_usart_serial_probe()
1363 struct stm32_port *stm32_port = to_stm32_port(port); in stm32_usart_serial_remove() local
1364 const struct stm32_usart_offsets *ofs = &stm32_port->info->ofs; in stm32_usart_serial_remove()
1378 if (stm32_port->rx_ch) { in stm32_usart_serial_remove()
1379 dmaengine_terminate_async(stm32_port->rx_ch); in stm32_usart_serial_remove()
1380 dma_release_channel(stm32_port->rx_ch); in stm32_usart_serial_remove()
1383 if (stm32_port->rx_dma_buf) in stm32_usart_serial_remove()
1385 RX_BUF_L, stm32_port->rx_buf, in stm32_usart_serial_remove()
1386 stm32_port->rx_dma_buf); in stm32_usart_serial_remove()
1390 if (stm32_port->tx_ch) { in stm32_usart_serial_remove()
1391 dmaengine_terminate_async(stm32_port->tx_ch); in stm32_usart_serial_remove()
1392 dma_release_channel(stm32_port->tx_ch); in stm32_usart_serial_remove()
1395 if (stm32_port->tx_dma_buf) in stm32_usart_serial_remove()
1397 TX_BUF_L, stm32_port->tx_buf, in stm32_usart_serial_remove()
1398 stm32_port->tx_dma_buf); in stm32_usart_serial_remove()
1400 if (stm32_port->wakeirq > 0) { in stm32_usart_serial_remove()
1405 clk_disable_unprepare(stm32_port->clk); in stm32_usart_serial_remove()
1413 struct stm32_port *stm32_port = to_stm32_port(port); in stm32_usart_console_putchar() local
1414 const struct stm32_usart_offsets *ofs = &stm32_port->info->ofs; in stm32_usart_console_putchar()
1426 struct stm32_port *stm32_port = to_stm32_port(port); in stm32_usart_console_write() local
1427 const struct stm32_usart_offsets *ofs = &stm32_port->info->ofs; in stm32_usart_console_write()
1428 const struct stm32_usart_config *cfg = &stm32_port->info->cfg; in stm32_usart_console_write()
1459 struct stm32_port *stm32port; in stm32_usart_console_setup()
1513 struct stm32_port *stm32_port = to_stm32_port(port); in stm32_usart_serial_en_wakeup() local
1514 const struct stm32_usart_offsets *ofs = &stm32_port->info->ofs; in stm32_usart_serial_en_wakeup()
1516 if (stm32_port->wakeirq <= 0) in stm32_usart_serial_en_wakeup()
1574 struct stm32_port *stm32port = container_of(port, in stm32_usart_runtime_suspend()
1575 struct stm32_port, port); in stm32_usart_runtime_suspend()
1585 struct stm32_port *stm32port = container_of(port, in stm32_usart_runtime_resume()
1586 struct stm32_port, port); in stm32_usart_runtime_resume()