linux/drivers/dma/milbeaut-xdmac.c

// SPDX-License-Identifier: GPL-2.0
//
// Copyright (C) 2019 Linaro Ltd.
// Copyright (C) 2019 Socionext Inc.

#include <linux/bits.h>
#include <linux/dma-mapping.h>
#include <linux/dmaengine.h>
#include <linux/interrupt.h>
#include <linux/iopoll.h>
#include <linux/list.h>
#include <linux/module.h>
#include <linux/of_dma.h>
#include <linux/platform_device.h>
#include <linux/slab.h>
#include <linux/types.h>
#include <linux/bitfield.h>

#include "virt-dma.h"

/* global register */
#define M10V_XDACS

/* channel local register */
#define M10V_XDTBC
#define M10V_XDSSA
#define M10V_XDDSA
#define M10V_XDSAC
#define M10V_XDDAC
#define M10V_XDDCC
#define M10V_XDDES
#define M10V_XDDPC
#define M10V_XDDSD

#define M10V_XDACS_XE

#define M10V_DEFBS
#define M10V_DEFBL

#define M10V_XDSAC_SBS
#define M10V_XDSAC_SBL

#define M10V_XDDAC_DBS
#define M10V_XDDAC_DBL

#define M10V_XDDES_CE
#define M10V_XDDES_SE
#define M10V_XDDES_SA
#define M10V_XDDES_TF
#define M10V_XDDES_EI
#define M10V_XDDES_TI

#define M10V_XDDSD_IS_MASK
#define M10V_XDDSD_IS_NORMAL

#define MLB_XDMAC_BUSWIDTHS

struct milbeaut_xdmac_desc {};

struct milbeaut_xdmac_chan {};

struct milbeaut_xdmac_device {};

static struct milbeaut_xdmac_chan *
to_milbeaut_xdmac_chan(struct virt_dma_chan *vc)
{}

static struct milbeaut_xdmac_desc *
to_milbeaut_xdmac_desc(struct virt_dma_desc *vd)
{}

/* mc->vc.lock must be held by caller */
static struct milbeaut_xdmac_desc *
milbeaut_xdmac_next_desc(struct milbeaut_xdmac_chan *mc)
{}

/* mc->vc.lock must be held by caller */
static void milbeaut_chan_start(struct milbeaut_xdmac_chan *mc,
				struct milbeaut_xdmac_desc *md)
{}

/* mc->vc.lock must be held by caller */
static void milbeaut_xdmac_start(struct milbeaut_xdmac_chan *mc)
{}

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

static void milbeaut_xdmac_free_chan_resources(struct dma_chan *chan)
{}

static struct dma_async_tx_descriptor *
milbeaut_xdmac_prep_memcpy(struct dma_chan *chan, dma_addr_t dst,
			   dma_addr_t src, size_t len, unsigned long flags)
{}

static int milbeaut_xdmac_terminate_all(struct dma_chan *chan)
{}

static void milbeaut_xdmac_synchronize(struct dma_chan *chan)
{}

static void milbeaut_xdmac_issue_pending(struct dma_chan *chan)
{}

static void milbeaut_xdmac_desc_free(struct virt_dma_desc *vd)
{}

static int milbeaut_xdmac_chan_init(struct platform_device *pdev,
				    struct milbeaut_xdmac_device *mdev,
				    int chan_id)
{}

static void enable_xdmac(struct milbeaut_xdmac_device *mdev)
{}

static void disable_xdmac(struct milbeaut_xdmac_device *mdev)
{}

static int milbeaut_xdmac_probe(struct platform_device *pdev)
{}

static void milbeaut_xdmac_remove(struct platform_device *pdev)
{}

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

static struct platform_driver milbeaut_xdmac_driver =;
module_platform_driver();

MODULE_DESCRIPTION();
MODULE_LICENSE();