Steve Joiner

547x DMA DSPI Problems

Discussion created by Steve Joiner on May 5, 2006
Latest reply on May 30, 2006 by Michael Norman
I am using LTIB (20051213) on a custom 5472 board. I am converting the DSPI driver in drivers/char/dspi to use DMA.

Initially, I was having problems that seemed like the DMA transfers were transferring data to the DSPI as fast as possible instead of waiting for the FIFO interrupts from the DSPI. I found the Freescale DMA example code posted on this forum and it had a fix for the problem. The fix was to set bit 0x40 in the flags argument when calling MCD_startDma(). So, instead of specifying MCD_SINGLE_DMA, I would specify MCD_SINGLE_DMA | 0x40.

So that fixed the problem, but introduced a new one. With the 0x40 flag, any DMA transfers after the first don't happen. If I take the 0x40 out, I get my transfers back, but the original problem of not waiting for the DSPI FIFO interrupts comes back.

Does anyone know what is going on here? Any suggestions as to how to fix it? Also, does anyone know where the 0x40 is documented? I couldn't find it in any of the 547x Reference Manual.