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"
226 struct edma_regs regs; member
232 (sizeof(chan->tcd->__name) == sizeof(u32) ? \
233 edma_readl(chan->edma, &chan->tcd->__name) : \
234 edma_readw(chan->edma, &chan->tcd->__name))
237 (sizeof(chan->tcd->__name) == sizeof(u32) ? \
238 edma_writel(chan->edma, (u32 __force)val, &chan->tcd->__name) : \
239 edma_writew(chan->edma, (u16 __force)val, &chan->tcd->__name))
242 edma_readl(chan->edma, \
243 (void __iomem *)&(container_of(chan->tcd, struct fsl_edma3_ch_reg, tcd)->__name))
246 edma_writel(chan->edma, val, \
247 (void __iomem *)&(container_of(chan->tcd, struct fsl_edma3_ch_reg, tcd)->__name))
250 * R/W functions for big- or little-endian registers:
251 * The eDMA controller's endian is independent of the CPU core's endian.
252 * For the big-endian IP module, the offset for 8-bit or 16-bit registers
253 * should also be swapped opposite to that in little-endian IP.
257 if (edma->big_endian) in edma_readl()
265 if (edma->big_endian) in edma_readw()
274 /* swap the reg offset for these in big-endian mode */ in edma_writeb()
275 if (edma->big_endian) in edma_writeb()
284 /* swap the reg offset for these in big-endian mode */ in edma_writew()
285 if (edma->big_endian) in edma_writew()
294 if (edma->big_endian) in edma_writel()
307 return fsl_chan->edma->drvdata->flags; in fsl_edma_drvflags()
317 fsl_chan->status = DMA_ERROR; in fsl_edma_err_chan_handler()
318 fsl_chan->idle = true; in fsl_edma_err_chan_handler()