linux/drivers/dma/fsl-edma-main.c

// SPDX-License-Identifier: GPL-2.0-or-later
/*
 * drivers/dma/fsl-edma.c
 *
 * Copyright 2013-2014 Freescale Semiconductor, Inc.
 *
 * Driver for the Freescale eDMA engine with flexible channel multiplexing
 * capability for DMA request sources. The eDMA block can be found on some
 * Vybrid and Layerscape SoCs.
 */

#include <dt-bindings/dma/fsl-edma.h>
#include <linux/bitfield.h>
#include <linux/module.h>
#include <linux/interrupt.h>
#include <linux/clk.h>
#include <linux/of.h>
#include <linux/of_dma.h>
#include <linux/dma-mapping.h>
#include <linux/pm_runtime.h>
#include <linux/pm_domain.h>
#include <linux/property.h>

#include "fsl-edma-common.h"

static void fsl_edma_synchronize(struct dma_chan *chan)
{}

static irqreturn_t fsl_edma_tx_handler(int irq, void *dev_id)
{}

static irqreturn_t fsl_edma3_tx_handler(int irq, void *dev_id)
{}

static irqreturn_t fsl_edma2_tx_handler(int irq, void *devi_id)
{}

static irqreturn_t fsl_edma_err_handler(int irq, void *dev_id)
{}

static irqreturn_t fsl_edma_irq_handler(int irq, void *dev_id)
{}

static bool fsl_edma_srcid_in_use(struct fsl_edma_engine *fsl_edma, u32 srcid)
{}

static struct dma_chan *fsl_edma_xlate(struct of_phandle_args *dma_spec,
		struct of_dma *ofdma)
{}

static struct dma_chan *fsl_edma3_xlate(struct of_phandle_args *dma_spec,
					struct of_dma *ofdma)
{}

static int
fsl_edma_irq_init(struct platform_device *pdev, struct fsl_edma_engine *fsl_edma)
{}

static int fsl_edma3_irq_init(struct platform_device *pdev, struct fsl_edma_engine *fsl_edma)
{}

static int
fsl_edma2_irq_init(struct platform_device *pdev,
		   struct fsl_edma_engine *fsl_edma)
{}

static void fsl_edma_irq_exit(
		struct platform_device *pdev, struct fsl_edma_engine *fsl_edma)
{}

static void fsl_disable_clocks(struct fsl_edma_engine *fsl_edma, int nr_clocks)
{}

static struct fsl_edma_drvdata vf610_data =;

static struct fsl_edma_drvdata ls1028a_data =;

static struct fsl_edma_drvdata imx7ulp_data =;

static struct fsl_edma_drvdata imx8qm_data =;

static struct fsl_edma_drvdata imx8ulp_data =;

static struct fsl_edma_drvdata imx93_data3 =;

static struct fsl_edma_drvdata imx93_data4 =;

static struct fsl_edma_drvdata imx95_data5 =;

static const struct of_device_id fsl_edma_dt_ids[] =;
MODULE_DEVICE_TABLE(of, fsl_edma_dt_ids);

static int fsl_edma3_attach_pd(struct platform_device *pdev, struct fsl_edma_engine *fsl_edma)
{}

static int fsl_edma_probe(struct platform_device *pdev)
{}

static void fsl_edma_remove(struct platform_device *pdev)
{}

static int fsl_edma_suspend_late(struct device *dev)
{}

static int fsl_edma_resume_early(struct device *dev)
{}

/*
 * eDMA provides the service to others, so it should be suspend late
 * and resume early. When eDMA suspend, all of the clients should stop
 * the DMA data transmission and let the channel idle.
 */
static const struct dev_pm_ops fsl_edma_pm_ops =;

static struct platform_driver fsl_edma_driver =;

static int __init fsl_edma_init(void)
{}
subsys_initcall(fsl_edma_init);

static void __exit fsl_edma_exit(void)
{}
module_exit(fsl_edma_exit);

MODULE_ALIAS();
MODULE_DESCRIPTION();
MODULE_LICENSE();