Lines Matching refs:atmel_port

243 	struct atmel_uart_port *atmel_port = to_atmel_uart_port(port);  in atmel_use_pdc_rx()  local
245 return atmel_port->use_pdc_rx; in atmel_use_pdc_rx()
250 struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); in atmel_use_pdc_tx() local
252 return atmel_port->use_pdc_tx; in atmel_use_pdc_tx()
268 struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); in atmel_use_dma_tx() local
270 return atmel_port->use_dma_tx; in atmel_use_dma_tx()
275 struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); in atmel_use_dma_rx() local
277 return atmel_port->use_dma_rx; in atmel_use_dma_rx()
282 struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); in atmel_use_fifo() local
284 return atmel_port->fifo_size; in atmel_use_fifo()
289 struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); in atmel_get_lines_status() local
294 mctrl_gpio_get(atmel_port->gpios, &ret); in atmel_get_lines_status()
296 if (!IS_ERR_OR_NULL(mctrl_gpio_to_gpiod(atmel_port->gpios, in atmel_get_lines_status()
304 if (!IS_ERR_OR_NULL(mctrl_gpio_to_gpiod(atmel_port->gpios, in atmel_get_lines_status()
312 if (!IS_ERR_OR_NULL(mctrl_gpio_to_gpiod(atmel_port->gpios, in atmel_get_lines_status()
320 if (!IS_ERR_OR_NULL(mctrl_gpio_to_gpiod(atmel_port->gpios, in atmel_get_lines_status()
335 struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); in atmel_config_rs485() local
339 atmel_uart_writel(port, ATMEL_US_IDR, atmel_port->tx_done_mask); in atmel_config_rs485()
350 atmel_port->tx_done_mask = ATMEL_US_TXEMPTY; in atmel_config_rs485()
357 atmel_port->tx_done_mask = ATMEL_US_ENDTX | in atmel_config_rs485()
360 atmel_port->tx_done_mask = ATMEL_US_TXRDY; in atmel_config_rs485()
365 atmel_uart_writel(port, ATMEL_US_IER, atmel_port->tx_done_mask); in atmel_config_rs485()
388 struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); in atmel_set_mctrl() local
425 mctrl_gpio_set(atmel_port->gpios, mctrl); in atmel_set_mctrl()
442 struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); in atmel_get_mctrl() local
459 return mctrl_gpio_get(atmel_port->gpios, &ret); in atmel_get_mctrl()
467 struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); in atmel_stop_tx() local
474 atmel_uart_writel(port, ATMEL_US_IDR, atmel_port->tx_done_mask); in atmel_stop_tx()
486 struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); in atmel_start_tx() local
502 atmel_uart_writel(port, ATMEL_US_IER, atmel_port->tx_done_mask); in atmel_start_tx()
549 struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); in atmel_enable_ms() local
555 if (atmel_port->ms_irq_enabled) in atmel_enable_ms()
558 atmel_port->ms_irq_enabled = true; in atmel_enable_ms()
560 if (atmel_port->gpio_irq[UART_GPIO_CTS] >= 0) in atmel_enable_ms()
561 enable_irq(atmel_port->gpio_irq[UART_GPIO_CTS]); in atmel_enable_ms()
565 if (atmel_port->gpio_irq[UART_GPIO_DSR] >= 0) in atmel_enable_ms()
566 enable_irq(atmel_port->gpio_irq[UART_GPIO_DSR]); in atmel_enable_ms()
570 if (atmel_port->gpio_irq[UART_GPIO_RI] >= 0) in atmel_enable_ms()
571 enable_irq(atmel_port->gpio_irq[UART_GPIO_RI]); in atmel_enable_ms()
575 if (atmel_port->gpio_irq[UART_GPIO_DCD] >= 0) in atmel_enable_ms()
576 enable_irq(atmel_port->gpio_irq[UART_GPIO_DCD]); in atmel_enable_ms()
588 struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); in atmel_disable_ms() local
594 if (!atmel_port->ms_irq_enabled) in atmel_disable_ms()
597 atmel_port->ms_irq_enabled = false; in atmel_disable_ms()
599 if (atmel_port->gpio_irq[UART_GPIO_CTS] >= 0) in atmel_disable_ms()
600 disable_irq(atmel_port->gpio_irq[UART_GPIO_CTS]); in atmel_disable_ms()
604 if (atmel_port->gpio_irq[UART_GPIO_DSR] >= 0) in atmel_disable_ms()
605 disable_irq(atmel_port->gpio_irq[UART_GPIO_DSR]); in atmel_disable_ms()
609 if (atmel_port->gpio_irq[UART_GPIO_RI] >= 0) in atmel_disable_ms()
610 disable_irq(atmel_port->gpio_irq[UART_GPIO_RI]); in atmel_disable_ms()
614 if (atmel_port->gpio_irq[UART_GPIO_DCD] >= 0) in atmel_disable_ms()
615 disable_irq(atmel_port->gpio_irq[UART_GPIO_DCD]); in atmel_disable_ms()
642 struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); in atmel_buffer_rx_char() local
643 struct circ_buf *ring = &atmel_port->rx_ring; in atmel_buffer_rx_char()
686 struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); in atmel_rx_chars() local
699 || atmel_port->break_active)) { in atmel_rx_chars()
705 && !atmel_port->break_active) { in atmel_rx_chars()
706 atmel_port->break_active = 1; in atmel_rx_chars()
720 atmel_port->break_active = 0; in atmel_rx_chars()
728 tasklet_schedule(&atmel_port->tasklet); in atmel_rx_chars()
738 struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); in atmel_tx_chars() local
741 (atmel_uart_readl(port, ATMEL_US_CSR) & atmel_port->tx_done_mask)) { in atmel_tx_chars()
750 atmel_port->tx_done_mask) { in atmel_tx_chars()
764 atmel_port->tx_done_mask); in atmel_tx_chars()
769 struct atmel_uart_port *atmel_port = arg; in atmel_complete_tx_dma() local
770 struct uart_port *port = &atmel_port->uart; in atmel_complete_tx_dma()
772 struct dma_chan *chan = atmel_port->chan_tx; in atmel_complete_tx_dma()
779 xmit->tail += atmel_port->tx_len; in atmel_complete_tx_dma()
782 port->icount.tx += atmel_port->tx_len; in atmel_complete_tx_dma()
784 spin_lock_irq(&atmel_port->lock_tx); in atmel_complete_tx_dma()
785 async_tx_ack(atmel_port->desc_tx); in atmel_complete_tx_dma()
786 atmel_port->cookie_tx = -EINVAL; in atmel_complete_tx_dma()
787 atmel_port->desc_tx = NULL; in atmel_complete_tx_dma()
788 spin_unlock_irq(&atmel_port->lock_tx); in atmel_complete_tx_dma()
799 tasklet_schedule(&atmel_port->tasklet); in atmel_complete_tx_dma()
806 struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); in atmel_release_tx_dma() local
807 struct dma_chan *chan = atmel_port->chan_tx; in atmel_release_tx_dma()
812 dma_unmap_sg(port->dev, &atmel_port->sg_tx, 1, in atmel_release_tx_dma()
816 atmel_port->desc_tx = NULL; in atmel_release_tx_dma()
817 atmel_port->chan_tx = NULL; in atmel_release_tx_dma()
818 atmel_port->cookie_tx = -EINVAL; in atmel_release_tx_dma()
826 struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); in atmel_tx_dma() local
828 struct dma_chan *chan = atmel_port->chan_tx; in atmel_tx_dma()
830 struct scatterlist sgl[2], *sg, *sg_tx = &atmel_port->sg_tx; in atmel_tx_dma()
835 if (atmel_port->desc_tx != NULL) in atmel_tx_dma()
852 if (atmel_port->fifo_size) { in atmel_tx_dma()
883 atmel_port->tx_len = tx_len; in atmel_tx_dma()
898 atmel_port->desc_tx = desc; in atmel_tx_dma()
900 desc->callback_param = atmel_port; in atmel_tx_dma()
901 atmel_port->cookie_tx = dmaengine_submit(desc); in atmel_tx_dma()
916 struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); in atmel_prepare_tx_dma() local
924 atmel_port->chan_tx = dma_request_slave_channel(port->dev, "tx"); in atmel_prepare_tx_dma()
925 if (atmel_port->chan_tx == NULL) in atmel_prepare_tx_dma()
928 dma_chan_name(atmel_port->chan_tx)); in atmel_prepare_tx_dma()
930 spin_lock_init(&atmel_port->lock_tx); in atmel_prepare_tx_dma()
931 sg_init_table(&atmel_port->sg_tx, 1); in atmel_prepare_tx_dma()
934 sg_set_page(&atmel_port->sg_tx, in atmel_prepare_tx_dma()
939 &atmel_port->sg_tx, in atmel_prepare_tx_dma()
948 sg_dma_len(&atmel_port->sg_tx), in atmel_prepare_tx_dma()
950 &sg_dma_address(&atmel_port->sg_tx)); in atmel_prepare_tx_dma()
956 config.dst_addr_width = (atmel_port->fifo_size) ? in atmel_prepare_tx_dma()
962 ret = dmaengine_slave_config(atmel_port->chan_tx, in atmel_prepare_tx_dma()
973 atmel_port->use_dma_tx = 0; in atmel_prepare_tx_dma()
974 if (atmel_port->chan_tx) in atmel_prepare_tx_dma()
982 struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); in atmel_complete_rx_dma() local
984 tasklet_schedule(&atmel_port->tasklet); in atmel_complete_rx_dma()
989 struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); in atmel_release_rx_dma() local
990 struct dma_chan *chan = atmel_port->chan_rx; in atmel_release_rx_dma()
995 dma_unmap_sg(port->dev, &atmel_port->sg_rx, 1, in atmel_release_rx_dma()
999 atmel_port->desc_rx = NULL; in atmel_release_rx_dma()
1000 atmel_port->chan_rx = NULL; in atmel_release_rx_dma()
1001 atmel_port->cookie_rx = -EINVAL; in atmel_release_rx_dma()
1006 struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); in atmel_rx_from_dma() local
1008 struct circ_buf *ring = &atmel_port->rx_ring; in atmel_rx_from_dma()
1009 struct dma_chan *chan = atmel_port->chan_rx; in atmel_rx_from_dma()
1018 atmel_port->cookie_rx, in atmel_rx_from_dma()
1024 tasklet_schedule(&atmel_port->tasklet); in atmel_rx_from_dma()
1030 &atmel_port->sg_rx, in atmel_rx_from_dma()
1041 ring->head = sg_dma_len(&atmel_port->sg_rx) - state.residue; in atmel_rx_from_dma()
1042 BUG_ON(ring->head > sg_dma_len(&atmel_port->sg_rx)); in atmel_rx_from_dma()
1056 count = sg_dma_len(&atmel_port->sg_rx) - ring->tail; in atmel_rx_from_dma()
1069 if (ring->head >= sg_dma_len(&atmel_port->sg_rx)) in atmel_rx_from_dma()
1077 &atmel_port->sg_rx, in atmel_rx_from_dma()
1094 struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); in atmel_prepare_rx_dma() local
1101 ring = &atmel_port->rx_ring; in atmel_prepare_rx_dma()
1106 atmel_port->chan_rx = dma_request_slave_channel(port->dev, "rx"); in atmel_prepare_rx_dma()
1107 if (atmel_port->chan_rx == NULL) in atmel_prepare_rx_dma()
1110 dma_chan_name(atmel_port->chan_rx)); in atmel_prepare_rx_dma()
1112 spin_lock_init(&atmel_port->lock_rx); in atmel_prepare_rx_dma()
1113 sg_init_table(&atmel_port->sg_rx, 1); in atmel_prepare_rx_dma()
1116 sg_set_page(&atmel_port->sg_rx, in atmel_prepare_rx_dma()
1121 &atmel_port->sg_rx, in atmel_prepare_rx_dma()
1130 sg_dma_len(&atmel_port->sg_rx), in atmel_prepare_rx_dma()
1132 &sg_dma_address(&atmel_port->sg_rx)); in atmel_prepare_rx_dma()
1142 ret = dmaengine_slave_config(atmel_port->chan_rx, in atmel_prepare_rx_dma()
1152 desc = dmaengine_prep_dma_cyclic(atmel_port->chan_rx, in atmel_prepare_rx_dma()
1153 sg_dma_address(&atmel_port->sg_rx), in atmel_prepare_rx_dma()
1154 sg_dma_len(&atmel_port->sg_rx), in atmel_prepare_rx_dma()
1155 sg_dma_len(&atmel_port->sg_rx)/2, in atmel_prepare_rx_dma()
1160 atmel_port->desc_rx = desc; in atmel_prepare_rx_dma()
1161 atmel_port->cookie_rx = dmaengine_submit(desc); in atmel_prepare_rx_dma()
1167 atmel_port->use_dma_rx = 0; in atmel_prepare_rx_dma()
1168 if (atmel_port->chan_rx) in atmel_prepare_rx_dma()
1176 struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); in atmel_uart_timer_callback() local
1178 tasklet_schedule(&atmel_port->tasklet); in atmel_uart_timer_callback()
1179 mod_timer(&atmel_port->uart_timer, jiffies + uart_poll_timeout(port)); in atmel_uart_timer_callback()
1188 struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); in atmel_handle_receive() local
1201 tasklet_schedule(&atmel_port->tasklet); in atmel_handle_receive()
1213 tasklet_schedule(&atmel_port->tasklet); in atmel_handle_receive()
1227 atmel_port->break_active = 0; in atmel_handle_receive()
1237 struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); in atmel_handle_transmit() local
1239 if (pending & atmel_port->tx_done_mask) { in atmel_handle_transmit()
1242 atmel_port->tx_done_mask); in atmel_handle_transmit()
1243 tasklet_schedule(&atmel_port->tasklet); in atmel_handle_transmit()
1254 struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); in atmel_handle_status() local
1258 atmel_port->irq_status = status; in atmel_handle_status()
1259 atmel_port->status_change = atmel_port->irq_status ^ in atmel_handle_status()
1260 atmel_port->irq_status_prev; in atmel_handle_status()
1261 atmel_port->irq_status_prev = status; in atmel_handle_status()
1262 tasklet_schedule(&atmel_port->tasklet); in atmel_handle_status()
1272 struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); in atmel_interrupt() local
1276 spin_lock(&atmel_port->lock_suspended); in atmel_interrupt()
1286 if (irq == atmel_port->gpio_irq[UART_GPIO_CTS]) in atmel_interrupt()
1289 if (irq == atmel_port->gpio_irq[UART_GPIO_DSR]) in atmel_interrupt()
1292 if (irq == atmel_port->gpio_irq[UART_GPIO_RI]) in atmel_interrupt()
1295 if (irq == atmel_port->gpio_irq[UART_GPIO_DCD]) in atmel_interrupt()
1303 if (atmel_port->suspended) { in atmel_interrupt()
1304 atmel_port->pending |= pending; in atmel_interrupt()
1305 atmel_port->pending_status = status; in atmel_interrupt()
1316 spin_unlock(&atmel_port->lock_suspended); in atmel_interrupt()
1323 struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); in atmel_release_tx_pdc() local
1324 struct atmel_dma_buffer *pdc = &atmel_port->pdc_tx; in atmel_release_tx_pdc()
1337 struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); in atmel_tx_pdc() local
1339 struct atmel_dma_buffer *pdc = &atmel_port->pdc_tx; in atmel_tx_pdc()
1373 atmel_port->tx_done_mask); in atmel_tx_pdc()
1388 struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); in atmel_prepare_tx_pdc() local
1389 struct atmel_dma_buffer *pdc = &atmel_port->pdc_tx; in atmel_prepare_tx_pdc()
1405 struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); in atmel_rx_from_ring() local
1406 struct circ_buf *ring = &atmel_port->rx_ring; in atmel_rx_from_ring()
1473 struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); in atmel_release_rx_pdc() local
1477 struct atmel_dma_buffer *pdc = &atmel_port->pdc_rx[i]; in atmel_release_rx_pdc()
1489 struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); in atmel_rx_from_pdc() local
1492 int rx_idx = atmel_port->pdc_rx_idx; in atmel_rx_from_pdc()
1501 pdc = &atmel_port->pdc_rx[rx_idx]; in atmel_rx_from_pdc()
1549 atmel_port->pdc_rx_idx = rx_idx; in atmel_rx_from_pdc()
1567 struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); in atmel_prepare_rx_pdc() local
1571 struct atmel_dma_buffer *pdc = &atmel_port->pdc_rx[i]; in atmel_prepare_rx_pdc()
1577 atmel_port->pdc_rx[0].dma_addr, in atmel_prepare_rx_pdc()
1580 kfree(atmel_port->pdc_rx[0].buf); in atmel_prepare_rx_pdc()
1582 atmel_port->use_pdc_rx = 0; in atmel_prepare_rx_pdc()
1593 atmel_port->pdc_rx_idx = 0; in atmel_prepare_rx_pdc()
1595 atmel_uart_writel(port, ATMEL_PDC_RPR, atmel_port->pdc_rx[0].dma_addr); in atmel_prepare_rx_pdc()
1599 atmel_port->pdc_rx[1].dma_addr); in atmel_prepare_rx_pdc()
1611 struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); in atmel_tasklet_func() local
1612 unsigned int status = atmel_port->irq_status; in atmel_tasklet_func()
1613 unsigned int status_change = atmel_port->status_change; in atmel_tasklet_func()
1618 atmel_port->schedule_tx(port); in atmel_tasklet_func()
1634 atmel_port->status_change = 0; in atmel_tasklet_func()
1637 atmel_port->schedule_rx(port); in atmel_tasklet_func()
1642 static void atmel_init_property(struct atmel_uart_port *atmel_port, in atmel_init_property() argument
1652 atmel_port->use_dma_rx = true; in atmel_init_property()
1653 atmel_port->use_pdc_rx = false; in atmel_init_property()
1655 atmel_port->use_dma_rx = false; in atmel_init_property()
1656 atmel_port->use_pdc_rx = true; in atmel_init_property()
1659 atmel_port->use_dma_rx = false; in atmel_init_property()
1660 atmel_port->use_pdc_rx = false; in atmel_init_property()
1665 atmel_port->use_dma_tx = true; in atmel_init_property()
1666 atmel_port->use_pdc_tx = false; in atmel_init_property()
1668 atmel_port->use_dma_tx = false; in atmel_init_property()
1669 atmel_port->use_pdc_tx = true; in atmel_init_property()
1672 atmel_port->use_dma_tx = false; in atmel_init_property()
1673 atmel_port->use_pdc_tx = false; in atmel_init_property()
1677 atmel_port->use_pdc_rx = pdata->use_dma_rx; in atmel_init_property()
1678 atmel_port->use_pdc_tx = pdata->use_dma_tx; in atmel_init_property()
1679 atmel_port->use_dma_rx = false; in atmel_init_property()
1680 atmel_port->use_dma_tx = false; in atmel_init_property()
1716 struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); in atmel_set_ops() local
1719 atmel_port->prepare_rx = &atmel_prepare_rx_dma; in atmel_set_ops()
1720 atmel_port->schedule_rx = &atmel_rx_from_dma; in atmel_set_ops()
1721 atmel_port->release_rx = &atmel_release_rx_dma; in atmel_set_ops()
1723 atmel_port->prepare_rx = &atmel_prepare_rx_pdc; in atmel_set_ops()
1724 atmel_port->schedule_rx = &atmel_rx_from_pdc; in atmel_set_ops()
1725 atmel_port->release_rx = &atmel_release_rx_pdc; in atmel_set_ops()
1727 atmel_port->prepare_rx = NULL; in atmel_set_ops()
1728 atmel_port->schedule_rx = &atmel_rx_from_ring; in atmel_set_ops()
1729 atmel_port->release_rx = NULL; in atmel_set_ops()
1733 atmel_port->prepare_tx = &atmel_prepare_tx_dma; in atmel_set_ops()
1734 atmel_port->schedule_tx = &atmel_tx_dma; in atmel_set_ops()
1735 atmel_port->release_tx = &atmel_release_tx_dma; in atmel_set_ops()
1737 atmel_port->prepare_tx = &atmel_prepare_tx_pdc; in atmel_set_ops()
1738 atmel_port->schedule_tx = &atmel_tx_pdc; in atmel_set_ops()
1739 atmel_port->release_tx = &atmel_release_tx_pdc; in atmel_set_ops()
1741 atmel_port->prepare_tx = NULL; in atmel_set_ops()
1742 atmel_port->schedule_tx = &atmel_tx_chars; in atmel_set_ops()
1743 atmel_port->release_tx = NULL; in atmel_set_ops()
1752 struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); in atmel_get_ip_name() local
1760 atmel_port->is_usart = false; in atmel_get_ip_name()
1764 atmel_port->is_usart = true; in atmel_get_ip_name()
1767 atmel_port->is_usart = false; in atmel_get_ip_name()
1775 atmel_port->is_usart = true; in atmel_get_ip_name()
1780 atmel_port->is_usart = false; in atmel_get_ip_name()
1790 struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); in atmel_free_gpio_irq() local
1794 if (atmel_port->gpio_irq[i] >= 0) in atmel_free_gpio_irq()
1795 free_irq(atmel_port->gpio_irq[i], port); in atmel_free_gpio_irq()
1800 struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); in atmel_request_gpio_irq() local
1801 int *irq = atmel_port->gpio_irq; in atmel_request_gpio_irq()
1833 struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); in atmel_startup() local
1843 atmel_port->ms_irq_enabled = false; in atmel_startup()
1863 tasklet_enable(&atmel_port->tasklet); in atmel_startup()
1868 atmel_init_property(atmel_port, pdev); in atmel_startup()
1871 if (atmel_port->prepare_rx) { in atmel_startup()
1872 retval = atmel_port->prepare_rx(port); in atmel_startup()
1877 if (atmel_port->prepare_tx) { in atmel_startup()
1878 retval = atmel_port->prepare_tx(port); in atmel_startup()
1886 if (atmel_port->fifo_size) { in atmel_startup()
1900 if (atmel_port->rts_high && in atmel_startup()
1901 atmel_port->rts_low) in atmel_startup()
1903 ATMEL_US_RXFTHRES(atmel_port->rts_high) | in atmel_startup()
1904 ATMEL_US_RXFTHRES2(atmel_port->rts_low); in atmel_startup()
1910 atmel_port->irq_status_prev = atmel_get_lines_status(port); in atmel_startup()
1911 atmel_port->irq_status = atmel_port->irq_status_prev; in atmel_startup()
1920 setup_timer(&atmel_port->uart_timer, in atmel_startup()
1926 if (!atmel_port->is_usart) { in atmel_startup()
1927 mod_timer(&atmel_port->uart_timer, in atmel_startup()
1941 if (!atmel_port->is_usart) { in atmel_startup()
1942 mod_timer(&atmel_port->uart_timer, in atmel_startup()
1971 struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); in atmel_flush_buffer() local
1975 atmel_port->pdc_tx.ofs = 0; in atmel_flush_buffer()
1984 struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); in atmel_shutdown() local
1990 del_timer_sync(&atmel_port->uart_timer); in atmel_shutdown()
1996 tasklet_disable(&atmel_port->tasklet); in atmel_shutdown()
1997 tasklet_kill(&atmel_port->tasklet); in atmel_shutdown()
2013 if (atmel_port->release_rx) in atmel_shutdown()
2014 atmel_port->release_rx(port); in atmel_shutdown()
2015 if (atmel_port->release_tx) in atmel_shutdown()
2016 atmel_port->release_tx(port); in atmel_shutdown()
2021 atmel_port->rx_ring.head = 0; in atmel_shutdown()
2022 atmel_port->rx_ring.tail = 0; in atmel_shutdown()
2030 atmel_port->ms_irq_enabled = false; in atmel_shutdown()
2041 struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); in atmel_serial_pm() local
2049 clk_prepare_enable(atmel_port->clk); in atmel_serial_pm()
2052 atmel_uart_writel(port, ATMEL_US_IER, atmel_port->backup_imr); in atmel_serial_pm()
2056 atmel_port->backup_imr = atmel_uart_readl(port, ATMEL_US_IMR); in atmel_serial_pm()
2063 clk_disable_unprepare(atmel_port->clk); in atmel_serial_pm()
2372 static int atmel_init_port(struct atmel_uart_port *atmel_port, in atmel_init_port() argument
2376 struct uart_port *port = &atmel_port->uart; in atmel_init_port()
2379 atmel_init_property(atmel_port, pdev); in atmel_init_port()
2393 tasklet_init(&atmel_port->tasklet, atmel_tasklet_func, in atmel_init_port()
2395 tasklet_disable(&atmel_port->tasklet); in atmel_init_port()
2397 memset(&atmel_port->rx_ring, 0, sizeof(atmel_port->rx_ring)); in atmel_init_port()
2408 if (!atmel_port->clk) { in atmel_init_port()
2409 atmel_port->clk = clk_get(&pdev->dev, "usart"); in atmel_init_port()
2410 if (IS_ERR(atmel_port->clk)) { in atmel_init_port()
2411 ret = PTR_ERR(atmel_port->clk); in atmel_init_port()
2412 atmel_port->clk = NULL; in atmel_init_port()
2415 ret = clk_prepare_enable(atmel_port->clk); in atmel_init_port()
2417 clk_put(atmel_port->clk); in atmel_init_port()
2418 atmel_port->clk = NULL; in atmel_init_port()
2421 port->uartclk = clk_get_rate(atmel_port->clk); in atmel_init_port()
2422 clk_disable_unprepare(atmel_port->clk); in atmel_init_port()
2428 atmel_port->tx_done_mask = ATMEL_US_TXEMPTY; in atmel_init_port()
2431 atmel_port->tx_done_mask = ATMEL_US_ENDTX | ATMEL_US_TXBUFE; in atmel_init_port()
2433 atmel_port->tx_done_mask = ATMEL_US_TXRDY; in atmel_init_port()
2455 struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); in atmel_console_write() local
2464 ATMEL_US_RXRDY | atmel_port->tx_done_mask); in atmel_console_write()
2649 struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); in atmel_serial_suspend() local
2659 atmel_port->may_wakeup = device_may_wakeup(&pdev->dev); in atmel_serial_suspend()
2663 spin_lock_irqsave(&atmel_port->lock_suspended, flags); in atmel_serial_suspend()
2664 atmel_port->suspended = true; in atmel_serial_suspend()
2665 spin_unlock_irqrestore(&atmel_port->lock_suspended, flags); in atmel_serial_suspend()
2677 struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); in atmel_serial_resume() local
2680 spin_lock_irqsave(&atmel_port->lock_suspended, flags); in atmel_serial_resume()
2681 if (atmel_port->pending) { in atmel_serial_resume()
2682 atmel_handle_receive(port, atmel_port->pending); in atmel_serial_resume()
2683 atmel_handle_status(port, atmel_port->pending, in atmel_serial_resume()
2684 atmel_port->pending_status); in atmel_serial_resume()
2685 atmel_handle_transmit(port, atmel_port->pending); in atmel_serial_resume()
2686 atmel_port->pending = 0; in atmel_serial_resume()
2688 atmel_port->suspended = false; in atmel_serial_resume()
2689 spin_unlock_irqrestore(&atmel_port->lock_suspended, flags); in atmel_serial_resume()
2692 device_set_wakeup_enable(&pdev->dev, atmel_port->may_wakeup); in atmel_serial_resume()
2884 struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); in atmel_serial_remove() local
2887 tasklet_kill(&atmel_port->tasklet); in atmel_serial_remove()
2893 kfree(atmel_port->rx_ring.buf); in atmel_serial_remove()
2899 clk_put(atmel_port->clk); in atmel_serial_remove()