Lines Matching defs:edma
13 #include "fsl-edma-common.h"
77 /* Remote/local swapped wrongly on iMX8 QM Audio edma */
111 struct edma_regs *regs = &fsl_chan->edma->regs;
117 if (fsl_chan->edma->drvdata->flags & FSL_EDMA_DRV_WRAP_IO) {
118 edma_writeb(fsl_chan->edma, EDMA_SEEI_SEEI(ch), regs->seei);
119 edma_writeb(fsl_chan->edma, ch, regs->serq);
145 struct edma_regs *regs = &fsl_chan->edma->regs;
151 if (fsl_chan->edma->drvdata->flags & FSL_EDMA_DRV_WRAP_IO) {
152 edma_writeb(fsl_chan->edma, ch, regs->cerq);
153 edma_writeb(fsl_chan->edma, EDMA_CEEI_CEEI(ch), regs->ceei);
196 u32 dmamux_nr = fsl_chan->edma->drvdata->dmamuxs;
201 chans_per_mux = fsl_chan->edma->n_chans / dmamux_nr;
204 if (fsl_chan->edma->drvdata->flags & FSL_EDMA_DRV_MUX_SWAP)
207 muxaddr = fsl_chan->edma->muxbase[ch / chans_per_mux];
210 if (fsl_chan->edma->drvdata->flags & FSL_EDMA_DRV_CONFIG32)
814 struct fsl_edma_engine *edma = fsl_chan->edma;
820 if (edma->drvdata->dmamuxs)
846 * On the 32 channels Vybrid/mpc577x edma version, register offsets are
847 * different compared to ColdFire mcf5441x 64 channels edma.
851 * edma "version" and "membase" appropriately.
853 void fsl_edma_setup_regs(struct fsl_edma_engine *edma)
855 bool is64 = !!(edma->drvdata->flags & FSL_EDMA_DRV_EDMA64);
857 edma->regs.cr = edma->membase + EDMA_CR;
858 edma->regs.es = edma->membase + EDMA_ES;
859 edma->regs.erql = edma->membase + EDMA_ERQ;
860 edma->regs.eeil = edma->membase + EDMA_EEI;
862 edma->regs.serq = edma->membase + (is64 ? EDMA64_SERQ : EDMA_SERQ);
863 edma->regs.cerq = edma->membase + (is64 ? EDMA64_CERQ : EDMA_CERQ);
864 edma->regs.seei = edma->membase + (is64 ? EDMA64_SEEI : EDMA_SEEI);
865 edma->regs.ceei = edma->membase + (is64 ? EDMA64_CEEI : EDMA_CEEI);
866 edma->regs.cint = edma->membase + (is64 ? EDMA64_CINT : EDMA_CINT);
867 edma->regs.cerr = edma->membase + (is64 ? EDMA64_CERR : EDMA_CERR);
868 edma->regs.ssrt = edma->membase + (is64 ? EDMA64_SSRT : EDMA_SSRT);
869 edma->regs.cdne = edma->membase + (is64 ? EDMA64_CDNE : EDMA_CDNE);
870 edma->regs.intl = edma->membase + (is64 ? EDMA64_INTL : EDMA_INTR);
871 edma->regs.errl = edma->membase + (is64 ? EDMA64_ERRL : EDMA_ERR);
874 edma->regs.erqh = edma->membase + EDMA64_ERQH;
875 edma->regs.eeih = edma->membase + EDMA64_EEIH;
876 edma->regs.errh = edma->membase + EDMA64_ERRH;
877 edma->regs.inth = edma->membase + EDMA64_INTH;