For optimization purpose, remove calls to SDK. Since we know exactly
what we want, this results in smaller code size.
Also, this code calculates the SCK parameters more efficiently than the
SDK driver did it by using a binary (instead of linear) search.
Lastly, remove call to LPSPI_Reset in the init call and replace with
native driver code, and remove inclusion of SDK header.
Signed-off-by: Declan Snyder <declan.snyder@nxp.com>
Cleaned up NETC driver in drivers.cmake to add i.MX943 NETC
driver support, and to disable msgintr/irqsteer for A core.
Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
Fix build error when CONFIG_MCUX_COMPONENT_driver.fro_calib is set.
Error message:
modules/hal/nxp/mcux/mcux-sdk-ng/cmake/extension/function.cmake:2084 (if)
if given arguments:
"IN_LIST" "NEED_WRAP_TOOLCHAINS"
The error is because, mcux sdk ng cmake functions `mcux_add_xxx` support
add content based on toolchains. CMake should set current toolchain in
CMake Variable `CONFIG_TOOLCHAIN` to use this feature.
Signed-off-by: Jason Yu <zejiang.yu@nxp.com>
In MCUX SDK NG, the `core_id` and `core_id_suffix_name` are
different concepts, generally the values are the same. But
there are exeptions, such as RT595 F1.
Zephyr's `CONFIG_MCUX_CORE_SUFFIX` is actually MCUX SDK's
`core_id_suffix_name`. SDK NG CMake needs `core_id`, but
current integration layer uses `CONFIG_MCUX_CORE_SUFFIX`
as `core_id`, so there is build error with RT595 F1.
Fix the code that convert `CONFIG_MCUX_CORE_SUFFIX` to `core_id`,
handle the special case.
Signed-off-by: Jason Yu <zejiang.yu@nxp.com>
Migrate the dma_nxp_edma driver to SDK-NG. This means:
1) Adding the CMAKE logic required for compiling the module
2) Updating the HAL_NXP manifest to pull in the patches which
handle the migration on the HAL side
3) Removing CMAKE logic from old mcux-sdk so that they are no
longer included in the build
Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
The HAL i.MX943 M33 system driver was using another implemention
of SCMI support to do some clock operations which was not workable
in Zephyr, as Zephyr supported its own SCMI drivers.
So, disabled device system driver for i.MX943 M33 for now.
Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
If SCMI clock is used in Zephyr, it will not use hal clock API, so
disable hal clock driver and also disable driver clock control in all
the other hal drivers.
Signed-off-by: Jiafei Pan <Jiafei.Pan@nxp.com>
Use flash_k4 driver for internal flash instead of ROM API driver. One
benefit is the flash program phrase size decreases from 128 Bytes to 16
Bytes. 16 Byte phrases enables this SOC to leverage the Zephyr NVS
subsystem, and the MCUboot swap mode.
Signed-off-by: Derek Snell <derek.snell@nxp.com>
Conflicts:
west.yml
add uhc related items to dts.
add clock initialization
add BM4 if CONFIG_USB_UHC_NXP_KHCI is enabled
add pin mux
update board related CMakeLists.txt
update sdk-ng CMake to include NXP controller drivers
update west.yml to contain the hal_nxp pr
Signed-off-by: Mark Wang <yichang.wang@nxp.com>
Exclude fsl_power.c from DSP domains, as it doesn't compile on those
because of missing register definitions. Include fsl_dsp.c wherever it
can be included, as it's required for initialisation of DSP domains.
Signed-off-by: Vit Stanicek <vit.stanicek@nxp.com>
Some NXP boards are using legacy SDK driver, such as S32K, K64, MIMX8Q,
and so on. The legacy SDK driver will not be updated, migrate to use
SDK NG driver.
Signed-off-by: Jason Yu <zejiang.yu@nxp.com>
Added IW416 SoC support to enable Bluetooth HCI driver perform
firmware load, and works with blueooth HCI interface.
Removed cmake file from bt_controller/, added support in hal_nxp
module to fetch firmware blobs for iW416/nw612 BT Only FW.
Signed-off-by: Nirav Agrawal <nirav.agrawal@nxp.com>
Introduce NXP NCNano driver using MIPI DBI class. This peripheral
supports 8080 and 6800 mode. The driver also supports used with
nxp,mipi_dsi_2l driver, for the panel with DPHY bus, such as g1120b0mipi.
Signed-off-by: Kate Wang <yumeng.wang@nxp.com>
- The fsl_common_dsp driver needs to be loaded
when building xtensa projects and the fsl_common_arm
driver needs to be loaded when building arm projects.
- Add a condition to load power driver, because the power
driver is needed to build RT700 arm core project, but it
is not needed to build hifi core project.
Signed-off-by: Zhaoxiang Jin <Zhaoxiang.Jin_1@nxp.com>
- In middleware/CMakeLists.txt, using add_subdirectory()
to load the cmakelists.txt under bt_controller will
result in the bt_controller directory not being found
correctly, because the starting point of the query
is mcux-sdk-ng/CMakeLists.txt. Need to add
${CMAKE_CURRENT_LIST_DIR} to bt_controller to correctly
locate the folder.
Signed-off-by: Zhaoxiang Jin <Zhaoxiang.Jin_1@nxp.com>
The CMakeLists.txt files in folders modules/hal_nxp/mcux/mcux-sdk-ng/*/
are loaded in modules/hal_nxp/mcux/mcux-sdk-ng/CMakeLists.txt using
cmake function `add_subdirectory`.
One issue is, when variables defined in one CMakeLists.txt are needed
by another CMakeLists.txt, then the variables need be exposed to parent
scope. This is not convenient.
Another issue is, to expose variables, the function `set_variable_ifdef`
sets the variables as global variables. The CMake global variables
named `CONFIG_xxx` will be collected by Kconfig, and results in build
fail.
The solution is:
1. Replace `add_subdirectory` with `include`, so that the variables will
be in the same file scope, don't need to expose them.
2. Modify the implementation of `set_variable_ifdef`, don't set
variables as global variables.
Resolves#88135
Signed-off-by: Jason Yu <zejiang.yu@nxp.com>