boards: nxp: convert board sys_inits to hooks
Convert the nxp boards that have general init functions
as SYS_INITs to use board_early_init_hook instead.
Also standardize selection of CONFIG_BOARD_EARLY_INIT_HOOK in the
Kconfig file across NXP boards.
Signed-off-by: Declan Snyder <declan.snyder@nxp.com>
diff --git a/boards/nxp/frdm_mcxa156/Kconfig b/boards/nxp/frdm_mcxa156/Kconfig
index 23271bc..f71a70e 100644
--- a/boards/nxp/frdm_mcxa156/Kconfig
+++ b/boards/nxp/frdm_mcxa156/Kconfig
@@ -1,8 +1,5 @@
-# Copyright 2024 NXP
+# Copyright 2024-2025 NXP
# SPDX-License-Identifier: Apache-2.0
-config BOARD_INIT_PRIORITY
- int "Board initialization priority"
- default 1
- help
- Board initialization priority.
+config BOARD_FRDM_MCXA156
+ select BOARD_EARLY_INIT_HOOK
diff --git a/boards/nxp/frdm_mcxa156/board.c b/boards/nxp/frdm_mcxa156/board.c
index 6c2da31..eae24a9 100644
--- a/boards/nxp/frdm_mcxa156/board.c
+++ b/boards/nxp/frdm_mcxa156/board.c
@@ -15,7 +15,7 @@
/* System clock frequency. */
extern uint32_t SystemCoreClock;
-static int frdm_mcxa156_init(void)
+void board_early_init_hook(void)
{
uint32_t coreFreq;
spc_active_mode_core_ldo_option_t ldoOption;
@@ -238,8 +238,4 @@
/* Set SystemCoreClock variable. */
SystemCoreClock = CLOCK_INIT_CORE_CLOCK;
-
- return 0;
}
-
-SYS_INIT(frdm_mcxa156_init, PRE_KERNEL_1, CONFIG_BOARD_INIT_PRIORITY);
diff --git a/boards/nxp/frdm_mcxn236/Kconfig b/boards/nxp/frdm_mcxn236/Kconfig
index 23271bc..db8c981 100644
--- a/boards/nxp/frdm_mcxn236/Kconfig
+++ b/boards/nxp/frdm_mcxn236/Kconfig
@@ -1,8 +1,5 @@
-# Copyright 2024 NXP
+# Copyright 2024-2025 NXP
# SPDX-License-Identifier: Apache-2.0
-
-config BOARD_INIT_PRIORITY
- int "Board initialization priority"
- default 1
- help
- Board initialization priority.
+#
+config BOARD_FRDM_MCXN236
+ select BOARD_EARLY_INIT_HOOK
diff --git a/boards/nxp/frdm_mcxn236/board.c b/boards/nxp/frdm_mcxn236/board.c
index d0a09a0..35ce1fb 100644
--- a/boards/nxp/frdm_mcxn236/board.c
+++ b/boards/nxp/frdm_mcxn236/board.c
@@ -57,7 +57,7 @@
SPC_SetSRAMOperateVoltage(SPC0, &cfg);
}
-static int frdm_mcxn236_init(void)
+void board_early_init_hook(void)
{
enable_lpcac();
@@ -301,8 +301,4 @@
/* Set SystemCoreClock variable. */
SystemCoreClock = CLOCK_INIT_CORE_CLOCK;
-
- return 0;
}
-
-SYS_INIT(frdm_mcxn236_init, PRE_KERNEL_1, CONFIG_BOARD_INIT_PRIORITY);
diff --git a/boards/nxp/frdm_mcxn947/Kconfig b/boards/nxp/frdm_mcxn947/Kconfig
index 23271bc..2e1614f 100644
--- a/boards/nxp/frdm_mcxn947/Kconfig
+++ b/boards/nxp/frdm_mcxn947/Kconfig
@@ -1,8 +1,5 @@
-# Copyright 2024 NXP
+# Copyright 2024-2025 NXP
# SPDX-License-Identifier: Apache-2.0
-config BOARD_INIT_PRIORITY
- int "Board initialization priority"
- default 1
- help
- Board initialization priority.
+config BOARD_FRDM_MCXN947
+ select BOARD_EARLY_INIT_HOOK
diff --git a/boards/nxp/frdm_mcxn947/board.c b/boards/nxp/frdm_mcxn947/board.c
index baa6c7e..96f8f8f 100644
--- a/boards/nxp/frdm_mcxn947/board.c
+++ b/boards/nxp/frdm_mcxn947/board.c
@@ -84,7 +84,7 @@
}
#endif
-static int frdm_mcxn947_init(void)
+void board_early_init_hook(void)
{
power_mode_od();
@@ -394,8 +394,4 @@
/* Set SystemCoreClock variable. */
SystemCoreClock = CLOCK_INIT_CORE_CLOCK;
-
- return 0;
}
-
-SYS_INIT(frdm_mcxn947_init, PRE_KERNEL_1, CONFIG_BOARD_INIT_PRIORITY);
diff --git a/boards/nxp/lpcxpresso55s69/Kconfig b/boards/nxp/lpcxpresso55s69/Kconfig
new file mode 100644
index 0000000..160ff5a
--- /dev/null
+++ b/boards/nxp/lpcxpresso55s69/Kconfig
@@ -0,0 +1,5 @@
+# Copyright 2024-2025 NXP
+# SPDX-License-Identifier: Apache-2.0
+
+config BOARD_LPCXPRESSO55S69
+ select BOARD_EARLY_INIT_HOOK
diff --git a/boards/nxp/lpcxpresso55s69/board.c b/boards/nxp/lpcxpresso55s69/board.c
index 9908b58..f3c367e 100644
--- a/boards/nxp/lpcxpresso55s69/board.c
+++ b/boards/nxp/lpcxpresso55s69/board.c
@@ -8,7 +8,7 @@
#include <fsl_common.h>
#include <soc.h>
-static int lpcxpresso_55s69_board_init(void)
+void board_early_init_hook(void)
{
#if (DT_NODE_HAS_COMPAT_STATUS(DT_NODELABEL(flexcomm6), nxp_lpc_i2s, okay)) && \
@@ -47,8 +47,4 @@
#endif
#endif
-
- return 0;
}
-
-SYS_INIT(lpcxpresso_55s69_board_init, PRE_KERNEL_1, 0);
diff --git a/boards/nxp/mimxrt1180_evk/Kconfig b/boards/nxp/mimxrt1180_evk/Kconfig
new file mode 100644
index 0000000..af3247b
--- /dev/null
+++ b/boards/nxp/mimxrt1180_evk/Kconfig
@@ -0,0 +1,5 @@
+# Copyright 2025 NXP
+# SPDX-License-Identifier: Apache-2.0
+
+config BOARD_MIMXRT1180_EVK
+ select BOARD_EARLY_INIT_HOOK
diff --git a/boards/nxp/mimxrt1180_evk/Kconfig.defconfig b/boards/nxp/mimxrt1180_evk/Kconfig.defconfig
index 47c1f2f..2724201 100644
--- a/boards/nxp/mimxrt1180_evk/Kconfig.defconfig
+++ b/boards/nxp/mimxrt1180_evk/Kconfig.defconfig
@@ -12,9 +12,6 @@
config NXP_IMX_EXTERNAL_HYPERRAM
default y if CPU_CORTEX_M33
-config BOARD_EARLY_INIT_HOOK
- default y
-
if SECOND_CORE_MCUX && BOARD_MIMXRT1180_EVK_MIMXRT1189_CM7
config BUILD_OUTPUT_INFO_HEADER
diff --git a/boards/nxp/mimxrt595_evk/Kconfig b/boards/nxp/mimxrt595_evk/Kconfig
index c97c859..33b997c 100644
--- a/boards/nxp/mimxrt595_evk/Kconfig
+++ b/boards/nxp/mimxrt595_evk/Kconfig
@@ -1,12 +1,9 @@
-# Copyright 2022, NXP
+# Copyright 2022, 2025 NXP
# Copyright (c) 2023 Google LLC.
# SPDX-License-Identifier: Apache-2.0
-config BOARD_INIT_PRIORITY
- int "Board initialization priority"
- default 45
- help
- Board initialization priority.
+config BOARD_MIMXRT595_EVK
+ select BOARD_EARLY_INIT_HOOK if BOARD_MIMXRT595_EVK_MIMXRT595S_CM33
DT_ADSP_RESET_MEM := $(dt_nodelabel_path,adsp_reset)
DT_ADSP_DATA_MEM := $(dt_nodelabel_path,adsp_data)
diff --git a/boards/nxp/mimxrt595_evk/board.c b/boards/nxp/mimxrt595_evk/board.c
index 3c108a2..4c4e7f65 100644
--- a/boards/nxp/mimxrt595_evk/board.c
+++ b/boards/nxp/mimxrt595_evk/board.c
@@ -263,7 +263,7 @@
#endif /* CONFIG_REGULATOR */
-static int mimxrt595_evk_init(void)
+void board_early_init_hook(void)
{
/* Set the correct voltage range according to the board. */
power_pad_vrange_t vrange = {
@@ -385,8 +385,6 @@
rd_trim_96 = CLKCTL0->FRO_RDTRIM;
sc_trim_96 = sc_trim_192;
}
-
- return 0;
}
@@ -417,5 +415,3 @@
*/
SYS_INIT(init_psram_framebufs, POST_KERNEL, CONFIG_APPLICATION_INIT_PRIORITY);
#endif
-
-SYS_INIT(mimxrt595_evk_init, PRE_KERNEL_1, CONFIG_BOARD_INIT_PRIORITY);
diff --git a/boards/nxp/mimxrt685_evk/Kconfig b/boards/nxp/mimxrt685_evk/Kconfig
index 593dcf9..88f3b34 100644
--- a/boards/nxp/mimxrt685_evk/Kconfig
+++ b/boards/nxp/mimxrt685_evk/Kconfig
@@ -1,8 +1,6 @@
+# Copyright 2025 NXP
# Copyright (c) 2022 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0
-config BOARD_INIT_PRIORITY
- int "Board initialization priority"
- default 45
- help
- Board initialization priority.
+config BOARD_MIMXRT685_EVK
+ select BOARD_EARLY_INIT_HOOK
diff --git a/boards/nxp/mimxrt685_evk/init.c b/boards/nxp/mimxrt685_evk/init.c
index 8c0cd08..f2f6755 100644
--- a/boards/nxp/mimxrt685_evk/init.c
+++ b/boards/nxp/mimxrt685_evk/init.c
@@ -7,7 +7,7 @@
#include <zephyr/devicetree.h>
#include <fsl_device_registers.h>
-static int mimxrt685_evk_init(void)
+void board_early_init_hook(void)
{
/* flexcomm1 and flexcomm3 are configured to loopback the TX signal to RX */
@@ -54,8 +54,4 @@
*/
OCOTP->OTP_SHADOW[97] = 0x314000;
#endif /* CONFIG_REBOOT */
-
- return 0;
}
-
-SYS_INIT(mimxrt685_evk_init, PRE_KERNEL_1, CONFIG_BOARD_INIT_PRIORITY);
diff --git a/boards/nxp/mimxrt700_evk/Kconfig b/boards/nxp/mimxrt700_evk/Kconfig
new file mode 100644
index 0000000..26c1304
--- /dev/null
+++ b/boards/nxp/mimxrt700_evk/Kconfig
@@ -0,0 +1,7 @@
+# Copyright 2025 NXP
+# SPDX-License-Identifier: Apache-2.0
+
+config BOARD_MIMXRT700_EVK
+ select BOARD_EARLY_INIT_HOOK if \
+ BOARD_MIMXRT700_EVK_MIMXRT798S_CM33_CPU0 || \
+ BOARD_MIMXRT700_EVK_MIMXRT798S_CM33_CPU1
diff --git a/boards/nxp/mimxrt700_evk/mimxrt700_evk_mimxrt798s_cm33_cpu0_defconfig b/boards/nxp/mimxrt700_evk/mimxrt700_evk_mimxrt798s_cm33_cpu0_defconfig
index 9c7cb03..2e0bfcb 100644
--- a/boards/nxp/mimxrt700_evk/mimxrt700_evk_mimxrt798s_cm33_cpu0_defconfig
+++ b/boards/nxp/mimxrt700_evk/mimxrt700_evk_mimxrt798s_cm33_cpu0_defconfig
@@ -12,7 +12,6 @@
CONFIG_ARM_MPU=y
CONFIG_HW_STACK_PROTECTION=y
-CONFIG_BOARD_EARLY_INIT_HOOK=y
# Enable TrustZone-M
CONFIG_TRUSTED_EXECUTION_SECURE=y
diff --git a/boards/nxp/mimxrt700_evk/mimxrt700_evk_mimxrt798s_cm33_cpu1_defconfig b/boards/nxp/mimxrt700_evk/mimxrt700_evk_mimxrt798s_cm33_cpu1_defconfig
index a7a0f73..29cdb5d 100644
--- a/boards/nxp/mimxrt700_evk/mimxrt700_evk_mimxrt798s_cm33_cpu1_defconfig
+++ b/boards/nxp/mimxrt700_evk/mimxrt700_evk_mimxrt798s_cm33_cpu1_defconfig
@@ -12,7 +12,6 @@
CONFIG_ARM_MPU=y
CONFIG_HW_STACK_PROTECTION=y
-CONFIG_BOARD_EARLY_INIT_HOOK=y
# Enable TrustZone-M
CONFIG_TRUSTED_EXECUTION_SECURE=y