Source
x
static inline void qdma_csgf_set_len(struct fsl_qdma_format *csgf, int len)
// SPDX-License-Identifier: GPL-2.0
// Copyright 2014-2015 Freescale
// Copyright 2018 NXP
/*
* Driver for NXP Layerscape Queue Direct Memory Access Controller
*
* Author:
* Wen He <wen.he_1@nxp.com>
* Jiaheng Fan <jiaheng.fan@nxp.com>
*
*/
#include <linux/module.h>
#include <linux/delay.h>
#include <linux/of_irq.h>
#include <linux/of_platform.h>
#include <linux/of_dma.h>
#include <linux/dma-mapping.h>
#include "virt-dma.h"
#include "fsldma.h"
/* Register related definition */
#define FSL_QDMA_DMR 0x0
#define FSL_QDMA_DSR 0x4
#define FSL_QDMA_DEIER 0xe00
#define FSL_QDMA_DEDR 0xe04
#define FSL_QDMA_DECFDW0R 0xe10
#define FSL_QDMA_DECFDW1R 0xe14
#define FSL_QDMA_DECFDW2R 0xe18
#define FSL_QDMA_DECFDW3R 0xe1c
#define FSL_QDMA_DECFQIDR 0xe30
#define FSL_QDMA_DECBR 0xe34
#define FSL_QDMA_BCQMR(x) (0xc0 + 0x100 * (x))
#define FSL_QDMA_BCQSR(x) (0xc4 + 0x100 * (x))
#define FSL_QDMA_BCQEDPA_SADDR(x) (0xc8 + 0x100 * (x))
#define FSL_QDMA_BCQDPA_SADDR(x) (0xcc + 0x100 * (x))
#define FSL_QDMA_BCQEEPA_SADDR(x) (0xd0 + 0x100 * (x))
#define FSL_QDMA_BCQEPA_SADDR(x) (0xd4 + 0x100 * (x))
#define FSL_QDMA_BCQIER(x) (0xe0 + 0x100 * (x))
#define FSL_QDMA_BCQIDR(x) (0xe4 + 0x100 * (x))
#define FSL_QDMA_SQDPAR 0x80c
#define FSL_QDMA_SQEPAR 0x814
#define FSL_QDMA_BSQMR 0x800
#define FSL_QDMA_BSQSR 0x804
#define FSL_QDMA_BSQICR 0x828
#define FSL_QDMA_CQMR 0xa00
#define FSL_QDMA_CQDSCR1 0xa08
#define FSL_QDMA_CQDSCR2 0xa0c
#define FSL_QDMA_CQIER 0xa10
#define FSL_QDMA_CQEDR 0xa14
#define FSL_QDMA_SQCCMR 0xa20
/* Registers for bit and genmask */
#define FSL_QDMA_CQIDR_SQT BIT(15)
#define QDMA_CCDF_FOTMAT BIT(29)
#define QDMA_CCDF_SER BIT(30)
#define QDMA_SG_FIN BIT(30)
#define QDMA_SG_LEN_MASK GENMASK(29, 0)
#define QDMA_CCDF_MASK GENMASK(28, 20)
#define FSL_QDMA_DEDR_CLEAR GENMASK(31, 0)
#define FSL_QDMA_BCQIDR_CLEAR GENMASK(31, 0)
#define FSL_QDMA_DEIER_CLEAR GENMASK(31, 0)
#define FSL_QDMA_BCQIER_CQTIE BIT(15)
#define FSL_QDMA_BCQIER_CQPEIE BIT(23)
#define FSL_QDMA_BSQICR_ICEN BIT(31)
#define FSL_QDMA_BSQICR_ICST(x) ((x) << 16)
#define FSL_QDMA_CQIER_MEIE BIT(31)
#define FSL_QDMA_CQIER_TEIE BIT(0)
#define FSL_QDMA_SQCCMR_ENTER_WM BIT(21)
#define FSL_QDMA_BCQMR_EN BIT(31)
#define FSL_QDMA_BCQMR_EI BIT(30)
#define FSL_QDMA_BCQMR_CD_THLD(x) ((x) << 20)
#define FSL_QDMA_BCQMR_CQ_SIZE(x) ((x) << 16)
#define FSL_QDMA_BCQSR_QF BIT(16)
#define FSL_QDMA_BCQSR_XOFF BIT(0)
#define FSL_QDMA_BSQMR_EN BIT(31)
#define FSL_QDMA_BSQMR_DI BIT(30)
#define FSL_QDMA_BSQMR_CQ_SIZE(x) ((x) << 16)
#define FSL_QDMA_BSQSR_QE BIT(17)
#define FSL_QDMA_DMR_DQD BIT(30)