MCUXpresso SDK API Reference Manual  Rev. 0
NXP Semiconductors
 All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages
FlexIO SMARTDMA MCU Interface LCD Driver

Data Structures

struct  flexio_mculcd_smartdma_handle_t
 FlexIO MCULCD SMARTDMA transfer handle, users should not touch the content of the handle. More...
 
struct  flexio_mculcd_smartdma_config_t
 FlexIO MCULCD SMARTDMA configuration. More...
 

Macros

#define FSL_FLEXIO_MCULCD_SMARTDMA_DRIVER_VERSION   (MAKE_VERSION(2, 0, 1))
 FlexIO MCULCD SMARTDMA driver version. More...
 
#define FLEXIO_MCULCD_SMARTDMA_TX_LEN_ALIGN   64U
 SMARTDMA transfer size should be multiple of 64 bytes. More...
 
#define FLEXIO_MCULCD_SMARTDMA_TX_ADDR_ALIGN   4U
 SMARTDMA transfer memory address should be 4 byte aligned. More...
 

Typedefs

typedef void(* flexio_mculcd_smartdma_transfer_callback_t )(FLEXIO_MCULCD_Type *base, flexio_mculcd_smartdma_handle_t *handle, status_t status, void *userData)
 FlexIO MCULCD master callback for transfer complete. More...
 

SMARTDMA Transactional

status_t FLEXIO_MCULCD_TransferCreateHandleSMARTDMA (FLEXIO_MCULCD_Type *base, flexio_mculcd_smartdma_handle_t *handle, const flexio_mculcd_smartdma_config_t *config, flexio_mculcd_smartdma_transfer_callback_t callback, void *userData)
 Initializes the FLEXO MCULCD master SMARTDMA handle. More...
 
status_t FLEXIO_MCULCD_TransferSMARTDMA (FLEXIO_MCULCD_Type *base, flexio_mculcd_smartdma_handle_t *handle, flexio_mculcd_transfer_t *xfer)
 Performs a non-blocking FlexIO MCULCD transfer using SMARTDMA. More...
 
void FLEXIO_MCULCD_TransferAbortSMARTDMA (FLEXIO_MCULCD_Type *base, flexio_mculcd_smartdma_handle_t *handle)
 Aborts a FlexIO MCULCD transfer using SMARTDMA. More...
 
status_t FLEXIO_MCULCD_TransferGetCountSMARTDMA (FLEXIO_MCULCD_Type *base, flexio_mculcd_smartdma_handle_t *handle, size_t *count)
 Gets the remaining bytes for FlexIO MCULCD SMARTDMA transfer. More...
 

Detailed Description


Data Structure Documentation

struct _flexio_mculcd_smartdma_handle

typedef for flexio_mculcd_smartdma_handle_t in advance.

Data Fields

FLEXIO_MCULCD_Typebase
 Pointer to the FLEXIO_MCULCD_Type. More...
 
size_t dataCount
 Total count to be transferred. More...
 
uint32_t dataAddrOrSameValue
 When sending the same value for many times, this is the value to send. More...
 
size_t dataCountUsingEzh
 Data transfered using SMARTDMA. More...
 
volatile size_t remainingCount
 Remaining count to transfer. More...
 
volatile uint32_t state
 FlexIO MCULCD driver internal state. More...
 
uint8_t smartdmaApi
 The SMARTDMA API used during transfer. More...
 
bool needColorConvert
 Need color convert or not. More...
 
uint8_t blockingXferBuffer [FLEXIO_MCULCD_SMARTDMA_TX_LEN_ALIGN *3/2]
 Used for blocking method color space convet. More...
 
flexio_mculcd_smartdma_transfer_callback_t completionCallback
 Callback for MCULCD SMARTDMA transfer.
 
void * userData
 User Data for MCULCD SMARTDMA callback.
 
smartdma_flexio_mculcd_param_t smartdmaParam
 SMARTDMA function parameters. More...
 
uint32_t smartdmaStack [1]
 SMARTDMA function stack. More...
 

Field Documentation

FLEXIO_MCULCD_Type* flexio_mculcd_smartdma_handle_t::base
size_t flexio_mculcd_smartdma_handle_t::dataCount
uint32_t flexio_mculcd_smartdma_handle_t::dataAddrOrSameValue

When writing or reading array, this is the address of the data array.

size_t flexio_mculcd_smartdma_handle_t::dataCountUsingEzh
volatile size_t flexio_mculcd_smartdma_handle_t::remainingCount
volatile uint32_t flexio_mculcd_smartdma_handle_t::state
uint8_t flexio_mculcd_smartdma_handle_t::smartdmaApi
bool flexio_mculcd_smartdma_handle_t::needColorConvert
uint8_t flexio_mculcd_smartdma_handle_t::blockingXferBuffer[FLEXIO_MCULCD_SMARTDMA_TX_LEN_ALIGN *3/2]
smartdma_flexio_mculcd_param_t flexio_mculcd_smartdma_handle_t::smartdmaParam
uint32_t flexio_mculcd_smartdma_handle_t::smartdmaStack[1]
struct flexio_mculcd_smartdma_config_t

Data Fields

flexio_mculcd_pixel_format_t inputPixelFormat
 The pixel format in the frame buffer. More...
 
flexio_mculcd_pixel_format_t outputPixelFormat
 The pixel format on the 8080/68k bus. More...
 

Field Documentation

flexio_mculcd_pixel_format_t flexio_mculcd_smartdma_config_t::inputPixelFormat
flexio_mculcd_pixel_format_t flexio_mculcd_smartdma_config_t::outputPixelFormat

Macro Definition Documentation

#define FSL_FLEXIO_MCULCD_SMARTDMA_DRIVER_VERSION   (MAKE_VERSION(2, 0, 1))
#define FLEXIO_MCULCD_SMARTDMA_TX_LEN_ALIGN   64U
#define FLEXIO_MCULCD_SMARTDMA_TX_ADDR_ALIGN   4U

Typedef Documentation

typedef void(* flexio_mculcd_smartdma_transfer_callback_t)(FLEXIO_MCULCD_Type *base, flexio_mculcd_smartdma_handle_t *handle, status_t status, void *userData)

When transfer finished, the callback function is called and returns the status as kStatus_FLEXIO_MCULCD_Idle.

Function Documentation

status_t FLEXIO_MCULCD_TransferCreateHandleSMARTDMA ( FLEXIO_MCULCD_Type base,
flexio_mculcd_smartdma_handle_t *  handle,
const flexio_mculcd_smartdma_config_t config,
flexio_mculcd_smartdma_transfer_callback_t  callback,
void *  userData 
)

This function initializes the FLEXO MCULCD master SMARTDMA handle which can be used for other FLEXO MCULCD transactional APIs. For a specified FLEXO MCULCD instance, call this API once to get the initialized handle.

Parameters
basePointer to FLEXIO_MCULCD_Type structure.
handlePointer to flexio_mculcd_smartdma_handle_t structure to store the transfer state.
configPointer to the configuration.
callbackMCULCD transfer complete callback, NULL means no callback.
userDatacallback function parameter.
Return values
kStatus_SuccessSuccessfully create the handle.
status_t FLEXIO_MCULCD_TransferSMARTDMA ( FLEXIO_MCULCD_Type base,
flexio_mculcd_smartdma_handle_t *  handle,
flexio_mculcd_transfer_t xfer 
)

This function returns immediately after transfer initiates. Use the callback function to check whether the transfer is completed.

Parameters
basepointer to FLEXIO_MCULCD_Type structure.
handlepointer to flexio_mculcd_smartdma_handle_t structure to store the transfer state.
xferPointer to FlexIO MCULCD transfer structure.
Return values
kStatus_SuccessSuccessfully start a transfer.
kStatus_InvalidArgumentInput argument is invalid.
kStatus_FLEXIO_MCULCD_BusyFlexIO MCULCD is not idle, it is running another transfer.
void FLEXIO_MCULCD_TransferAbortSMARTDMA ( FLEXIO_MCULCD_Type base,
flexio_mculcd_smartdma_handle_t *  handle 
)
Parameters
basepointer to FLEXIO_MCULCD_Type structure.
handleFlexIO MCULCD SMARTDMA handle pointer.
status_t FLEXIO_MCULCD_TransferGetCountSMARTDMA ( FLEXIO_MCULCD_Type base,
flexio_mculcd_smartdma_handle_t *  handle,
size_t *  count 
)
Parameters
basepointer to FLEXIO_MCULCD_Type structure.
handleFlexIO MCULCD SMARTDMA handle pointer.
countNumber of count transferred so far by the SMARTDMA transaction.
Return values
kStatus_SuccessGet the transferred count Successfully.
kStatus_NoTransferInProgressNo transfer in process.