Lines Matching +full:big +full:- +full:endian +full:- +full:regs

1 /* SPDX-License-Identifier: GPL-2.0+ */
3 * Copyright 2013-2014 Freescale Semiconductor, Inc.
9 #include <linux/dma-direction.h>
11 #include "virt-dma.h"
227 struct edma_regs regs; member
233 (sizeof(chan->tcd->__name) == sizeof(u32) ? \
234 edma_readl(chan->edma, &chan->tcd->__name) : \
235 edma_readw(chan->edma, &chan->tcd->__name))
238 (sizeof(chan->tcd->__name) == sizeof(u32) ? \
239 edma_writel(chan->edma, (u32 __force)val, &chan->tcd->__name) : \
240 edma_writew(chan->edma, (u16 __force)val, &chan->tcd->__name))
243 edma_readl(chan->edma, \
244 (void __iomem *)&(container_of(chan->tcd, struct fsl_edma3_ch_reg, tcd)->__name))
247 edma_writel(chan->edma, val, \
248 (void __iomem *)&(container_of(chan->tcd, struct fsl_edma3_ch_reg, tcd)->__name))
251 * R/W functions for big- or little-endian registers:
252 * The eDMA controller's endian is independent of the CPU core's endian.
253 * For the big-endian IP module, the offset for 8-bit or 16-bit registers
254 * should also be swapped opposite to that in little-endian IP.
258 if (edma->big_endian) in edma_readl()
266 if (edma->big_endian) in edma_readw()
275 /* swap the reg offset for these in big-endian mode */ in edma_writeb()
276 if (edma->big_endian) in edma_writeb()
285 /* swap the reg offset for these in big-endian mode */ in edma_writew()
286 if (edma->big_endian) in edma_writew()
295 if (edma->big_endian) in edma_writel()
308 return fsl_chan->edma->drvdata->flags; in fsl_edma_drvflags()
318 fsl_chan->status = DMA_ERROR; in fsl_edma_err_chan_handler()
319 fsl_chan->idle = true; in fsl_edma_err_chan_handler()