Lines Matching full:edma
3 * drivers/dma/fsl-edma.c
7 * Driver for the Freescale eDMA engine with flexible channel multiplexing
8 * capability for DMA request sources. The eDMA block can be found on some
12 #include <dt-bindings/dma/fsl-edma.h>
24 #include "fsl-edma-common.h"
72 return fsl_edma_tx_handler(irq, fsl_chan->edma); in fsl_edma2_tx_handler()
221 fsl_edma->txirq = platform_get_irq_byname(pdev, "edma-tx"); in fsl_edma_irq_init()
225 fsl_edma->errirq = platform_get_irq_byname(pdev, "edma-err"); in fsl_edma_irq_init()
231 fsl_edma_irq_handler, 0, "eDMA", fsl_edma); in fsl_edma_irq_init()
233 dev_err(&pdev->dev, "Can't register eDMA IRQ.\n"); in fsl_edma_irq_init()
238 fsl_edma_tx_handler, 0, "eDMA tx", fsl_edma); in fsl_edma_irq_init()
240 dev_err(&pdev->dev, "Can't register eDMA tx IRQ.\n"); in fsl_edma_irq_init()
245 fsl_edma_err_handler, 0, "eDMA err", fsl_edma); in fsl_edma_irq_init()
247 dev_err(&pdev->dev, "Can't register eDMA err IRQ.\n"); in fsl_edma_irq_init()
304 /* The last IRQ is for eDMA err */ in fsl_edma2_irq_init()
408 { .compatible = "fsl,vf610-edma", .data = &vf610_data},
409 { .compatible = "fsl,ls1028a-edma", .data = &ls1028a_data},
410 { .compatible = "fsl,imx7ulp-edma", .data = &imx7ulp_data},
411 { .compatible = "fsl,imx8qm-edma", .data = &imx8qm_data},
412 { .compatible = "fsl,imx8ulp-edma", .data = &imx8ulp_data},
563 fsl_chan->edma = fsl_edma; in fsl_edma_probe()
588 if (fsl_chan->edma->drvdata->flags & FSL_EDMA_DRV_HAS_CHCLK) in fsl_edma_probe()
644 "Can't register Freescale eDMA engine. (%d)\n", ret); in fsl_edma_probe()
653 "Can't register Freescale eDMA of_dma. (%d)\n", ret); in fsl_edma_probe()
727 * eDMA provides the service to others, so it should be suspend late
728 * and resume early. When eDMA suspend, all of the clients should stop
738 .name = "fsl-edma",
758 MODULE_ALIAS("platform:fsl-edma");
759 MODULE_DESCRIPTION("Freescale eDMA engine driver");