Hi There Tim.
Craig asked me to chime in on these SPI questions...
Regarding the most recent question, your configuration is correct to enable the SPISSEL5 as a SPI signal, and it is the signal that should be driven by the SPI hardware to control the slave...however, because you have CPHA set to 0, you are not allowing software to control the chip-select, so what you write to the upper-order bits of the SPI_FLG register is irrelevant. Enabling the FLS output by setting bit 5 of the SPI_FLG register instructs the SPI port to toggle that select low whenever a byte is ready to be sent/received by our SPI acting as the master. I cannot tell what you are asking me when you say that you disable the SPI (by clearing bit 14)...if the SPI is disabled, then the processor should float the output, so what you see on the pin would either be a float or pulled high (if a conventional external pull-up is used to keep the /CS in the de-asserted state when the host isn't driving it).
Regarding the DMA, I again am not entirely sure what is being asked there. If you are talking about doing a receive DMA from one device on one go and then a transmit DMA to another device (or the same device) on another, then it is as simple as Craig mentioned (i.e., set up the SPI with the correct TIMOD for the device we are reading from, perform the operation, then shut down the SPI and DMA before reconfiguring it again to perform the TX DMA to the second device). If you are talking about trying to perform full-duplex DMA, then that is not possible. While the SPI itself does support full-duplex transfers, there is only one DMA channel associated with the SPI, which means DMA is limited to half-duplex. You could achieve full-duplex operation, but it would be only as a result of polling the status register throughout and having software manually handle the direction that is opposite that of the DMA (either poll for TXS clear and load SPI_TDBR or poll for RXS set and read SPI_RDBR).
-Joe