I would like to implement a driver interface function that allows a user to pass in a buffer of SPI bytes to be sent and have that data sent over SPI using DMA. However, the combined command and data implementation of the SPI TX FIFO registers makes this difficult. It looks like I would have to separately allocate four times as much memory (32 bit words instead of 8-bit bytes passed in by the user) to use for DMA, then manually copy the user's data into the memory along with the command words. Is there a better way to do this that does not involve a separate allocation and copy? I do not see an application note or anything similar explaining this. Thank you.