linux/drivers/dma/sf-pdma/sf-pdma.h

/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
 * SiFive FU540 Platform DMA driver
 * Copyright (C) 2019 SiFive
 *
 * Based partially on:
 * - drivers/dma/fsl-edma.c
 * - drivers/dma/dw-edma/
 * - drivers/dma/pxa-dma.c
 *
 * See the following sources for further documentation:
 * - Chapter 12 "Platform DMA Engine (PDMA)" of
 *   SiFive FU540-C000 v1.0
 *   https://static.dev.sifive.com/FU540-C000-v1.0.pdf
 */
#ifndef _SF_PDMA_H
#define _SF_PDMA_H

#include <linux/dmaengine.h>
#include <linux/dma-direction.h>

#include "../dmaengine.h"
#include "../virt-dma.h"

#define PDMA_MAX_NR_CH

#define PDMA_BASE_ADDR
#define PDMA_CHAN_OFFSET

/* Register Offset */
#define PDMA_CTRL
#define PDMA_XFER_TYPE
#define PDMA_XFER_SIZE
#define PDMA_DST_ADDR
#define PDMA_SRC_ADDR
#define PDMA_ACT_TYPE
#define PDMA_REMAINING_BYTE
#define PDMA_CUR_DST_ADDR
#define PDMA_CUR_SRC_ADDR

/* CTRL */
#define PDMA_CLEAR_CTRL
#define PDMA_CLAIM_MASK
#define PDMA_RUN_MASK
#define PDMA_ENABLE_DONE_INT_MASK
#define PDMA_ENABLE_ERR_INT_MASK
#define PDMA_DONE_STATUS_MASK
#define PDMA_ERR_STATUS_MASK

/* Transfer Type */
#define PDMA_FULL_SPEED
#define PDMA_STRICT_ORDERING

/* Error Recovery */
#define MAX_RETRY

#define SF_PDMA_REG_BASE(ch)

struct pdma_regs {};

struct sf_pdma_desc {};

enum sf_pdma_pm_state {};

struct sf_pdma_chan {};

struct sf_pdma {};

struct sf_pdma_driver_platdata {};

#endif /* _SF_PDMA_H */