As discussed in the related question, it's not possible to clear the TX FIFO when the SPI is set as a peripheral. I'd like to be able to allow a controller to communicate with my peripheral whenever it likes via SPI. I'd like to use the SPI IDLE interrupt that is triggered on a rising edge of Chip Select to point a DMA channel to the next set of data to be transmitted. However, because I can't know how much data the controller has read from my peripheral, I can't know if there's anything left in the FIFO. I have been told that I need to reset the SPI peripheral after each transaction in order to flush the FIFO ready for the next transaction.
What is the minimum amount of "reset" I need to perform to empty the TX FIFO so that I can get it to a clean state? Can I just toggle the ENABLE bit in CTL1? Do I need to set RESETASSERT in RSTCTL? I'd like to avoid as much reconfiguration as possible - both from the point of view of keeping potential SPI downtime to a minimum, and to avoid any possibility of IO glitching, etc.