59 lines
2.0 KiB
CMake
59 lines
2.0 KiB
CMake
# Translate the SoC name and part number into the mcux device and cpu
|
|
# name respectively.
|
|
string(TOUPPER ${CONFIG_SOC} MCUX_DEVICE)
|
|
|
|
if("${MCUX_DEVICE}" STREQUAL "LPC54114")
|
|
set(MCUX_CPU CPU_${CONFIG_SOC_PART_NUMBER}_cm4)
|
|
elseif("${MCUX_DEVICE}" STREQUAL "LPC54114_M0")
|
|
set(MCUX_CPU CPU_${CONFIG_SOC_PART_NUMBER}_cm0plus)
|
|
set(MCUX_DEVICE LPC54114)
|
|
elseif("${MCUX_DEVICE}" STREQUAL "LPC55S69_CPU0")
|
|
set(MCUX_CPU CPU_${CONFIG_SOC_PART_NUMBER}_cm33_core0)
|
|
set(MCUX_DEVICE LPC55S69)
|
|
elseif("${MCUX_DEVICE}" STREQUAL "LPC55S69_CPU1")
|
|
set(MCUX_CPU CPU_${CONFIG_SOC_PART_NUMBER}_cm33_core1)
|
|
set(MCUX_DEVICE LPC55S69)
|
|
elseif("${MCUX_DEVICE}" STREQUAL "MIMXRT1052")
|
|
string(REGEX REPLACE "(.*)[AB]$" "CPU_\\1B" MCUX_CPU ${CONFIG_SOC_PART_NUMBER})
|
|
else()
|
|
set(MCUX_CPU CPU_${CONFIG_SOC_PART_NUMBER})
|
|
endif()
|
|
|
|
zephyr_include_directories(devices/${MCUX_DEVICE})
|
|
|
|
# The mcux uses the cpu name to expose SoC-specific features of a
|
|
# given peripheral. For example, the UART peripheral may be
|
|
# instantiated with/without a hardware FIFO, and the size of that FIFO
|
|
# may be different for each instance in a given SoC. See
|
|
# fsl_device_registers.h and ${MCUX_DEVICE}_features.h
|
|
zephyr_compile_definitions(${MCUX_CPU})
|
|
|
|
# Build mcux device-specific objects. Although it is not normal
|
|
# practice, drilling down like this avoids the need for repetitive
|
|
# build scripts for every mcux device.
|
|
zephyr_sources(devices/${MCUX_DEVICE}/fsl_clock.c)
|
|
if (${MCUX_DEVICE} MATCHES "LPC")
|
|
zephyr_sources(devices/${MCUX_DEVICE}/fsl_power.c)
|
|
zephyr_sources(devices/${MCUX_DEVICE}/fsl_reset.c)
|
|
endif()
|
|
|
|
|
|
# Build mcux drivers that can be used for multiple SoC's.
|
|
add_subdirectory(boards)
|
|
add_subdirectory(components)
|
|
add_subdirectory(drivers)
|
|
|
|
add_subdirectory_ifdef(
|
|
CONFIG_USB
|
|
middleware/usb
|
|
)
|
|
|
|
add_subdirectory_ifdef(
|
|
CONFIG_IEEE802154_KW41Z
|
|
middleware/wireless/framework_5.3.3
|
|
)
|
|
|
|
enable_language(C ASM)
|
|
|
|
zephyr_sources_ifdef(CONFIG_SOC_LPC54114_M4 devices/${MCUX_DEVICE}/gcc/startup_LPC54114_cm4.S)
|