Lines Matching refs:sci_port
79 struct sci_port { struct
132 static struct sci_port sci_ports[SCI_NPORTS]; argument
135 static inline struct sci_port *
138 return container_of(uart, struct sci_port, port); in to_sci_port()
438 static void sci_port_enable(struct sci_port *sci_port) in sci_port_enable() argument
440 if (!sci_port->port.dev) in sci_port_enable()
443 pm_runtime_get_sync(sci_port->port.dev); in sci_port_enable()
445 clk_prepare_enable(sci_port->iclk); in sci_port_enable()
446 sci_port->port.uartclk = clk_get_rate(sci_port->iclk); in sci_port_enable()
447 clk_prepare_enable(sci_port->fclk); in sci_port_enable()
450 static void sci_port_disable(struct sci_port *sci_port) in sci_port_disable() argument
452 if (!sci_port->port.dev) in sci_port_disable()
460 del_timer_sync(&sci_port->break_timer); in sci_port_disable()
461 sci_port->break_flag = 0; in sci_port_disable()
463 clk_disable_unprepare(sci_port->fclk); in sci_port_disable()
464 clk_disable_unprepare(sci_port->iclk); in sci_port_disable()
466 pm_runtime_put_sync(sci_port->port.dev); in sci_port_disable()
514 struct sci_port *s = to_sci_port(port); in sci_init_pins()
583 struct sci_port *s = to_sci_port(port); in sci_rxd_in()
659 struct sci_port *sci_port = to_sci_port(port); in sci_receive_chars() local
680 sci_port->break_flag) in sci_receive_chars()
691 if (sci_port->break_flag) { in sci_receive_chars()
700 sci_port->break_flag = 0; in sci_receive_chars()
755 static inline void sci_schedule_break_timer(struct sci_port *port) in sci_schedule_break_timer()
763 struct sci_port *port = (struct sci_port *)data; in sci_break_timer()
781 struct sci_port *s = to_sci_port(port); in sci_handle_errors()
797 struct sci_port *sci_port = to_sci_port(port); in sci_handle_errors() local
799 if (!sci_port->break_flag) { in sci_handle_errors()
802 sci_port->break_flag = 1; in sci_handle_errors()
803 sci_schedule_break_timer(sci_port); in sci_handle_errors()
845 struct sci_port *s = to_sci_port(port); in sci_handle_fifo_overrun()
891 struct sci_port *s = to_sci_port(port); in sci_handle_breaks()
923 struct sci_port *s = to_sci_port(port); in sci_rx_interrupt()
1019 struct sci_port *s = to_sci_port(port); in sci_mpxed_interrupt()
1075 struct sci_port *sci_port; in sci_notifier() local
1078 sci_port = container_of(self, struct sci_port, freq_transition); in sci_notifier()
1081 struct uart_port *port = &sci_port->port; in sci_notifier()
1084 port->uartclk = clk_get_rate(sci_port->iclk); in sci_notifier()
1127 static int sci_request_irq(struct sci_port *port) in sci_request_irq()
1180 static void sci_free_irq(struct sci_port *port) in sci_free_irq()
1256 struct sci_port *s = arg; in sci_dma_tx_complete()
1291 static int sci_dma_rx_push(struct sci_port *s, size_t count) in sci_dma_rx_push()
1325 struct sci_port *s = arg; in sci_dma_rx_complete()
1347 static void sci_rx_dma_release(struct sci_port *s, bool enable_pio) in sci_rx_dma_release()
1362 static void sci_tx_dma_release(struct sci_port *s, bool enable_pio) in sci_tx_dma_release()
1374 static void sci_submit_rx(struct sci_port *s) in sci_submit_rx()
1418 struct sci_port *s = container_of(work, struct sci_port, work_rx); in work_fn_rx()
1473 struct sci_port *s = container_of(work, struct sci_port, work_tx); in work_fn_tx()
1530 struct sci_port *s = to_sci_port(port); in sci_start_tx()
1601 struct sci_port *s = to_sci_port(port); in sci_break_ctl()
1643 struct sci_port *s = (struct sci_port *)arg; in rx_timer_fn()
1658 struct sci_port *s = to_sci_port(port); in sci_request_dma()
1748 struct sci_port *s = to_sci_port(port); in sci_free_dma()
1767 struct sci_port *s = to_sci_port(port); in sci_startup()
1789 struct sci_port *s = to_sci_port(port); in sci_shutdown()
1803 static unsigned int sci_scbrr_calc(struct sci_port *s, unsigned int bps, in sci_scbrr_calc()
1908 struct sci_port *s = to_sci_port(port); in sci_set_termios()
2044 struct sci_port *sci_port = to_sci_port(port); in sci_pm() local
2048 sci_port_disable(sci_port); in sci_pm()
2051 sci_port_enable(sci_port); in sci_pm()
2150 struct sci_port *sport = to_sci_port(port); in sci_config_port()
2190 struct sci_port *sci_port, unsigned int index, in sci_init_single() argument
2193 struct uart_port *port = &sci_port->port; in sci_init_single()
2199 sci_port->cfg = p; in sci_init_single()
2211 for (i = 0; i < ARRAY_SIZE(sci_port->irqs); ++i) in sci_init_single()
2212 sci_port->irqs[i] = platform_get_irq(dev, i); in sci_init_single()
2219 if (sci_port->irqs[0] < 0) in sci_init_single()
2222 if (sci_port->irqs[1] < 0) { in sci_init_single()
2223 sci_port->irqs[1] = sci_port->irqs[0]; in sci_init_single()
2224 sci_port->irqs[2] = sci_port->irqs[0]; in sci_init_single()
2225 sci_port->irqs[3] = sci_port->irqs[0]; in sci_init_single()
2237 sci_port->overrun_bit = 9; in sci_init_single()
2243 sci_port->overrun_bit = 0; in sci_init_single()
2247 sci_port->overrun_bit = 9; in sci_init_single()
2253 sci_port->overrun_bit = 9; in sci_init_single()
2256 sci_port->overrun_bit = 0; in sci_init_single()
2262 sci_port->overrun_bit = 5; in sci_init_single()
2271 sci_port->sampling_rate = p->sampling_rate ? p->sampling_rate in sci_init_single()
2275 sci_port->iclk = clk_get(&dev->dev, "sci_ick"); in sci_init_single()
2276 if (IS_ERR(sci_port->iclk)) { in sci_init_single()
2277 sci_port->iclk = clk_get(&dev->dev, "peripheral_clk"); in sci_init_single()
2278 if (IS_ERR(sci_port->iclk)) { in sci_init_single()
2280 return PTR_ERR(sci_port->iclk); in sci_init_single()
2288 sci_port->fclk = clk_get(&dev->dev, "sci_fck"); in sci_init_single()
2289 if (IS_ERR(sci_port->fclk)) in sci_init_single()
2290 sci_port->fclk = NULL; in sci_init_single()
2297 sci_port->break_timer.data = (unsigned long)sci_port; in sci_init_single()
2298 sci_port->break_timer.function = sci_break_timer; in sci_init_single()
2299 init_timer(&sci_port->break_timer); in sci_init_single()
2304 sci_port->error_mask = (p->type == PORT_SCI) ? in sci_init_single()
2316 sci_port->error_mask |= 1 << sci_port->overrun_bit; in sci_init_single()
2329 port->irq = sci_port->irqs[SCIx_RXI_IRQ]; in sci_init_single()
2342 static void sci_cleanup_single(struct sci_port *port) in sci_cleanup_single()
2363 struct sci_port *sci_port = &sci_ports[co->index]; in serial_console_write() local
2364 struct uart_port *port = &sci_port->port; in serial_console_write()
2379 serial_port_out(port, SCSCR, sci_port->cfg->scscr); in serial_console_write()
2398 struct sci_port *sci_port; in serial_console_setup() local
2412 sci_port = &sci_ports[co->index]; in serial_console_setup()
2413 port = &sci_port->port; in serial_console_setup()
2496 struct sci_port *port = platform_get_drvdata(dev); in sci_remove()
2588 struct sci_port *sciport) in sci_probe_single()
2616 struct sci_port *sp; in sci_probe()
2668 struct sci_port *sport = dev_get_drvdata(dev); in sci_suspend()
2678 struct sci_port *sport = dev_get_drvdata(dev); in sci_resume()