Lines Matching defs:edma
11 #include "fsl-edma-common.h"
47 struct edma_regs *regs = &fsl_chan->edma->regs;
50 if (fsl_chan->edma->drvdata->version == v1) {
51 edma_writeb(fsl_chan->edma, EDMA_SEEI_SEEI(ch), regs->seei);
52 edma_writeb(fsl_chan->edma, ch, regs->serq);
64 struct edma_regs *regs = &fsl_chan->edma->regs;
67 if (fsl_chan->edma->drvdata->version == v1) {
68 edma_writeb(fsl_chan->edma, ch, regs->cerq);
69 edma_writeb(fsl_chan->edma, EDMA_CEEI_CEEI(ch), regs->ceei);
113 u32 dmamux_nr = fsl_chan->edma->drvdata->dmamuxs;
115 chans_per_mux = fsl_chan->edma->n_chans / dmamux_nr;
118 if (fsl_chan->edma->drvdata->mux_swap)
121 muxaddr = fsl_chan->edma->muxbase[ch / chans_per_mux];
124 if (fsl_chan->edma->drvdata->version == v3)
274 struct edma_regs *regs = &fsl_chan->edma->regs;
290 cur_addr = edma_readl(fsl_chan->edma, ®s->tcd[ch].saddr);
292 cur_addr = edma_readl(fsl_chan->edma, ®s->tcd[ch].daddr);
348 struct fsl_edma_engine *edma = fsl_chan->edma;
349 struct edma_regs *regs = &fsl_chan->edma->regs;
358 edma_writew(edma, 0, ®s->tcd[ch].csr);
360 edma_writel(edma, (s32)tcd->saddr, ®s->tcd[ch].saddr);
361 edma_writel(edma, (s32)tcd->daddr, ®s->tcd[ch].daddr);
363 edma_writew(edma, (s16)tcd->attr, ®s->tcd[ch].attr);
364 edma_writew(edma, tcd->soff, ®s->tcd[ch].soff);
366 edma_writel(edma, (s32)tcd->nbytes, ®s->tcd[ch].nbytes);
367 edma_writel(edma, (s32)tcd->slast, ®s->tcd[ch].slast);
369 edma_writew(edma, (s16)tcd->citer, ®s->tcd[ch].citer);
370 edma_writew(edma, (s16)tcd->biter, ®s->tcd[ch].biter);
371 edma_writew(edma, (s16)tcd->doff, ®s->tcd[ch].doff);
373 edma_writel(edma, (s32)tcd->dlast_sga,
376 edma_writew(edma, (s16)tcd->csr, ®s->tcd[ch].csr);
671 * On the 32 channels Vybrid/mpc577x edma version (here called "v1"),
673 * edma (here called "v2").
677 * edma "version" and "membase" appropriately.
679 void fsl_edma_setup_regs(struct fsl_edma_engine *edma)
681 edma->regs.cr = edma->membase + EDMA_CR;
682 edma->regs.es = edma->membase + EDMA_ES;
683 edma->regs.erql = edma->membase + EDMA_ERQ;
684 edma->regs.eeil = edma->membase + EDMA_EEI;
686 edma->regs.serq = edma->membase + ((edma->drvdata->version == v2) ?
688 edma->regs.cerq = edma->membase + ((edma->drvdata->version == v2) ?
690 edma->regs.seei = edma->membase + ((edma->drvdata->version == v2) ?
692 edma->regs.ceei = edma->membase + ((edma->drvdata->version == v2) ?
694 edma->regs.cint = edma->membase + ((edma->drvdata->version == v2) ?
696 edma->regs.cerr = edma->membase + ((edma->drvdata->version == v2) ?
698 edma->regs.ssrt = edma->membase + ((edma->drvdata->version == v2) ?
700 edma->regs.cdne = edma->membase + ((edma->drvdata->version == v2) ?
702 edma->regs.intl = edma->membase + ((edma->drvdata->version == v2) ?
704 edma->regs.errl = edma->membase + ((edma->drvdata->version == v2) ?
707 if (edma->drvdata->version == v2) {
708 edma->regs.erqh = edma->membase + EDMA64_ERQH;
709 edma->regs.eeih = edma->membase + EDMA64_EEIH;
710 edma->regs.errh = edma->membase + EDMA64_ERRH;
711 edma->regs.inth = edma->membase + EDMA64_INTH;
714 edma->regs.tcd = edma->membase + EDMA_TCD;