7#ifndef _FSL_PDM_EDMA_H_
8#define _FSL_PDM_EDMA_H_
25#define FSL_PDM_EDMA_DRIVER_VERSION (MAKE_VERSION(2, 6, 1))
85#if defined(__cplusplus)
247#if defined(__cplusplus)
struct _edma_tcd edma_tcd_t
eDMA TCD.
struct _edma_handle edma_handle_t
eDMA transfer handle structure
int32_t status_t
Type used for all status and error return values.
Definition fsl_common.h:225
struct _pdm_channel_config pdm_channel_config_t
PDM channel configurations.
void PDM_TransferSetChannelConfigEDMA(PDM_Type *base, pdm_edma_handle_t *handle, uint32_t channel, const pdm_channel_config_t *config)
Configures the PDM channel.
Definition fsl_pdm_edma.c:194
struct _pdm_edma_handle pdm_edma_handle_t
PDM edma handler.
Definition fsl_pdm_edma.h:29
status_t PDM_TransferGetReceiveCountEDMA(PDM_Type *base, pdm_edma_handle_t *handle, size_t *count)
Gets byte count received by PDM.
Definition fsl_pdm_edma.c:452
void PDM_TransferInstallEDMATCDMemory(pdm_edma_handle_t *handle, void *tcdAddr, size_t tcdNum)
Install EDMA descriptor memory.
Definition fsl_pdm_edma.c:178
void(*) pdm_edma_callback_t(PDM_Type *base, pdm_edma_handle_t *handle, status_t status, void *userData)
PDM eDMA transfer callback function for finish and error.
Definition fsl_pdm_edma.h:58
void PDM_TransferCreateHandleEDMA(PDM_Type *base, pdm_edma_handle_t *handle, pdm_edma_callback_t callback, void *userData, edma_handle_t *dmaHandle)
Initializes the PDM Rx eDMA handle.
Definition fsl_pdm_edma.c:130
enum _pdm_edma_multi_channel_interleave pdm_edma_multi_channel_interleave_t
pdm multi channel interleave type
_pdm_edma_multi_channel_interleave
pdm multi channel interleave type
Definition fsl_pdm_edma.h:33
struct _pdm_edma_transfer pdm_edma_transfer_t
PDM edma transfer.
status_t PDM_TransferReceiveEDMA(PDM_Type *base, pdm_edma_handle_t *handle, pdm_edma_transfer_t *xfer)
Performs a non-blocking PDM receive using eDMA.
Definition fsl_pdm_edma.c:278
void PDM_TransferAbortReceiveEDMA(PDM_Type *base, pdm_edma_handle_t *handle)
Aborts a PDM receive using eDMA.
Definition fsl_pdm_edma.c:401
void PDM_TransferSetMultiChannelInterleaveType(pdm_edma_handle_t *handle, pdm_edma_multi_channel_interleave_t multiChannelInterleaveType)
Initializes the multi PDM channel interleave type.
Definition fsl_pdm_edma.c:165
void PDM_TransferTerminateReceiveEDMA(PDM_Type *base, pdm_edma_handle_t *handle)
Terminate all PDM receive.
Definition fsl_pdm_edma.c:430
@ kPDM_EDMAMultiChannelInterleavePerChannelBlock
Definition fsl_pdm_edma.h:40
@ kPDM_EDMAMultiChannelInterleavePerChannelSample
Definition fsl_pdm_edma.h:34
Definition MIMXRT1166_cm4.h:65557
PDM DMA transfer handle, users should not touch the content of the handle.
Definition fsl_pdm_edma.h:62
bool isLoopTransfer
Definition fsl_pdm_edma.h:68
edma_handle_t * dmaHandle
Definition fsl_pdm_edma.h:63
uint8_t channelNums
Definition fsl_pdm_edma.h:79
uint32_t tcdNum
Definition fsl_pdm_edma.h:71
uint8_t count
Definition fsl_pdm_edma.h:64
void * userData
Definition fsl_pdm_edma.h:69
pdm_edma_callback_t callback
Definition fsl_pdm_edma.h:67
pdm_edma_multi_channel_interleave_t interleaveType
Definition fsl_pdm_edma.h:76
volatile uint32_t tcdUsedNum
Definition fsl_pdm_edma.h:74
uint32_t tcdUser
Definition fsl_pdm_edma.h:72
uint32_t receivedBytes
Definition fsl_pdm_edma.h:65
edma_tcd_t * tcd
Definition fsl_pdm_edma.h:70
uint8_t endChannel
Definition fsl_pdm_edma.h:78
uint32_t tcdDriver
Definition fsl_pdm_edma.h:73
uint32_t state
Definition fsl_pdm_edma.h:66
PDM edma transfer.
Definition fsl_pdm_edma.h:51
volatile uint8_t * data
Definition fsl_pdm_edma.h:52
struct _pdm_edma_transfer * linkTransfer
Definition fsl_pdm_edma.h:54
volatile size_t dataSize
Definition fsl_pdm_edma.h:53