/* brief Initializes the DMIC handle which is used in transactional functions. param base DMIC peripheral base address. param handle Pointer to dmic_dma_handle_t structure. param callback Callback function. param userData User data. param rxDmaHandle User-requested DMA handle for RX DMA transfer.  */
status_t DMIC_TransferCreateHandleDMA(DMIC_Type *base, dmic_dma_handle_t *handle, dmic_dma_transfer_callback_t callback, void *userData, dma_handle_t *rxDmaHandle)
/* brief Initializes the DMIC handle which is used in transactional functions. param base DMIC peripheral base address. param handle Pointer to dmic_dma_handle_t structure. param callback Callback function. param userData User data. param rxDmaHandle User-requested DMA handle for RX DMA transfer.  */
status_t DMIC_TransferCreateHandleDMA(DMIC_Type *base, dmic_dma_handle_t *handle, dmic_dma_transfer_callback_t callback, void *userData, dma_handle_t *rxDmaHandle)
{
    assert(NULL != base);
    assert(NULL != handle);
    assert(NULL != rxDmaHandle);
    (void)memset(handle, 0, sizeof(*handle));
    handle->callback    = callback;
    handle->userData    = userData;
    handle->rxDmaHandle = rxDmaHandle;
    handle->state = kDMIC_Idle;
    DMA_SetCallback(rxDmaHandle, DMIC_TransferReceiveDMACallback, handle);
    return kStatus_Success;
}