![]() |
MCUXpresso SDK API Reference Manual
Rev 2.16.000
NXP Semiconductors
|
Data Structures | |
struct | i3c_master_edma_callback_t |
i3c master callback functions. More... | |
struct | i3c_master_edma_handle_t |
Driver handle for master EDMA APIs. More... | |
Master DMA | |
void | I3C_MasterTransferCreateHandleEDMA (I3C_Type *base, i3c_master_edma_handle_t *handle, const i3c_master_edma_callback_t *callback, void *userData, edma_handle_t *rxDmaHandle, edma_handle_t *txDmaHandle) |
Create a new handle for the I3C master DMA APIs. More... | |
status_t | I3C_MasterTransferEDMA (I3C_Type *base, i3c_master_edma_handle_t *handle, i3c_master_transfer_t *transfer) |
Performs a non-blocking DMA-based transaction on the I3C bus. More... | |
status_t | I3C_MasterTransferGetCountEDMA (I3C_Type *base, i3c_master_edma_handle_t *handle, size_t *count) |
Returns number of bytes transferred so far. More... | |
void | I3C_MasterTransferAbortEDMA (I3C_Type *base, i3c_master_edma_handle_t *handle) |
Terminates a non-blocking I3C master transmission early. More... | |
void | I3C_MasterTransferEDMAHandleIRQ (I3C_Type *base, void *i3cHandle) |
Reusable routine to handle master interrupts. More... | |
struct i3c_master_edma_callback_t |
Data Fields | |
void(* | slave2Master )(I3C_Type *base, void *userData) |
Transfer complete callback. | |
void(* | ibiCallback )(I3C_Type *base, i3c_master_edma_handle_t *handle, i3c_ibi_type_t ibiType, i3c_ibi_state_t ibiState) |
IBI event callback. | |
void(* | transferComplete )(I3C_Type *base, i3c_master_edma_handle_t *handle, status_t status, void *userData) |
Transfer complete callback. | |
struct _i3c_master_edma_handle |
Data Fields | |
I3C_Type * | base |
I3C base pointer. More... | |
uint8_t | state |
Transfer state machine current state. More... | |
uint32_t | transferCount |
Indicates progress of the transfer. | |
uint8_t | subaddressBuffer [4] |
Saving subaddress command. More... | |
uint8_t | subaddressCount |
Saving command count. More... | |
i3c_master_transfer_t | transfer |
Copy of the current transfer info. More... | |
i3c_master_edma_callback_t | callback |
Callback function pointer. More... | |
void * | userData |
Application data passed to callback. More... | |
edma_handle_t * | rxDmaHandle |
Handle for receive DMA channel. More... | |
edma_handle_t * | txDmaHandle |
Handle for transmit DMA channel. More... | |
uint8_t | ibiAddress |
Slave address which request IBI. More... | |
uint8_t * | ibiBuff |
Pointer to IBI buffer to keep ibi bytes. More... | |
size_t | ibiPayloadSize |
IBI payload size. More... | |
i3c_ibi_type_t | ibiType |
IBI type. More... | |
I3C_Type* i3c_master_edma_handle_t::base |
uint8_t i3c_master_edma_handle_t::state |
uint8_t i3c_master_edma_handle_t::subaddressBuffer[4] |
uint8_t i3c_master_edma_handle_t::subaddressCount |
i3c_master_transfer_t i3c_master_edma_handle_t::transfer |
i3c_master_edma_callback_t i3c_master_edma_handle_t::callback |
void* i3c_master_edma_handle_t::userData |
edma_handle_t* i3c_master_edma_handle_t::rxDmaHandle |
edma_handle_t* i3c_master_edma_handle_t::txDmaHandle |
uint8_t i3c_master_edma_handle_t::ibiAddress |
uint8_t* i3c_master_edma_handle_t::ibiBuff |
size_t i3c_master_edma_handle_t::ibiPayloadSize |
i3c_ibi_type_t i3c_master_edma_handle_t::ibiType |
void I3C_MasterTransferCreateHandleEDMA | ( | I3C_Type * | base, |
i3c_master_edma_handle_t * | handle, | ||
const i3c_master_edma_callback_t * | callback, | ||
void * | userData, | ||
edma_handle_t * | rxDmaHandle, | ||
edma_handle_t * | txDmaHandle | ||
) |
The creation of a handle is for use with the DMA APIs. Once a handle is created, there is not a corresponding destroy handle. If the user wants to terminate a transfer, the I3C_MasterTransferAbortDMA() API shall be called.
For devices where the I3C send and receive DMA requests are OR'd together, the txDmaHandle parameter is ignored and may be set to NULL.
base | The I3C peripheral base address. |
handle | Pointer to the I3C master driver handle. |
callback | User provided pointer to the asynchronous callback function. |
userData | User provided pointer to the application callback data. |
rxDmaHandle | Handle for the DMA receive channel. Created by the user prior to calling this function. |
txDmaHandle | Handle for the DMA transmit channel. Created by the user prior to calling this function. |
status_t I3C_MasterTransferEDMA | ( | I3C_Type * | base, |
i3c_master_edma_handle_t * | handle, | ||
i3c_master_transfer_t * | transfer | ||
) |
The callback specified when the handle was created is invoked when the transaction has completed.
base | The I3C peripheral base address. |
handle | Pointer to the I3C master driver handle. |
transfer | The pointer to the transfer descriptor. |
kStatus_Success | The transaction was started successfully. |
kStatus_I3C_Busy | Either another master is currently utilizing the bus, or another DMA transaction is already in progress. |
status_t I3C_MasterTransferGetCountEDMA | ( | I3C_Type * | base, |
i3c_master_edma_handle_t * | handle, | ||
size_t * | count | ||
) |
base | The I3C peripheral base address. | |
handle | Pointer to the I3C master driver handle. | |
[out] | count | Number of bytes transferred so far by the non-blocking transaction. |
kStatus_Success | |
kStatus_NoTransferInProgress | There is not a DMA transaction currently in progress. |
void I3C_MasterTransferAbortEDMA | ( | I3C_Type * | base, |
i3c_master_edma_handle_t * | handle | ||
) |
base | The I3C peripheral base address. |
handle | Pointer to the I3C master driver handle. |
void I3C_MasterTransferEDMAHandleIRQ | ( | I3C_Type * | base, |
void * | i3cHandle | ||
) |
base | The I3C peripheral base address. |
i3cHandle | Pointer to the I3C master DMA driver handle. |