1list(APPEND CMAKE_MODULE_PATH 2 ${CMAKE_CURRENT_LIST_DIR}/mcux-sdk/devices/${MCUX_DEVICE_PATH} 3 ${CMAKE_CURRENT_LIST_DIR}/mcux-sdk/devices/${MCUX_DEVICE_PATH}/drivers 4 ${CMAKE_CURRENT_LIST_DIR}/mcux-sdk/drivers/common 5 ${CMAKE_CURRENT_LIST_DIR}/mcux-sdk/drivers/flexcomm 6 ${CMAKE_CURRENT_LIST_DIR}/mcux-sdk/drivers/lpflexcomm 7 ${CMAKE_CURRENT_LIST_DIR}/mcux-sdk/drivers/flexio 8 ${CMAKE_CURRENT_LIST_DIR}/mcux-sdk/drivers/dmamux 9 ${CMAKE_CURRENT_LIST_DIR}/mcux-sdk/components/osa 10 ${CMAKE_CURRENT_LIST_DIR}/mcux-sdk/components/lists 11) 12 13if(CONFIG_CPU_CORTEX_A) 14 list(APPEND CMAKE_MODULE_PATH 15 ${CMAKE_CURRENT_LIST_DIR}/mcux-sdk/CMSIS/Core_AArch64/Include 16 ) 17else() 18 list(APPEND CMAKE_MODULE_PATH 19 ${CMAKE_CURRENT_LIST_DIR}/mcux-sdk/drivers/cache/armv7-m7 20 ${CMAKE_CURRENT_LIST_DIR}/mcux-sdk/CMSIS/Core/Include 21 ) 22endif() 23 24function(include_ifdef feature_toggle module) 25 if(${${feature_toggle}}) 26 include(${module}) 27 endif() 28endfunction() 29 30function(include_driver_ifdef feature_toggle directory module) 31 if(${${feature_toggle}}) 32 list(APPEND CMAKE_MODULE_PATH 33 ${CMAKE_CURRENT_LIST_DIR}/mcux-sdk/drivers/${directory} 34 ) 35 zephyr_include_directories(${CMAKE_CURRENT_LIST_DIR}/mcux-sdk/drivers/${directory}) 36 include(${module}) 37 endif() 38endfunction() 39 40message("Load components for ${MCUX_DEVICE}:") 41 42#specific operation to shared drivers 43if((DEFINED CONFIG_FLASH_MCUX_FLEXSPI_XIP) AND (DEFINED CONFIG_FLASH)) 44 zephyr_code_relocate(FILES ${CMAKE_CURRENT_LIST_DIR}/mcux-sdk/drivers/flexspi/fsl_flexspi.c 45 LOCATION ${CONFIG_FLASH_MCUX_FLEXSPI_XIP_MEM}_TEXT) 46endif() 47 48if(NOT CONFIG_ASSERT OR CONFIG_FORCE_NO_ASSERT) 49 zephyr_compile_definitions(NDEBUG) # squelch fsl_flexcan.c warning 50endif() 51 52zephyr_compile_definitions_ifdef( 53 CONFIG_PTP_CLOCK_MCUX 54 ENET_ENHANCEDBUFFERDESCRIPTOR_MODE 55) 56 57zephyr_compile_definitions_ifdef( 58 CONFIG_PTP_CLOCK_NXP_ENET 59 ENET_ENHANCEDBUFFERDESCRIPTOR_MODE 60) 61 62zephyr_compile_definitions_ifdef( 63 CONFIG_SOC_MIMX9596 64 FSL_SDK_DISABLE_DRIVER_CLOCK_CONTROL=1 65) 66 67zephyr_library_compile_definitions_ifdef( 68 CONFIG_HAS_MCUX_CACHE FSL_SDK_ENABLE_DRIVER_CACHE_CONTROL 69) 70 71# note: if FSL_IRQSTEER_ENABLE_MASTER_INT is not 72# defined then it will automatically be defined 73# and set to 1 via fsl_irqsteer.h 74zephyr_library_compile_definitions_ifdef( 75 CONFIG_NXP_IRQSTEER 76 FSL_IRQSTEER_ENABLE_MASTER_INT=0 77) 78 79zephyr_library_compile_definitions_ifdef( 80 CONFIG_DAI_NXP_SAI 81 MCUX_SDK_SAI_ALLOW_NULL_FIFO_WATERMARK=1 82) 83 84zephyr_library_compile_definitions_ifdef( 85 CONFIG_DAI_NXP_SAI 86 MCUX_SDK_SAI_DISABLE_IMPLICIT_CHAN_CONFIG=1 87) 88 89# Required by all SCFW-based SoCs 90if (CONFIG_SOC_MIMX8QM6_ADSP OR CONFIG_SOC_MIMX8QX6_ADSP) 91 list(APPEND CMAKE_MODULE_PATH 92 ${CMAKE_CURRENT_LIST_DIR}/mcux-sdk/devices/${MCUX_DEVICE_PATH}/scfw_api 93 ) 94 zephyr_include_directories(${CMAKE_CURRENT_LIST_DIR}/mcux-sdk/devices/${MCUX_DEVICE_PATH}/scfw_api) 95 include(driver_scfw_api) 96endif() 97 98include(driver_common) 99 100#Include system_xxx file 101#This can be extended to other SoC series if needed 102if (DEFINED CONFIG_SOC_RESET_HOOK OR DEFINED CONFIG_SOC_SERIES_IMXRT6XX 103 OR DEFINED CONFIG_SOC_SERIES_LPC55XXX OR DEFINED CONFIG_SOC_SERIES_MCXN 104 OR DEFINED CONFIG_SOC_MCXW727C) 105if (CONFIG_SOC_MIMXRT1166_CM4) 106include(device_system_MIMXRT1166_cm4) 107elseif (CONFIG_SOC_MIMXRT1166_CM7) 108include(device_system_MIMXRT1166_cm7) 109elseif (CONFIG_SOC_MIMXRT1176_CM4) 110include(device_system_MIMXRT1176_cm4) 111elseif (CONFIG_SOC_MIMXRT1176_CM7) 112include(device_system_MIMXRT1176_cm7) 113elseif (CONFIG_SOC_MIMXRT1189_CM33) 114include(device_system_MIMXRT1189_cm33) 115elseif (CONFIG_SOC_MIMXRT1189_CM7) 116include(device_system_MIMXRT1189_cm7) 117elseif (CONFIG_SOC_LPC55S69_CPU0) 118include(device_system_LPC55S69_cm33_core0) 119elseif (CONFIG_SOC_LPC55S69_CPU1) 120include(device_system_LPC55S69_cm33_core1) 121elseif (CONFIG_SOC_LPC54114_M4) 122include(device_system_LPC54114_cm4) 123elseif (CONFIG_SOC_LPC54114_M0) 124include(device_system_LPC54114_cm0plus) 125elseif (CONFIG_SOC_MCXN947_CPU0) 126include(device_system_MCXN947_cm33_core0) 127elseif (CONFIG_SOC_MCXN947_CPU1) 128include(device_system_MCXN947_cm33_core1) 129elseif (CONFIG_SOC_MCXN236) 130include(device_system_MCXN236) 131elseif (CONFIG_SOC_MIMXRT798S_CM33_CPU0) 132include(device_system_MIMXRT798S_cm33_core0) 133elseif (CONFIG_SOC_MIMXRT798S_CM33_CPU1) 134include(device_system_MIMXRT798S_cm33_core1) 135elseif (CONFIG_SOC_MCXW727C_CPU0) 136include(device_system_MCXW727C_cm33_core0) 137else() 138include(device_system) 139endif() 140endif() 141 142zephyr_include_directories(${CMAKE_CURRENT_LIST_DIR}/mcux-sdk/drivers/common) 143 144#include shared drivers 145include_driver_ifdef(CONFIG_ADC_MCUX_LPADC lpadc driver_lpadc) 146include_driver_ifdef(CONFIG_COUNTER_MCUX_CTIMER ctimer driver_ctimer) 147include_driver_ifdef(CONFIG_COUNTER_MCUX_LPC_RTC lpc_rtc driver_lpc_rtc) 148include_driver_ifdef(CONFIG_DMA_MCUX_LPC lpc_dma driver_lpc_dma) 149include_driver_ifdef(CONFIG_GPIO_MCUX_LPC lpc_gpio driver_lpc_gpio) 150include_driver_ifdef(CONFIG_NXP_PINT pint driver_pint) 151include_driver_ifdef(CONFIG_NXP_PINT inputmux driver_inputmux) 152include_driver_ifdef(CONFIG_I2C_MCUX_FLEXCOMM flexcomm driver_flexcomm) 153include_driver_ifdef(CONFIG_I2C_MCUX_FLEXCOMM flexcomm/i2c driver_flexcomm_i2c) 154include_driver_ifdef(CONFIG_I2S_MCUX_FLEXCOMM flexcomm driver_flexcomm) 155include_driver_ifdef(CONFIG_I2S_MCUX_FLEXCOMM flexcomm/i2s driver_flexcomm_i2s) 156include_driver_ifdef(CONFIG_MCUX_OS_TIMER ostimer driver_ostimer) 157include_driver_ifdef(CONFIG_PWM_MCUX_SCTIMER sctimer driver_sctimer) 158include_driver_ifdef(CONFIG_SOC_FLASH_LPC flashiap driver_flashiap) 159include_driver_ifdef(CONFIG_SPI_MCUX_FLEXCOMM flexcomm driver_flexcomm) 160include_driver_ifdef(CONFIG_SPI_MCUX_FLEXCOMM flexcomm/spi driver_flexcomm_spi) 161include_driver_ifdef(CONFIG_UART_MCUX_FLEXCOMM flexcomm driver_flexcomm) 162include_driver_ifdef(CONFIG_UART_MCUX_FLEXCOMM flexcomm/usart driver_flexcomm_usart) 163include_driver_ifdef(CONFIG_WDT_MCUX_WWDT wwdt driver_wwdt) 164include_driver_ifdef(CONFIG_ADC_MCUX_ADC12 adc12 driver_adc12) 165include_driver_ifdef(CONFIG_ADC_MCUX_ADC16 adc16 driver_adc16) 166include_driver_ifdef(CONFIG_CAN_MCUX_FLEXCAN flexcan driver_flexcan) 167include_driver_ifdef(CONFIG_CAN_MCUX_FLEXCAN_FD flexcan driver_flexcan) 168include_driver_ifdef(CONFIG_COUNTER_NXP_PIT pit driver_pit) 169include_driver_ifdef(CONFIG_COUNTER_MCUX_RTC rtc driver_rtc) 170include_driver_ifdef(CONFIG_DAC_MCUX_DAC dac driver_dac) 171include_driver_ifdef(CONFIG_DAC_MCUX_DAC32 dac32 driver_dac32) 172include_driver_ifdef(CONFIG_DMA_MCUX_EDMA dmamux driver_dmamux) 173include_driver_ifdef(CONFIG_DMA_MCUX_EDMA_V3 dmamux driver_dmamux) 174include_driver_ifdef(CONFIG_DMA_MCUX_EDMA edma driver_edma) 175include_driver_ifdef(CONFIG_DMA_MCUX_EDMA_V3 dma3 driver_dma3) 176include_driver_ifdef(CONFIG_DMA_MCUX_EDMA_V4 edma4 driver_edma4) 177include_driver_ifdef(CONFIG_ENTROPY_MCUX_RNGA rnga driver_rnga) 178include_driver_ifdef(CONFIG_ENTROPY_MCUX_TRNG trng driver_trng) 179include_driver_ifdef(CONFIG_ENTROPY_MCUX_CAAM caam driver_caam) 180include_driver_ifdef(CONFIG_ETH_NXP_ENET enet driver_enet) 181include_driver_ifdef(CONFIG_ETH_NXP_IMX_NETC netc driver_netc) 182include_driver_ifdef(CONFIG_HAS_MCUX_SMC smc driver_smc) 183include_driver_ifdef(CONFIG_I2C_MCUX i2c driver_i2c) 184include_driver_ifdef(CONFIG_I2C_NXP_II2C ii2c driver_ii2c) 185include_driver_ifdef(CONFIG_NXP_LP_FLEXCOMM lpflexcomm driver_lpflexcomm) 186if (CONFIG_NXP_LP_FLEXCOMM) 187include_driver_ifdef(CONFIG_I2C_MCUX_LPI2C lpflexcomm/lpi2c driver_lpi2c) 188else() 189include_driver_ifdef(CONFIG_I2C_MCUX_LPI2C lpi2c driver_lpi2c) 190endif() 191include_driver_ifdef(CONFIG_I3C_MCUX i3c driver_i3c) 192include_driver_ifdef(CONFIG_MCUX_ACMP acmp driver_acmp) 193include_driver_ifdef(CONFIG_PWM_MCUX_FTM ftm driver_ftm) 194include_driver_ifdef(CONFIG_PWM_MCUX_TPM tpm driver_tpm) 195include_driver_ifdef(CONFIG_PWM_MCUX_PWT pwt driver_pwt) 196include_driver_ifdef(CONFIG_PWM_MCUX_QTMR qtmr_1 driver_qtmr_1) 197include_driver_ifdef(CONFIG_RTC_MCUX rtc driver_rtc) 198include_driver_ifdef(CONFIG_SPI_MCUX_DSPI dspi driver_dspi) 199include_driver_ifdef(CONFIG_SPI_MCUX_ECSPI ecspi driver_ecspi) 200if (CONFIG_NXP_LP_FLEXCOMM) 201include_driver_ifdef(CONFIG_SPI_MCUX_LPSPI lpflexcomm/lpspi driver_lpspi) 202else() 203include_driver_ifdef(CONFIG_SPI_MCUX_LPSPI lpspi driver_lpspi) 204endif() 205include_driver_ifdef(CONFIG_MCUX_FLEXIO flexio driver_flexio) 206include_driver_ifdef(CONFIG_SPI_MCUX_FLEXIO flexio/spi driver_flexio_spi) 207include_driver_ifdef(CONFIG_MIPI_DBI_NXP_FLEXIO_LCDIF flexio/mculcd driver_flexio_mculcd) 208include_driver_ifdef(CONFIG_UART_MCUX uart driver_uart) 209include_driver_ifdef(CONFIG_UART_MCUX_LPSCI lpsci driver_lpsci) 210if (CONFIG_NXP_LP_FLEXCOMM) 211include_driver_ifdef(CONFIG_UART_MCUX_LPUART lpflexcomm/lpuart driver_lpuart) 212else() 213include_driver_ifdef(CONFIG_UART_MCUX_LPUART lpuart driver_lpuart) 214endif() 215include_driver_ifdef(CONFIG_WDT_MCUX_WDOG wdog driver_wdog) 216include_driver_ifdef(CONFIG_WDT_MCUX_WDOG32 wdog32 driver_wdog32) 217include_driver_ifdef(CONFIG_COUNTER_MCUX_GPT gpt driver_gpt) 218include_driver_ifdef(CONFIG_COUNTER_MCUX_TPM tpm driver_tpm) 219include_driver_ifdef(CONFIG_MCUX_GPT_TIMER gpt driver_gpt) 220include_driver_ifdef(CONFIG_COUNTER_MCUX_QTMR qtmr_1 driver_qtmr_1) 221include_driver_ifdef(CONFIG_DISPLAY_MCUX_ELCDIF elcdif driver_elcdif) 222include_driver_ifdef(CONFIG_DISPLAY_MCUX_DCNANO_LCDIF lcdif driver_lcdif) 223include_driver_ifdef(CONFIG_MIPI_DBI_NXP_DCNANO_LCDIF lcdif driver_lcdif) 224include_driver_ifdef(CONFIG_MCUX_PXP pxp driver_pxp) 225include_driver_ifdef(CONFIG_LV_USE_GPU_NXP_PXP pxp driver_pxp) 226include_driver_ifdef(CONFIG_ETH_MCUX enet driver_enet) 227include_driver_ifdef(CONFIG_GPIO_MCUX_IGPIO igpio driver_igpio) 228include_driver_ifdef(CONFIG_GPIO_MCUX_RGPIO rgpio driver_rgpio) 229include_driver_ifdef(CONFIG_I2S_MCUX_SAI sai driver_sai) 230include_driver_ifdef(CONFIG_DAI_NXP_SAI sai driver_sai) 231include_driver_ifdef(CONFIG_MEMC_MCUX_FLEXSPI flexspi driver_flexspi) 232include_driver_ifdef(CONFIG_PWM_MCUX pwm driver_pwm) 233include_driver_ifdef(CONFIG_VIDEO_MCUX_CSI csi driver_csi) 234include_driver_ifdef(CONFIG_VIDEO_MCUX_MIPI_CSI2RX mipi_csi2rx driver_mipi_csi2rx) 235include_driver_ifdef(CONFIG_WDT_MCUX_IMX_WDOG wdog01 driver_wdog01) 236include_driver_ifdef(CONFIG_WDT_MCUX_RTWDOG rtwdog driver_rtwdog) 237include_driver_ifdef(CONFIG_DMA_MCUX_LPC lpc_dma driver_lpc_dma) 238include_driver_ifdef(CONFIG_MEMC_MCUX_FLEXSPI flexspi driver_flexspi) 239include_driver_ifdef(CONFIG_HAS_MCUX_RDC rdc driver_rdc) 240include_driver_ifdef(CONFIG_UART_MCUX_IUART iuart driver_iuart) 241include_driver_ifdef(CONFIG_ADC_MCUX_12B1MSPS_SAR adc_12b1msps_sar driver_adc_12b1msps_sar) 242include_driver_ifdef(CONFIG_HWINFO_MCUX_SRC src driver_src) 243include_driver_ifdef(CONFIG_HWINFO_MCUX_SIM sim driver_sim) 244include_driver_ifdef(CONFIG_HWINFO_MCUX_RCM rcm driver_rcm) 245include_driver_ifdef(CONFIG_IPM_MCUX mailbox driver_mailbox) 246include_driver_ifdef(CONFIG_MBOX_NXP_MAILBOX mailbox driver_mailbox) 247include_driver_ifdef(CONFIG_COUNTER_MCUX_SNVS snvs_hp driver_snvs_hp) 248include_driver_ifdef(CONFIG_COUNTER_MCUX_SNVS_SRTC snvs_lp driver_snvs_lp) 249include_driver_ifdef(CONFIG_COUNTER_MCUX_LPTMR lptmr driver_lptmr) 250include_driver_ifdef(CONFIG_MCUX_LPTMR_TIMER lptmr driver_lptmr) 251include_driver_ifdef(CONFIG_IMX_USDHC usdhc driver_usdhc) 252include_driver_ifdef(CONFIG_MIPI_DSI_MCUX mipi_dsi_split driver_mipi_dsi_split) 253include_driver_ifdef(CONFIG_MIPI_DSI_MCUX_2L mipi_dsi driver_mipi_dsi) 254include_driver_ifdef(CONFIG_ADC_LPC_ADC lpc_adc driver_lpc_adc) 255include_driver_ifdef(CONFIG_MCUX_SDIF sdif driver_sdif) 256include_driver_ifdef(CONFIG_ADC_MCUX_ETC adc_etc driver_adc_etc) 257include_driver_ifdef(CONFIG_MCUX_XBARA xbara driver_xbara) 258include_driver_ifdef(CONFIG_MCUX_XBARB xbarb driver_xbarb) 259include_driver_ifdef(CONFIG_QDEC_MCUX enc driver_enc) 260include_driver_ifdef(CONFIG_CRYPTO_MCUX_DCP dcp driver_dcp) 261include_driver_ifdef(CONFIG_DMA_MCUX_SMARTDMA smartdma driver_lpc_smartdma) 262include_driver_ifdef(CONFIG_DMA_MCUX_SMARTDMA inputmux driver_inputmux) 263include_driver_ifdef(CONFIG_DAC_MCUX_LPDAC dac_1 driver_dac_1) 264include_driver_ifdef(CONFIG_NXP_IRQSTEER irqsteer driver_irqsteer) 265include_driver_ifdef(CONFIG_AUDIO_DMIC_MCUX dmic driver_dmic) 266include_driver_ifdef(CONFIG_DMA_NXP_EDMA edma_rev2 driver_edma_rev2) 267include_driver_ifdef(CONFIG_DMA_NXP_SDMA sdma driver_sdma) 268include_driver_ifdef(CONFIG_SOC_SERIES_MCXN mcx_spc driver_mcx_spc) 269include_driver_ifdef(CONFIG_SOC_SERIES_MCXA mcx_spc driver_mcx_spc) 270include_driver_ifdef(CONFIG_ADC_MCUX_GAU cns_adc driver_cns_adc) 271include_driver_ifdef(CONFIG_DAC_MCUX_GAU cns_dac driver_cns_dac) 272include_driver_ifdef(CONFIG_DAI_NXP_ESAI esai driver_esai) 273include_driver_ifdef(CONFIG_MCUX_LPCMP lpcmp driver_lpcmp) 274include_driver_ifdef(CONFIG_NXP_RF_IMU imu driver_imu) 275include_driver_ifdef(CONFIG_TRDC_MCUX_TRDC trdc driver_trdc) 276include_driver_ifdef(CONFIG_S3MU_MCUX_S3MU s3mu driver_s3mu) 277include_driver_ifdef(CONFIG_PINCTRL_NXP_PORT port driver_port) 278include_driver_ifdef(CONFIG_DAI_NXP_MICFIL pdm driver_pdm) 279include_driver_ifdef(CONFIG_GLIKEY_MCUX_GLIKEY glikey driver_glikey) 280if(CONFIG_BT_NXP OR CONFIG_IEEE802154_MCXW) 281include_driver_ifdef(CONFIG_SOC_SERIES_MCXW spc driver_spc) 282endif() 283 284if (${MCUX_DEVICE} MATCHES "MIMXRT1189") 285 include_driver_ifdef(CONFIG_ETH_NXP_IMX_NETC netc/socs/imxrt1180 driver_netc_soc_imxrt1180) 286 include_driver_ifdef(CONFIG_ETH_NXP_IMX_NETC msgintr driver_msgintr) 287elseif (${MCUX_DEVICE} MATCHES "MIMX9596") 288 include_driver_ifdef(CONFIG_ETH_NXP_IMX_NETC netc/socs/imx95 driver_netc_soc_imx95) 289 include_driver_ifdef(CONFIG_ETH_NXP_IMX_NETC msgintr driver_msgintr) 290 include_driver_ifdef(CONFIG_ETH_NXP_IMX_NETC irqsteer driver_irqsteer) 291endif() 292 293if (((${MCUX_DEVICE} MATCHES "MIMXRT1[0-9][0-9][0-9]") AND (NOT (CONFIG_SOC_MIMXRT1166_CM4 OR CONFIG_SOC_MIMXRT1176_CM4 OR CONFIG_SOC_MIMXRT1189_CM33))) OR 294 ((${MCUX_DEVICE} MATCHES "MIMX9596") AND CONFIG_SOC_MIMX9596_M7)) 295 include_driver_ifdef(CONFIG_HAS_MCUX_CACHE cache/armv7-m7 driver_cache_armv7_m7) 296elseif((${MCUX_DEVICE} MATCHES "MIMXRT(5|6)") OR (${MCUX_DEVICE} MATCHES "RW61") OR (${MCUX_DEVICE} MATCHES "MCXN.4.")) 297 include_driver_ifdef(CONFIG_HAS_MCUX_CACHE cache/cache64 driver_cache_cache64) 298elseif((${MCUX_DEVICE} MATCHES "MK(28|66)") OR (${MCUX_DEVICE} MATCHES "MKE(14|16|18)") OR (CONFIG_SOC_MIMXRT1166_CM4) OR (CONFIG_SOC_MIMXRT1176_CM4)) 299 include_driver_ifdef(CONFIG_HAS_MCUX_CACHE cache/lmem driver_cache_lmem) 300endif() 301 include_driver_ifdef(CONFIG_HAS_MCUX_XCACHE cache/xcache driver_cache_xcache) 302 303if ((${MCUX_DEVICE} MATCHES "MIMX9596") OR (${MCUX_DEVICE} MATCHES "MIMX8UD7") OR (${MCUX_DEVICE} MATCHES "MIMXRT118")) 304 include_driver_ifdef(CONFIG_IPM_IMX mu1 driver_mu1) 305 include_driver_ifdef(CONFIG_MBOX_NXP_IMX_MU mu1 driver_mu1) 306else() 307 include_driver_ifdef(CONFIG_IPM_IMX mu driver_mu) 308 include_driver_ifdef(CONFIG_MBOX_NXP_IMX_MU mu driver_mu) 309endif() 310 311if(CONFIG_CPU_CORTEX_A) 312 include_driver_ifdef(CONFIG_HAS_MCUX_CACHE cache/armv8-a driver_cache_armv8a) 313endif() 314 315if (${MCUX_DEVICE} MATCHES "MIMXRT11[0-9][0-9]") 316 include_driver_ifdef(CONFIG_PM_MCUX_GPC gpc_3 driver_gpc_3) 317 include_ifdef(CONFIG_HWINFO_MCUX_SRC_V2 driver_soc_src) 318 include_driver_ifdef(CONFIG_WDT_MCUX_RTWDOG soc_src driver_soc_src) 319elseif (${MCUX_DEVICE} MATCHES "MIMXRT10[0-9][0-9]") 320 include_driver_ifdef(CONFIG_PM_MCUX_GPC gpc_1 driver_gpc_1) 321 include_driver_ifdef(CONFIG_PM_MCUX_DCDC dcdc_1 driver_dcdc_1) 322 include_driver_ifdef(CONFIG_PM_MCUX_PMU pmu driver_pmu) 323endif() 324 325if((${MCUX_DEVICE} MATCHES "RW61") AND (NOT DEFINED CONFIG_MINIMAL_LIBC)) 326 # Whenever building for RW61x without minimal LIBC, use optimized memcpy. 327 # This will avoid issues with unaligned access to peripheral RAM regions 328 # caused by the memcpy implmentation in newlib 329 zephyr_library_sources(${CMAKE_CURRENT_LIST_DIR}/mcux-sdk/utilities/misc_utilities/fsl_memcpy.S) 330endif() 331 332 333if("${CONFIG_SOC_FAMILY}" STREQUAL "nxp_kinetis") 334 335 include_driver_ifdef(CONFIG_SOC_FLASH_MCUX flash driver_flash) 336 337 include(${CMAKE_CURRENT_LIST_DIR}/mcux-sdk/drivers/port/driver_port.cmake) 338 zephyr_include_directories(${CMAKE_CURRENT_LIST_DIR}/mcux-sdk/drivers/port) 339 340 if(${MCUX_DEVICE} MATCHES "MK(80|82|64|66|M34|M35|E14F|E16F|E18F|22F12)") 341 include(${CMAKE_CURRENT_LIST_DIR}/mcux-sdk/drivers/sysmpu/driver_sysmpu.cmake) 342 zephyr_include_directories(${CMAKE_CURRENT_LIST_DIR}/mcux-sdk/drivers/sysmpu) 343 endif() 344 345endif() 346 347if(CONFIG_SOC_SERIES_MCXC) 348 include_driver_ifdef(CONFIG_SOC_FLASH_MCUX flash driver_flash) 349elseif(CONFIG_SOC_SERIES_MCXA) 350 zephyr_include_directories(${CMAKE_CURRENT_LIST_DIR}/mcux-sdk/drivers/mcxa_romapi) 351elseif(CONFIG_SOC_SERIES_MCXN) 352 include_driver_ifdef(CONFIG_SOC_FLASH_MCUX mcx_romapi driver_flashiap) 353 zephyr_include_directories(${CMAKE_CURRENT_LIST_DIR}/mcux-sdk/drivers/mcx_romapi/flash) 354elseif(CONFIG_SOC_SERIES_MCXW) 355 include_driver_ifdef(CONFIG_SOC_FLASH_MCUX flash_k4 driver_flash_k4) 356endif() 357 358# Temporary change to handle LPC SOC family name change between HWMv1 and HWMv2 359if(("${CONFIG_SOC_FAMILY}" STREQUAL "lpc") OR ("${CONFIG_SOC_FAMILY}" STREQUAL "nxp_lpc")) 360 361if ((${MCUX_DEVICE} MATCHES "LPC8[0-9][0-9]") OR (${MCUX_DEVICE} MATCHES "LPC5(1|4)")) 362 include_driver_ifdef(CONFIG_SOC_FLASH_MCUX iap driver_iap) 363 include_driver_ifdef(CONFIG_ENTROPY_MCUX_RNG iap driver_rng) 364elseif (${MCUX_DEVICE} MATCHES "LPC55") 365 if (${MCUX_DEVICE} MATCHES "LPC55S*3") 366 if(${CONFIG_SOC_FLASH_MCUX}) 367 list(APPEND CMAKE_MODULE_PATH 368 ${CMAKE_CURRENT_LIST_DIR}/mcux-sdk/devices/LPC55S36/drivers 369 ) 370 zephyr_include_directories(${CMAKE_CURRENT_LIST_DIR}/mcux-sdk/devices/LPC55S36/drivers/flash) 371 include(driver_flashiap) 372 endif() 373 else() 374 include_driver_ifdef(CONFIG_SOC_FLASH_MCUX iap1 driver_iap1) 375 endif() 376 include_driver_ifdef(CONFIG_ENTROPY_MCUX_RNG rng_1 driver_rng_1) 377endif() 378 379if (${MCUX_DEVICE} MATCHES "LPC5") 380 include(${CMAKE_CURRENT_LIST_DIR}/mcux-sdk/drivers/lpc_iocon/driver_lpc_iocon.cmake) 381 zephyr_include_directories(${CMAKE_CURRENT_LIST_DIR}/mcux-sdk/drivers/lpc_iocon) 382 if (${MCUX_DEVICE} MATCHES "LPC55S*3" AND (DEFINED CONFIG_ADC_MCUX_LPADC OR DEFINED CONFIG_DAC_MCUX_LPDAC)) 383 include(${CMAKE_CURRENT_LIST_DIR}/mcux-sdk/drivers/vref_1/driver_vref_1.cmake) 384 zephyr_include_directories(${CMAKE_CURRENT_LIST_DIR}/mcux-sdk/drivers/vref_1) 385 endif() 386elseif (${MCUX_DEVICE} MATCHES "LPC8") 387 include(${CMAKE_CURRENT_LIST_DIR}/mcux-sdk/drivers/lpc_iocon_lite/driver_lpc_iocon_lite.cmake) 388 zephyr_include_directories(${CMAKE_CURRENT_LIST_DIR}/mcux-sdk/drivers/lpc_iocon_lite) 389endif() 390 391endif() 392 393if(${MCUX_DEVICE} MATCHES "MIMXRT(5|6)") 394 include(${CMAKE_CURRENT_LIST_DIR}/mcux-sdk/drivers/lpc_iopctl/driver_lpc_iopctl.cmake) 395 zephyr_include_directories(${CMAKE_CURRENT_LIST_DIR}/mcux-sdk/drivers/lpc_iopctl) 396endif() 397 398if(CONFIG_SOC_FAMILY_NXP_IMXRT) 399 include_driver_ifdef(CONFIG_ETH_NXP_ENET ocotp driver_ocotp) 400endif() 401 402if(CONFIG_ETH_MCUX) 403 zephyr_include_directories(${CMAKE_CURRENT_LIST_DIR}/mcux-sdk/components/phy) 404 zephyr_include_directories(${CMAKE_CURRENT_LIST_DIR}/mcux-sdk/components/phy/device/phyksz8081) 405 zephyr_include_directories(${CMAKE_CURRENT_LIST_DIR}/mcux-sdk/components/phy/device/phyar8031) 406 zephyr_include_directories(${CMAKE_CURRENT_LIST_DIR}/mcux-sdk/components/phy/device/phylan8720a) 407 zephyr_include_directories(${CMAKE_CURRENT_LIST_DIR}/mcux-sdk/components/phy/device/phyrtl8211f) 408 zephyr_library_sources(mcux-sdk/components/phy/device/phyksz8081/fsl_phyksz8081.c) 409 zephyr_library_sources(mcux-sdk/components/phy/device/phyar8031/fsl_phyar8031.c) 410 zephyr_library_sources(mcux-sdk/components/phy/device/phylan8720a/fsl_phylan8720a.c) 411 zephyr_library_sources(mcux-sdk/components/phy/device/phyrtl8211f/fsl_phyrtl8211f.c) 412 413 zephyr_include_directories(${CMAKE_CURRENT_LIST_DIR}/mcux-sdk/components/phy/mdio/enet) 414 #zephyr_library_sources(mcux-sdk/components/phy/mdio/enet/fsl_enet_mdio.c) 415endif() 416 417if (CONFIG_USB_DEVICE_DRIVER) 418 set(CONFIG_USE_component_osa_zephyr true) 419 420 list(APPEND CMAKE_MODULE_PATH 421 ${CMAKE_CURRENT_LIST_DIR}/mcux-sdk/components/osa 422 ) 423 424 list(APPEND CMAKE_MODULE_PATH 425 ${CMAKE_CURRENT_LIST_DIR}/middleware/mcux-sdk-middleware-usb 426 ) 427 include(middleware_usb_phy) 428 include_ifdef(CONFIG_USB_DC_NXP_EHCI middleware_usb_device_ehci) 429 include_ifdef(CONFIG_USB_DC_NXP_LPCIP3511 middleware_usb_device_ip3511fs) 430 include(set_component_osa) 431 432 zephyr_include_directories(${CMAKE_CURRENT_LIST_DIR}/middleware/mcux-sdk-middleware-usb/device) 433 zephyr_include_directories(${CMAKE_CURRENT_LIST_DIR}/middleware/mcux-sdk-middleware-usb/phy) 434 zephyr_include_directories(${CMAKE_CURRENT_LIST_DIR}/middleware/mcux-sdk-middleware-usb/include) 435endif() 436 437 438if (CONFIG_UDC_DRIVER) 439 set(CONFIG_USE_component_osa_zephyr true) 440 441 list(APPEND CMAKE_MODULE_PATH 442 ${CMAKE_CURRENT_LIST_DIR}/mcux-sdk/components/osa 443 ) 444 445 list(APPEND CMAKE_MODULE_PATH 446 ${CMAKE_CURRENT_LIST_DIR}/middleware/mcux-sdk-middleware-usb 447 ) 448 include_ifdef(CONFIG_DT_HAS_NXP_USBPHY_ENABLED middleware_usb_phy) 449 include_ifdef(CONFIG_UDC_NXP_EHCI middleware_usb_device_ehci) 450 include_ifdef(CONFIG_UDC_NXP_IP3511 middleware_usb_device_ip3511fs) 451 include(set_component_osa) 452 453 zephyr_include_directories(${CMAKE_CURRENT_LIST_DIR}/middleware/mcux-sdk-middleware-usb/device) 454 zephyr_include_directories(${CMAKE_CURRENT_LIST_DIR}/middleware/mcux-sdk-middleware-usb/phy) 455 zephyr_include_directories(${CMAKE_CURRENT_LIST_DIR}/middleware/mcux-sdk-middleware-usb/include) 456endif() 457 458if(${MCUX_DEVICE} MATCHES "RW61") 459 set(CONFIG_USE_component_osa_zephyr true) 460 if(CONFIG_NXP_FW_LOADER) 461 list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/mcux-sdk/components/flash/mflash) 462 list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/mcux-sdk/components/flash/mflash/rdrw612bga) 463 list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/mcux-sdk/drivers/cache/cache64) 464 list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/mcux-sdk/drivers/flexspi) 465 include(component_mflash_rdrw610) 466 endif() 467endif() 468 469if(${CONFIG_USE_component_osa_zephyr}) 470 zephyr_include_directories(${CMAKE_CURRENT_SOURCE_DIR}/mcux-sdk/components/osa) 471endif() 472 473include_ifdef(CONFIG_USE_component_osa_zephyr set_component_osa) 474 475if(CONFIG_WIFI_NXP) 476 list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/mcux-sdk/components/wifi_bt_module) 477 include(component_wifi_bt_module_tx_pwr_limits) 478endif() 479 480if(CONFIG_NXP_FW_LOADER) 481 list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/mcux-sdk/components/conn_fwloader) 482 include(driver_conn_fwloader) 483endif() 484 485if(CONFIG_NXP_RF_IMU) 486 if(CONFIG_SOC_SERIES_RW6XX) 487 list(APPEND CMAKE_MODULE_PATH 488 ${CMAKE_CURRENT_LIST_DIR}/mcux-sdk/components/rpmsg 489 ${CMAKE_CURRENT_LIST_DIR}/mcux-sdk/drivers/imu 490 ${CMAKE_CURRENT_LIST_DIR}/mcux-sdk/drivers/gdma 491 ) 492 include(component_wireless_imu_adapter) 493 elseif(CONFIG_SOC_SERIES_MCXW) 494 zephyr_include_directories(${CMAKE_CURRENT_LIST_DIR}/mcux-sdk/components/rpmsg) 495 zephyr_library_sources(${CMAKE_CURRENT_LIST_DIR}/mcux-sdk/components/rpmsg/fsl_adapter_rpmsg.c) 496 include(component_lists) 497 zephyr_compile_definitions(HAL_RPMSG_SELECT_ROLE=0U) 498 endif() 499endif() 500 501if(${MCUX_DEVICE} MATCHES "MCXW") 502 list(APPEND CMAKE_MODULE_PATH 503 ${CMAKE_CURRENT_LIST_DIR}/mcux-sdk/drivers/ccm32k 504 ) 505 506 include(driver_ccm32k) 507 zephyr_include_directories(${CMAKE_CURRENT_LIST_DIR}/mcux-sdk/drivers/ccm32k) 508endif() 509 510if(CONFIG_SOC_SERIES_MCXW) 511 list(APPEND CMAKE_MODULE_PATH 512 ${CMAKE_CURRENT_LIST_DIR}/mcux-sdk/drivers/elemu 513 ) 514 zephyr_include_directories(${CMAKE_CURRENT_LIST_DIR}/mcux-sdk/drivers/elemu) 515 zephyr_library_sources(${CMAKE_CURRENT_LIST_DIR}/mcux-sdk/drivers/elemu/fsl_elemu.c) 516 517 if(CONFIG_NET_L2_IEEE802154 OR CONFIG_NET_L2_OPENTHREAD) 518 zephyr_include_directories(${CMAKE_CURRENT_LIST_DIR}/mcux-sdk/components/lists) 519 zephyr_library_sources(${CMAKE_CURRENT_LIST_DIR}/mcux-sdk/components/lists/fsl_component_generic_list.c) 520 521 zephyr_include_directories(${CMAKE_CURRENT_LIST_DIR}/mcux-sdk/components/osa) 522 zephyr_library_sources(${CMAKE_CURRENT_LIST_DIR}/mcux-sdk/components/osa/fsl_os_abstraction_zephyr.c) 523 zephyr_compile_definitions(OSA_USED=1U) 524 endif() 525endif() 526