Lines Matching refs:sci_port

78 struct sci_port {  struct
122 static struct sci_port sci_ports[SCI_NPORTS]; argument
125 static inline struct sci_port *
128 return container_of(uart, struct sci_port, port); in to_sci_port()
450 static void sci_port_enable(struct sci_port *sci_port) in sci_port_enable() argument
452 if (!sci_port->port.dev) in sci_port_enable()
455 pm_runtime_get_sync(sci_port->port.dev); in sci_port_enable()
457 clk_prepare_enable(sci_port->iclk); in sci_port_enable()
458 sci_port->port.uartclk = clk_get_rate(sci_port->iclk); in sci_port_enable()
459 clk_prepare_enable(sci_port->fclk); in sci_port_enable()
462 static void sci_port_disable(struct sci_port *sci_port) in sci_port_disable() argument
464 if (!sci_port->port.dev) in sci_port_disable()
472 del_timer_sync(&sci_port->break_timer); in sci_port_disable()
473 sci_port->break_flag = 0; in sci_port_disable()
475 clk_disable_unprepare(sci_port->fclk); in sci_port_disable()
476 clk_disable_unprepare(sci_port->iclk); in sci_port_disable()
478 pm_runtime_put_sync(sci_port->port.dev); in sci_port_disable()
495 struct sci_port *s = to_sci_port(port); in sci_start_tx()
625 struct sci_port *s = to_sci_port(port); in sci_init_pins()
694 struct sci_port *s = to_sci_port(port); in sci_rxd_in()
770 struct sci_port *sci_port = to_sci_port(port); in sci_receive_chars() local
791 sci_port->break_flag) in sci_receive_chars()
802 if (sci_port->break_flag) { in sci_receive_chars()
811 sci_port->break_flag = 0; in sci_receive_chars()
866 static inline void sci_schedule_break_timer(struct sci_port *port) in sci_schedule_break_timer()
874 struct sci_port *port = (struct sci_port *)data; in sci_break_timer()
892 struct sci_port *s = to_sci_port(port); in sci_handle_errors()
908 struct sci_port *sci_port = to_sci_port(port); in sci_handle_errors() local
910 if (!sci_port->break_flag) { in sci_handle_errors()
913 sci_port->break_flag = 1; in sci_handle_errors()
914 sci_schedule_break_timer(sci_port); in sci_handle_errors()
956 struct sci_port *s = to_sci_port(port); in sci_handle_fifo_overrun()
987 struct sci_port *s = to_sci_port(port); in sci_handle_breaks()
1018 struct sci_port *s = arg; in sci_dma_tx_complete()
1050 static int sci_dma_rx_push(struct sci_port *s, void *buf, size_t count) in sci_dma_rx_push()
1068 static int sci_dma_rx_find_active(struct sci_port *s) in sci_dma_rx_find_active()
1081 static void sci_rx_dma_release(struct sci_port *s, bool enable_pio) in sci_rx_dma_release()
1101 struct sci_port *s = arg; in sci_dma_rx_complete()
1149 static void sci_tx_dma_release(struct sci_port *s, bool enable_pio) in sci_tx_dma_release()
1167 static void sci_submit_rx(struct sci_port *s) in sci_submit_rx()
1209 struct sci_port *s = container_of(work, struct sci_port, work_tx); in work_fn_tx()
1263 struct sci_port *s = (struct sci_port *)arg; in rx_timer_fn()
1379 struct sci_port *s = to_sci_port(port); in sci_request_dma()
1452 struct sci_port *s = to_sci_port(port); in sci_free_dma()
1473 struct sci_port *s = to_sci_port(port); in sci_rx_interrupt()
1523 struct sci_port *s = to_sci_port(port); in sci_er_interrupt()
1562 struct sci_port *s = to_sci_port(port); in sci_mpxed_interrupt()
1642 static int sci_request_irq(struct sci_port *port) in sci_request_irq()
1692 static void sci_free_irq(struct sci_port *port) in sci_free_irq()
1767 struct sci_port *s = to_sci_port(port); in sci_break_ctl()
1797 struct sci_port *s = to_sci_port(port); in sci_startup()
1819 struct sci_port *s = to_sci_port(port); in sci_shutdown()
1841 static unsigned int sci_scbrr_calc(struct sci_port *s, unsigned int bps, in sci_scbrr_calc()
1946 struct sci_port *s = to_sci_port(port); in sci_set_termios()
2082 struct sci_port *sci_port = to_sci_port(port); in sci_pm() local
2086 sci_port_disable(sci_port); in sci_pm()
2089 sci_port_enable(sci_port); in sci_pm()
2116 struct sci_port *sport = to_sci_port(port); in sci_remap_port()
2144 struct sci_port *sport = to_sci_port(port); in sci_release_port()
2157 struct sci_port *sport = to_sci_port(port); in sci_request_port()
2179 struct sci_port *sport = to_sci_port(port); in sci_config_port()
2219 struct sci_port *sci_port, unsigned int index, in sci_init_single() argument
2222 struct uart_port *port = &sci_port->port; in sci_init_single()
2227 sci_port->cfg = p; in sci_init_single()
2238 sci_port->reg_size = resource_size(res); in sci_init_single()
2240 for (i = 0; i < ARRAY_SIZE(sci_port->irqs); ++i) in sci_init_single()
2241 sci_port->irqs[i] = platform_get_irq(dev, i); in sci_init_single()
2248 if (sci_port->irqs[0] < 0) in sci_init_single()
2251 if (sci_port->irqs[1] < 0) { in sci_init_single()
2252 sci_port->irqs[1] = sci_port->irqs[0]; in sci_init_single()
2253 sci_port->irqs[2] = sci_port->irqs[0]; in sci_init_single()
2254 sci_port->irqs[3] = sci_port->irqs[0]; in sci_init_single()
2266 sci_port->overrun_reg = SCxSR; in sci_init_single()
2267 sci_port->overrun_mask = SCIFA_ORER; in sci_init_single()
2268 sci_port->sampling_rate = 16; in sci_init_single()
2272 sci_port->overrun_reg = SCLSR; in sci_init_single()
2273 sci_port->overrun_mask = SCLSR_ORER; in sci_init_single()
2274 sci_port->sampling_rate = 0; in sci_init_single()
2278 sci_port->overrun_reg = SCxSR; in sci_init_single()
2279 sci_port->overrun_mask = SCIFA_ORER; in sci_init_single()
2280 sci_port->sampling_rate = 16; in sci_init_single()
2285 sci_port->overrun_reg = SCxSR; in sci_init_single()
2286 sci_port->overrun_mask = SCIFA_ORER; in sci_init_single()
2287 sci_port->sampling_rate = 16; in sci_init_single()
2289 sci_port->overrun_reg = SCLSR; in sci_init_single()
2290 sci_port->overrun_mask = SCLSR_ORER; in sci_init_single()
2291 sci_port->sampling_rate = 32; in sci_init_single()
2296 sci_port->overrun_reg = SCxSR; in sci_init_single()
2297 sci_port->overrun_mask = SCI_ORER; in sci_init_single()
2298 sci_port->sampling_rate = 32; in sci_init_single()
2307 sci_port->sampling_rate = p->sampling_rate; in sci_init_single()
2310 sci_port->iclk = clk_get(&dev->dev, "sci_ick"); in sci_init_single()
2311 if (IS_ERR(sci_port->iclk)) { in sci_init_single()
2312 sci_port->iclk = clk_get(&dev->dev, "peripheral_clk"); in sci_init_single()
2313 if (IS_ERR(sci_port->iclk)) { in sci_init_single()
2315 return PTR_ERR(sci_port->iclk); in sci_init_single()
2323 sci_port->fclk = clk_get(&dev->dev, "sci_fck"); in sci_init_single()
2324 if (IS_ERR(sci_port->fclk)) in sci_init_single()
2325 sci_port->fclk = NULL; in sci_init_single()
2332 sci_port->break_timer.data = (unsigned long)sci_port; in sci_init_single()
2333 sci_port->break_timer.function = sci_break_timer; in sci_init_single()
2334 init_timer(&sci_port->break_timer); in sci_init_single()
2340 sci_port->error_mask = SCI_DEFAULT_ERROR_MASK; in sci_init_single()
2341 sci_port->error_clear = SCI_ERROR_CLEAR; in sci_init_single()
2343 sci_port->error_mask = SCIF_DEFAULT_ERROR_MASK; in sci_init_single()
2344 sci_port->error_clear = SCIF_ERROR_CLEAR; in sci_init_single()
2351 if (sci_port->overrun_reg == SCxSR) { in sci_init_single()
2352 sci_port->error_mask |= sci_port->overrun_mask; in sci_init_single()
2353 sci_port->error_clear &= ~sci_port->overrun_mask; in sci_init_single()
2367 port->irq = sci_port->irqs[SCIx_RXI_IRQ]; in sci_init_single()
2380 static void sci_cleanup_single(struct sci_port *port) in sci_cleanup_single()
2401 struct sci_port *sci_port = &sci_ports[co->index]; in serial_console_write() local
2402 struct uart_port *port = &sci_port->port; in serial_console_write()
2417 serial_port_out(port, SCSCR, sci_port->cfg->scscr); in serial_console_write()
2436 struct sci_port *sci_port; in serial_console_setup() local
2450 sci_port = &sci_ports[co->index]; in serial_console_setup()
2451 port = &sci_port->port; in serial_console_setup()
2534 struct sci_port *port = platform_get_drvdata(dev); in sci_remove()
2627 struct sci_port *sciport) in sci_probe_single()
2655 struct sci_port *sp; in sci_probe()
2697 struct sci_port *sport = dev_get_drvdata(dev); in sci_suspend()
2707 struct sci_port *sport = dev_get_drvdata(dev); in sci_resume()