MCUXpresso SDK API Reference Manual: Common Driver

| MCUXpresso SDK API Reference Manual Rev 2.11.1 NXP Semiconductors

- Main Page
- Related Pages
- API Reference

All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages
Macros | Typedefs | Enumerations | Functions
Common Driver

## Overview

The MCUXpresso SDK provides a driver for the common module of MCUXpresso SDK devices.

## Macros
#define | FSL_DRIVER_TRANSFER_DOUBLE_WEAK_IRQ 1
| Macro to use the default weak IRQ handler in drivers. More...
#define | MAKE_STATUS(group, code) ((((group)*100L) + (code)))
| Construct a status code value from a group and code number. More...
#define | MAKE_VERSION(major, minor, bugfix) (((major) * 65536L) + ((minor) * 256L) + (bugfix))
| Construct the version number for drivers. More...
#define | DEBUG_CONSOLE_DEVICE_TYPE_NONE 0U
| No debug console. More...
#define | DEBUG_CONSOLE_DEVICE_TYPE_UART 1U
| Debug console based on UART. More...
#define | DEBUG_CONSOLE_DEVICE_TYPE_LPUART 2U
| Debug console based on LPUART. More...
#define | DEBUG_CONSOLE_DEVICE_TYPE_LPSCI 3U
| Debug console based on LPSCI. More...
#define | DEBUG_CONSOLE_DEVICE_TYPE_USBCDC 4U
| Debug console based on USBCDC. More...
#define | DEBUG_CONSOLE_DEVICE_TYPE_FLEXCOMM 5U
| Debug console based on FLEXCOMM. More...
#define | DEBUG_CONSOLE_DEVICE_TYPE_IUART 6U
| Debug console based on i.MX UART. More...
#define | DEBUG_CONSOLE_DEVICE_TYPE_VUSART 7U
| Debug console based on LPC_VUSART. More...
#define | DEBUG_CONSOLE_DEVICE_TYPE_MINI_USART 8U
| Debug console based on LPC_USART. More...
#define | DEBUG_CONSOLE_DEVICE_TYPE_SWO 9U
| Debug console based on SWO. More...
#define | DEBUG_CONSOLE_DEVICE_TYPE_QSCI 10U
| Debug console based on QSCI. More...
#define | ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
| Computes the number of elements in an array. More...

## Typedefs
typedef int32_t | status_t
| Type used for all status and error return values. More...

## Enumerations
enum | _status_groups { kStatusGroup_Generic = 0, kStatusGroup_FLASH = 1, kStatusGroup_LPSPI = 4, kStatusGroup_FLEXIO_SPI = 5, kStatusGroup_DSPI = 6, kStatusGroup_FLEXIO_UART = 7, kStatusGroup_FLEXIO_I2C = 8, kStatusGroup_LPI2C = 9, kStatusGroup_UART = 10, kStatusGroup_I2C = 11, kStatusGroup_LPSCI = 12, kStatusGroup_LPUART = 13, kStatusGroup_SPI = 14, kStatusGroup_XRDC = 15, kStatusGroup_SEMA42 = 16, kStatusGroup_SDHC = 17, kStatusGroup_SDMMC = 18, kStatusGroup_SAI = 19, kStatusGroup_MCG = 20, kStatusGroup_SCG = 21, kStatusGroup_SDSPI = 22, kStatusGroup_FLEXIO_I2S = 23, kStatusGroup_FLEXIO_MCULCD = 24, kStatusGroup_FLASHIAP = 25, kStatusGroup_FLEXCOMM_I2C = 26, kStatusGroup_I2S = 27, kStatusGroup_IUART = 28, kStatusGroup_CSI = 29, kStatusGroup_MIPI_DSI = 30, kStatusGroup_SDRAMC = 35, kStatusGroup_POWER = 39, kStatusGroup_ENET = 40, kStatusGroup_PHY = 41, kStatusGroup_TRGMUX = 42, kStatusGroup_SMARTCARD = 43, kStatusGroup_LMEM = 44, kStatusGroup_QSPI = 45, kStatusGroup_DMA = 50, kStatusGroup_EDMA = 51, kStatusGroup_DMAMGR = 52, kStatusGroup_FLEXCAN = 53, kStatusGroup_LTC = 54, kStatusGroup_FLEXIO_CAMERA = 55, kStatusGroup_LPC_SPI = 56, kStatusGroup_LPC_USART = 57, kStatusGroup_DMIC = 58, kStatusGroup_SDIF = 59, kStatusGroup_SPIFI = 60, kStatusGroup_OTP = 61, kStatusGroup_MCAN = 62, kStatusGroup_CAAM = 63, kStatusGroup_ECSPI = 64, kStatusGroup_USDHC = 65, kStatusGroup_LPC_I2C = 66, kStatusGroup_DCP = 67, kStatusGroup_MSCAN = 68, kStatusGroup_ESAI = 69, kStatusGroup_FLEXSPI = 70, kStatusGroup_MMDC = 71, kStatusGroup_PDM = 72, kStatusGroup_SDMA = 73, kStatusGroup_ICS = 74, kStatusGroup_SPDIF = 75, kStatusGroup_LPC_MINISPI = 76, kStatusGroup_HASHCRYPT = 77, kStatusGroup_LPC_SPI_SSP = 78, kStatusGroup_I3C = 79, kStatusGroup_LPC_I2C_1 = 97, kStatusGroup_NOTIFIER = 98, kStatusGroup_DebugConsole = 99, kStatusGroup_SEMC = 100, kStatusGroup_ApplicationRangeStart = 101, kStatusGroup_IAP = 102, kStatusGroup_SFA = 103, kStatusGroup_SPC = 104, kStatusGroup_PUF = 105, kStatusGroup_TOUCH_PANEL = 106, kStatusGroup_HAL_GPIO = 121, kStatusGroup_HAL_UART = 122, kStatusGroup_HAL_TIMER = 123, kStatusGroup_HAL_SPI = 124, kStatusGroup_HAL_I2C = 125, kStatusGroup_HAL_FLASH = 126, kStatusGroup_HAL_PWM = 127, kStatusGroup_HAL_RNG = 128, kStatusGroup_HAL_I2S = 129, kStatusGroup_TIMERMANAGER = 135, kStatusGroup_SERIALMANAGER = 136, kStatusGroup_LED = 137, kStatusGroup_BUTTON = 138, kStatusGroup_EXTERN_EEPROM = 139, kStatusGroup_SHELL = 140, kStatusGroup_MEM_MANAGER = 141, kStatusGroup_LIST = 142, kStatusGroup_OSA = 143, kStatusGroup_COMMON_TASK = 144, kStatusGroup_MSG = 145, kStatusGroup_SDK_OCOTP = 146, kStatusGroup_SDK_FLEXSPINOR = 147, kStatusGroup_CODEC = 148, kStatusGroup_ASRC = 149, kStatusGroup_OTFAD = 150, kStatusGroup_SDIOSLV = 151, kStatusGroup_MECC = 152, kStatusGroup_ENET_QOS = 153, kStatusGroup_LOG = 154, kStatusGroup_I3CBUS = 155, kStatusGroup_QSCI = 156, kStatusGroup_SNT = 157, kStatusGroup_QUEUEDSPI = 158, kStatusGroup_POWER_MANAGER = 159 }
| Status group numbers. More...
enum | { kStatus_Success = MAKE_STATUS(kStatusGroup_Generic, 0), kStatus_Fail = MAKE_STATUS(kStatusGroup_Generic, 1), kStatus_ReadOnly = MAKE_STATUS(kStatusGroup_Generic, 2), kStatus_OutOfRange = MAKE_STATUS(kStatusGroup_Generic, 3), kStatus_InvalidArgument = MAKE_STATUS(kStatusGroup_Generic, 4), kStatus_Timeout = MAKE_STATUS(kStatusGroup_Generic, 5), kStatus_NoTransferInProgress, kStatus_Busy = MAKE_STATUS(kStatusGroup_Generic, 7), kStatus_NoData }
| Generic status return codes. More...

## Functions
void * | SDK_Malloc (size_t size, size_t alignbytes)
| Allocate memory with given alignment and aligned size. More...
void | SDK_Free (void *ptr)
| Free memory. More...
void | SDK_DelayAtLeastUs (uint32_t delayTime_us, uint32_t coreClock_Hz)
| Delay at least for some time. More...

## Driver version
#define | FSL_COMMON_DRIVER_VERSION (MAKE_VERSION(2, 3, 1))
| common driver version. More...

## Min/max macros
#define | MIN(a, b) (((a) < (b)) ? (a) : (b))
#define | MAX(a, b) (((a) > (b)) ? (a) : (b))

## UINT16_MAX/UINT32_MAX value
#define | UINT16_MAX ((uint16_t)-1)
#define | UINT32_MAX ((uint32_t)-1)

## Suppress fallthrough warning macro
#define | SUPPRESS_FALL_THROUGH_WARNING()

## Macro Definition Documentation

#define FSL_DRIVER_TRANSFER_DOUBLE_WEAK_IRQ 1

#define MAKE_STATUS | ( |  | group,
|  |  | code
| ) |  | ((((group)*100L) + (code)))

#define MAKE_VERSION | ( |  | major,
|  |  | minor,
|  |  | bugfix
| ) |  | (((major) * 65536L) + ((minor) * 256L) + (bugfix))

The driver version is a 32-bit number, for both 32-bit platforms(such as Cortex M) and 16-bit platforms(such as DSC).

    | Unused    || Major Version || Minor Version ||  Bug Fix    |
    31        25  24           17  16            9  8            0

#define FSL_COMMON_DRIVER_VERSION (MAKE_VERSION(2, 3, 1))

#define DEBUG_CONSOLE_DEVICE_TYPE_NONE 0U

#define DEBUG_CONSOLE_DEVICE_TYPE_UART 1U

#define DEBUG_CONSOLE_DEVICE_TYPE_LPUART 2U

#define DEBUG_CONSOLE_DEVICE_TYPE_LPSCI 3U

#define DEBUG_CONSOLE_DEVICE_TYPE_USBCDC 4U

#define DEBUG_CONSOLE_DEVICE_TYPE_FLEXCOMM 5U

#define DEBUG_CONSOLE_DEVICE_TYPE_IUART 6U

#define DEBUG_CONSOLE_DEVICE_TYPE_VUSART 7U

#define DEBUG_CONSOLE_DEVICE_TYPE_MINI_USART 8U

#define DEBUG_CONSOLE_DEVICE_TYPE_SWO 9U

#define DEBUG_CONSOLE_DEVICE_TYPE_QSCI 10U

#define ARRAY_SIZE | ( |  | x | ) | (sizeof(x) / sizeof((x)[0]))

## Typedef Documentation

typedef int32_t status_t

## Enumeration Type Documentation

enum _status_groups

Enumerator
kStatusGroup_Generic | Group number for generic status codes.
kStatusGroup_FLASH | Group number for FLASH status codes.
kStatusGroup_LPSPI | Group number for LPSPI status codes.
kStatusGroup_FLEXIO_SPI | Group number for FLEXIO SPI status codes.
kStatusGroup_DSPI | Group number for DSPI status codes.
kStatusGroup_FLEXIO_UART | Group number for FLEXIO UART status codes.
kStatusGroup_FLEXIO_I2C | Group number for FLEXIO I2C status codes.
kStatusGroup_LPI2C | Group number for LPI2C status codes.
kStatusGroup_UART | Group number for UART status codes.
kStatusGroup_I2C | Group number for UART status codes.
kStatusGroup_LPSCI | Group number for LPSCI status codes.
kStatusGroup_LPUART | Group number for LPUART status codes.
kStatusGroup_SPI | Group number for SPI status code.
kStatusGroup_XRDC | Group number for XRDC status code.
kStatusGroup_SEMA42 | Group number for SEMA42 status code.
kStatusGroup_SDHC | Group number for SDHC status code.
kStatusGroup_SDMMC | Group number for SDMMC status code.
kStatusGroup_SAI | Group number for SAI status code.
kStatusGroup_MCG | Group number for MCG status codes.
kStatusGroup_SCG | Group number for SCG status codes.
kStatusGroup_SDSPI | Group number for SDSPI status codes.
kStatusGroup_FLEXIO_I2S | Group number for FLEXIO I2S status codes.
kStatusGroup_FLEXIO_MCULCD | Group number for FLEXIO LCD status codes.
kStatusGroup_FLASHIAP | Group number for FLASHIAP status codes.
kStatusGroup_FLEXCOMM_I2C | Group number for FLEXCOMM I2C status codes.
kStatusGroup_I2S | Group number for I2S status codes.
kStatusGroup_IUART | Group number for IUART status codes.
kStatusGroup_CSI | Group number for CSI status codes.
kStatusGroup_MIPI_DSI | Group number for MIPI DSI status codes.
kStatusGroup_SDRAMC | Group number for SDRAMC status codes.
kStatusGroup_POWER | Group number for POWER status codes.
kStatusGroup_ENET | Group number for ENET status codes.
kStatusGroup_PHY | Group number for PHY status codes.
kStatusGroup_TRGMUX | Group number for TRGMUX status codes.
kStatusGroup_SMARTCARD | Group number for SMARTCARD status codes.
kStatusGroup_LMEM | Group number for LMEM status codes.
kStatusGroup_QSPI | Group number for QSPI status codes.
kStatusGroup_DMA | Group number for DMA status codes.
kStatusGroup_EDMA | Group number for EDMA status codes.
kStatusGroup_DMAMGR | Group number for DMAMGR status codes.
kStatusGroup_FLEXCAN | Group number for FlexCAN status codes.
kStatusGroup_LTC | Group number for LTC status codes.
kStatusGroup_FLEXIO_CAMERA | Group number for FLEXIO CAMERA status codes.
kStatusGroup_LPC_SPI | Group number for LPC_SPI status codes.
kStatusGroup_LPC_USART | Group number for LPC_USART status codes.
kStatusGroup_DMIC | Group number for DMIC status codes.
kStatusGroup_SDIF | Group number for SDIF status codes.
kStatusGroup_SPIFI | Group number for SPIFI status codes.
kStatusGroup_OTP | Group number for OTP status codes.
kStatusGroup_MCAN | Group number for MCAN status codes.
kStatusGroup_CAAM | Group number for CAAM status codes.
kStatusGroup_ECSPI | Group number for ECSPI status codes.
kStatusGroup_USDHC | Group number for USDHC status codes.
kStatusGroup_LPC_I2C | Group number for LPC_I2C status codes.
kStatusGroup_DCP | Group number for DCP status codes.
kStatusGroup_MSCAN | Group number for MSCAN status codes.
kStatusGroup_ESAI | Group number for ESAI status codes.
kStatusGroup_FLEXSPI | Group number for FLEXSPI status codes.
kStatusGroup_MMDC | Group number for MMDC status codes.
kStatusGroup_PDM | Group number for MIC status codes.
kStatusGroup_SDMA | Group number for SDMA status codes.
kStatusGroup_ICS | Group number for ICS status codes.
kStatusGroup_SPDIF | Group number for SPDIF status codes.
kStatusGroup_LPC_MINISPI | Group number for LPC_MINISPI status codes.
kStatusGroup_HASHCRYPT | Group number for Hashcrypt status codes.
kStatusGroup_LPC_SPI_SSP | Group number for LPC_SPI_SSP status codes.
kStatusGroup_I3C | Group number for I3C status codes.
kStatusGroup_LPC_I2C_1 | Group number for LPC_I2C_1 status codes.
kStatusGroup_NOTIFIER | Group number for NOTIFIER status codes.
kStatusGroup_DebugConsole | Group number for debug console status codes.
kStatusGroup_SEMC | Group number for SEMC status codes.
kStatusGroup_ApplicationRangeStart | Starting number for application groups.
kStatusGroup_IAP | Group number for IAP status codes.
kStatusGroup_SFA | Group number for SFA status codes.
kStatusGroup_SPC | Group number for SPC status codes.
kStatusGroup_PUF | Group number for PUF status codes.
kStatusGroup_TOUCH_PANEL | Group number for touch panel status codes.
kStatusGroup_HAL_GPIO | Group number for HAL GPIO status codes.
kStatusGroup_HAL_UART | Group number for HAL UART status codes.
kStatusGroup_HAL_TIMER | Group number for HAL TIMER status codes.
kStatusGroup_HAL_SPI | Group number for HAL SPI status codes.
kStatusGroup_HAL_I2C | Group number for HAL I2C status codes.
kStatusGroup_HAL_FLASH | Group number for HAL FLASH status codes.
kStatusGroup_HAL_PWM | Group number for HAL PWM status codes.
kStatusGroup_HAL_RNG | Group number for HAL RNG status codes.
kStatusGroup_HAL_I2S | Group number for HAL I2S status codes.
kStatusGroup_TIMERMANAGER | Group number for TiMER MANAGER status codes.
kStatusGroup_SERIALMANAGER | Group number for SERIAL MANAGER status codes.
kStatusGroup_LED | Group number for LED status codes.
kStatusGroup_BUTTON | Group number for BUTTON status codes.
kStatusGroup_EXTERN_EEPROM | Group number for EXTERN EEPROM status codes.
kStatusGroup_SHELL | Group number for SHELL status codes.
kStatusGroup_MEM_MANAGER | Group number for MEM MANAGER status codes.
kStatusGroup_LIST | Group number for List status codes.
kStatusGroup_OSA | Group number for OSA status codes.
kStatusGroup_COMMON_TASK | Group number for Common task status codes.
kStatusGroup_MSG | Group number for messaging status codes.
kStatusGroup_SDK_OCOTP | Group number for OCOTP status codes.
kStatusGroup_SDK_FLEXSPINOR | Group number for FLEXSPINOR status codes.
kStatusGroup_CODEC | Group number for codec status codes.
kStatusGroup_ASRC | Group number for codec status ASRC.
kStatusGroup_OTFAD | Group number for codec status codes.
kStatusGroup_SDIOSLV | Group number for SDIOSLV status codes.
kStatusGroup_MECC | Group number for MECC status codes.
kStatusGroup_ENET_QOS | Group number for ENET_QOS status codes.
kStatusGroup_LOG | Group number for LOG status codes.
kStatusGroup_I3CBUS | Group number for I3CBUS status codes.
kStatusGroup_QSCI | Group number for QSCI status codes.
kStatusGroup_SNT | Group number for SNT status codes.
kStatusGroup_QUEUEDSPI | Group number for QSPI status codes.
kStatusGroup_POWER_MANAGER | Group number for POWER_MANAGER status codes.

anonymous enum

Enumerator
kStatus_Success | Generic status for Success.
kStatus_Fail | Generic status for Fail.
kStatus_ReadOnly | Generic status for read only failure.
kStatus_OutOfRange | Generic status for out of range access.
kStatus_InvalidArgument | Generic status for invalid argument check.
kStatus_Timeout | Generic status for timeout.
kStatus_NoTransferInProgress | Generic status for no transfer in progress.
kStatus_Busy | Generic status for module is busy.
kStatus_NoData | Generic status for no data is found for the operation.

## Function Documentation

void* SDK_Malloc | ( | size_t | size,
|  | size_t | alignbytes
| ) |  |

This is provided to support the dynamically allocated memory used in cache-able region.

Parameters

  size | The length required to malloc.
  alignbytes | The alignment size.

Return values

  The | allocated memory.

void SDK_Free | ( | void * | ptr | ) |

Parameters

  ptr | The memory to be release.

void SDK_DelayAtLeastUs | ( | uint32_t | delayTime_us,
|  | uint32_t | coreClock_Hz
| ) |  |

Please note that, this API uses while loop for delay, different run-time environments make the time not precise, if precise delay count was needed, please implement a new delay function with hardware timer.

Parameters

  delayTime_us | Delay time in unit of microsecond.
  coreClock_Hz | Core clock frequency with Hz.