Lines Matching refs:mtkd

138 	struct mtk_uart_apdmadev *mtkd =  in mtk_uart_apdma_start_tx()  local
151 if (mtkd->support_33bits) in mtk_uart_apdma_start_tx()
181 struct mtk_uart_apdmadev *mtkd = in mtk_uart_apdma_start_rx() local
194 if (mtkd->support_33bits) in mtk_uart_apdma_start_rx()
271 struct mtk_uart_apdmadev *mtkd = to_mtk_uart_apdma_dev(chan->device); in mtk_uart_apdma_alloc_chan_resources() local
276 ret = pm_runtime_resume_and_get(mtkd->ddev.dev); in mtk_uart_apdma_alloc_chan_resources()
300 if (mtkd->support_33bits) in mtk_uart_apdma_alloc_chan_resources()
304 pm_runtime_put_noidle(mtkd->ddev.dev); in mtk_uart_apdma_alloc_chan_resources()
310 struct mtk_uart_apdmadev *mtkd = to_mtk_uart_apdma_dev(chan->device); in mtk_uart_apdma_free_chan_resources() local
319 pm_runtime_put_sync(mtkd->ddev.dev); in mtk_uart_apdma_free_chan_resources()
459 static void mtk_uart_apdma_free(struct mtk_uart_apdmadev *mtkd) in mtk_uart_apdma_free() argument
461 while (!list_empty(&mtkd->ddev.channels)) { in mtk_uart_apdma_free()
462 struct mtk_chan *c = list_first_entry(&mtkd->ddev.channels, in mtk_uart_apdma_free()
479 struct mtk_uart_apdmadev *mtkd; in mtk_uart_apdma_probe() local
484 mtkd = devm_kzalloc(&pdev->dev, sizeof(*mtkd), GFP_KERNEL); in mtk_uart_apdma_probe()
485 if (!mtkd) in mtk_uart_apdma_probe()
488 mtkd->clk = devm_clk_get(&pdev->dev, NULL); in mtk_uart_apdma_probe()
489 if (IS_ERR(mtkd->clk)) { in mtk_uart_apdma_probe()
491 rc = PTR_ERR(mtkd->clk); in mtk_uart_apdma_probe()
496 mtkd->support_33bits = true; in mtk_uart_apdma_probe()
498 if (mtkd->support_33bits) in mtk_uart_apdma_probe()
505 dma_cap_set(DMA_SLAVE, mtkd->ddev.cap_mask); in mtk_uart_apdma_probe()
506 mtkd->ddev.device_alloc_chan_resources = in mtk_uart_apdma_probe()
508 mtkd->ddev.device_free_chan_resources = in mtk_uart_apdma_probe()
510 mtkd->ddev.device_tx_status = mtk_uart_apdma_tx_status; in mtk_uart_apdma_probe()
511 mtkd->ddev.device_issue_pending = mtk_uart_apdma_issue_pending; in mtk_uart_apdma_probe()
512 mtkd->ddev.device_prep_slave_sg = mtk_uart_apdma_prep_slave_sg; in mtk_uart_apdma_probe()
513 mtkd->ddev.device_config = mtk_uart_apdma_slave_config; in mtk_uart_apdma_probe()
514 mtkd->ddev.device_pause = mtk_uart_apdma_device_pause; in mtk_uart_apdma_probe()
515 mtkd->ddev.device_terminate_all = mtk_uart_apdma_terminate_all; in mtk_uart_apdma_probe()
516 mtkd->ddev.src_addr_widths = BIT(DMA_SLAVE_BUSWIDTH_1_BYTE); in mtk_uart_apdma_probe()
517 mtkd->ddev.dst_addr_widths = BIT(DMA_SLAVE_BUSWIDTH_1_BYTE); in mtk_uart_apdma_probe()
518 mtkd->ddev.directions = BIT(DMA_DEV_TO_MEM) | BIT(DMA_MEM_TO_DEV); in mtk_uart_apdma_probe()
519 mtkd->ddev.residue_granularity = DMA_RESIDUE_GRANULARITY_SEGMENT; in mtk_uart_apdma_probe()
520 mtkd->ddev.dev = &pdev->dev; in mtk_uart_apdma_probe()
521 INIT_LIST_HEAD(&mtkd->ddev.channels); in mtk_uart_apdma_probe()
523 mtkd->dma_requests = MTK_UART_APDMA_NR_VCHANS; in mtk_uart_apdma_probe()
524 if (of_property_read_u32(np, "dma-requests", &mtkd->dma_requests)) { in mtk_uart_apdma_probe()
530 for (i = 0; i < mtkd->dma_requests; i++) { in mtk_uart_apdma_probe()
531 c = devm_kzalloc(mtkd->ddev.dev, sizeof(*c), GFP_KERNEL); in mtk_uart_apdma_probe()
543 vchan_init(&c->vc, &mtkd->ddev); in mtk_uart_apdma_probe()
553 rc = dma_async_device_register(&mtkd->ddev); in mtk_uart_apdma_probe()
557 platform_set_drvdata(pdev, mtkd); in mtk_uart_apdma_probe()
560 rc = of_dma_controller_register(np, of_dma_xlate_by_chan_id, mtkd); in mtk_uart_apdma_probe()
567 dma_async_device_unregister(&mtkd->ddev); in mtk_uart_apdma_probe()
571 mtk_uart_apdma_free(mtkd); in mtk_uart_apdma_probe()
577 struct mtk_uart_apdmadev *mtkd = platform_get_drvdata(pdev); in mtk_uart_apdma_remove() local
581 mtk_uart_apdma_free(mtkd); in mtk_uart_apdma_remove()
583 dma_async_device_unregister(&mtkd->ddev); in mtk_uart_apdma_remove()
593 struct mtk_uart_apdmadev *mtkd = dev_get_drvdata(dev); in mtk_uart_apdma_suspend() local
596 clk_disable_unprepare(mtkd->clk); in mtk_uart_apdma_suspend()
604 struct mtk_uart_apdmadev *mtkd = dev_get_drvdata(dev); in mtk_uart_apdma_resume() local
607 ret = clk_prepare_enable(mtkd->clk); in mtk_uart_apdma_resume()
619 struct mtk_uart_apdmadev *mtkd = dev_get_drvdata(dev); in mtk_uart_apdma_runtime_suspend() local
621 clk_disable_unprepare(mtkd->clk); in mtk_uart_apdma_runtime_suspend()
628 struct mtk_uart_apdmadev *mtkd = dev_get_drvdata(dev); in mtk_uart_apdma_runtime_resume() local
630 return clk_prepare_enable(mtkd->clk); in mtk_uart_apdma_runtime_resume()