DMAMUX_Init(DMAMUX);
DMAMUX_SetSource(DMAMUX, LPSPI_MASTER_DMA_RX_CHANNEL, kDmaRequestMuxLPSPI3Rx);
DMAMUX_EnableChannel(DMAMUX, LPSPI_MASTER_DMA_RX_CHANNEL);
DMAMUX_SetSource(DMAMUX, LPSPI_MASTER_DMA_TX_CHANNEL, kDmaRequestMuxLPSPI3Tx);
DMAMUX_EnableChannel(DMAMUX, LPSPI_MASTER_DMA_TX_CHANNEL);
/* EDMA init*/
EDMA_GetDefaultConfig(&userConfig);
userConfig.enableDebugMode = true;
EDMA_Init(DMA0, &userConfig);
/*Set up lpspi master*/
memset(&(lpspiEdmaMasterRxRegToRxDataHandle), 0, sizeof(lpspiEdmaMasterRxRegToRxDataHandle));
memset(&(lpspiEdmaMasterTxDataToTxRegHandle), 0, sizeof(lpspiEdmaMasterTxDataToTxRegHandle));
EDMA_CreateHandle(&(lpspiEdmaMasterRxRegToRxDataHandle), DMA0, LPSPI_MASTER_DMA_RX_CHANNEL);
EDMA_CreateHandle(&(lpspiEdmaMasterTxDataToTxRegHandle), DMA0, LPSPI_MASTER_DMA_TX_CHANNEL);
LPSPI_MasterTransferCreateHandleEDMA(LPSPI3, &g_m_edma_handle, LPSPI_MasterUserCallback, NULL, &lpspiEdmaMasterRxRegToRxDataHandle, &lpspiEdmaMasterTxDataToTxRegHandle);
LPSPI_MasterTransferPrepareEDMALite(LPSPI3, &g_m_edma_handle, kLPSPI_MasterPcs0);
/* Start master transfer, receive data from slave */
eDMA_masterXfer.txData = NULL;
eDMA_masterXfer.rxData = eDMA_masterRxData;
eDMA_masterXfer.dataSize = 28;
CS1Low();
isTransferCompleted = false;
//Modifier to not generate transfer at spi level
LPSPI_MasterTransferEDMALite(LPSPI3, &g_m_edma_handle, &eDMA_masterXfer);
LPSPI_EnableDMA(LPSPI3, (uint32_t)kLPSPI_RxDmaEnable | (uint32_t)kLPSPI_TxDmaEnable);