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"
230 struct edma_regs regs; member
236 (sizeof(chan->tcd->__name) == sizeof(u32) ? \
237 edma_readl(chan->edma, &chan->tcd->__name) : \
238 edma_readw(chan->edma, &chan->tcd->__name))
241 (sizeof(chan->tcd->__name) == sizeof(u32) ? \
242 edma_writel(chan->edma, (u32 __force)val, &chan->tcd->__name) : \
243 edma_writew(chan->edma, (u16 __force)val, &chan->tcd->__name))
246 edma_readl(chan->edma, \
247 (void __iomem *)&(container_of(chan->tcd, struct fsl_edma3_ch_reg, tcd)->__name))
250 edma_writel(chan->edma, val, \
251 (void __iomem *)&(container_of(chan->tcd, struct fsl_edma3_ch_reg, tcd)->__name))
254 * R/W functions for big- or little-endian registers:
255 * The eDMA controller's endian is independent of the CPU core's endian.
256 * For the big-endian IP module, the offset for 8-bit or 16-bit registers
257 * should also be swapped opposite to that in little-endian IP.
261 if (edma->big_endian) in edma_readl()
269 if (edma->big_endian) in edma_readw()
278 /* swap the reg offset for these in big-endian mode */ in edma_writeb()
279 if (edma->big_endian) in edma_writeb()
288 /* swap the reg offset for these in big-endian mode */ in edma_writew()
289 if (edma->big_endian) in edma_writew()
298 if (edma->big_endian) in edma_writel()
311 return fsl_chan->edma->drvdata->flags; in fsl_edma_drvflags()
321 fsl_chan->status = DMA_ERROR; in fsl_edma_err_chan_handler()
322 fsl_chan->idle = true; in fsl_edma_err_chan_handler()