diff --git a/soc/silabs/common/soc.c b/soc/silabs/common/soc.c index 1136a1fedfd..5d3e9db5693 100644 --- a/soc/silabs/common/soc.c +++ b/soc/silabs/common/soc.c @@ -206,7 +206,7 @@ static void swo_init(void) * * @return 0 */ -static int silabs_init(void) +void soc_early_init_hook(void) { /* handle chip errata */ CHIP_Init(); @@ -240,8 +240,4 @@ static int silabs_init(void) swo_init(); #endif #endif /* !CONFIG_SOC_GECKO_DEV_INIT */ - - return 0; } - -SYS_INIT(silabs_init, PRE_KERNEL_1, 0); diff --git a/soc/silabs/silabs_s0/Kconfig b/soc/silabs/silabs_s0/Kconfig index 6baa33bc1ac..90a0814185f 100644 --- a/soc/silabs/silabs_s0/Kconfig +++ b/soc/silabs/silabs_s0/Kconfig @@ -7,6 +7,7 @@ if SOC_FAMILY_SILABS_S0 config SOC_FAMILY_SILABS_S0 select HAS_SEGGER_RTT if ZEPHYR_SEGGER_MODULE select BUILD_OUTPUT_HEX + select SOC_EARLY_INIT_HOOK rsource "*/Kconfig" diff --git a/soc/silabs/silabs_s1/Kconfig b/soc/silabs/silabs_s1/Kconfig index 5849bd9ecaf..655fec0ea33 100644 --- a/soc/silabs/silabs_s1/Kconfig +++ b/soc/silabs/silabs_s1/Kconfig @@ -7,6 +7,7 @@ if SOC_FAMILY_SILABS_S1 config SOC_FAMILY_SILABS_S1 select HAS_SEGGER_RTT if ZEPHYR_SEGGER_MODULE select BUILD_OUTPUT_HEX + select SOC_EARLY_INIT_HOOK rsource "*/Kconfig" diff --git a/soc/silabs/silabs_s2/Kconfig b/soc/silabs/silabs_s2/Kconfig index 8d1dab247c9..567a72e7ea2 100644 --- a/soc/silabs/silabs_s2/Kconfig +++ b/soc/silabs/silabs_s2/Kconfig @@ -7,6 +7,7 @@ if SOC_FAMILY_SILABS_S2 config SOC_FAMILY_SILABS_S2 select HAS_SEGGER_RTT if ZEPHYR_SEGGER_MODULE select BUILD_OUTPUT_HEX + select SOC_EARLY_INIT_HOOK rsource "*/Kconfig" diff --git a/soc/silabs/silabs_sim3/sim3u/Kconfig b/soc/silabs/silabs_sim3/sim3u/Kconfig index 39ef1525460..0233c9b94ec 100644 --- a/soc/silabs/silabs_sim3/sim3u/Kconfig +++ b/soc/silabs/silabs_sim3/sim3u/Kconfig @@ -8,3 +8,4 @@ config SOC_SERIES_SIM3U select CPU_CORTEX_M3 select CPU_CORTEX_M_HAS_SYSTICK select HAS_SILABS_SI32 + select SOC_EARLY_INIT_HOOK diff --git a/soc/silabs/silabs_sim3/sim3u/soc.c b/soc/silabs/silabs_sim3/sim3u/soc.c index 88355105b1e..9544d2edff9 100644 --- a/soc/silabs/silabs_sim3/sim3u/soc.c +++ b/soc/silabs/silabs_sim3/sim3u/soc.c @@ -108,7 +108,7 @@ __no_optimization static void busy_delay(uint32_t cycles) } } -static int silabs_sim3u_init(void) +void soc_early_init_hook(void) { uint32_t key; @@ -130,8 +130,4 @@ static int silabs_sim3u_init(void) vmon_init(); irq_unlock(key); - - return 0; } - -SYS_INIT(silabs_sim3u_init, PRE_KERNEL_1, 0);