All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages
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.