Skip to content

Commit b781386

Browse files
ragurram26jerome-pouiller
authored andcommitted
soc: silabs: siwx91x: Implement sys_reset()
siwx91x requires a few specific actions to reboot properly. [Jérôme: split commits, reword the commit log, fix prototype] Co-authored-by: Jérôme Pouiller <[email protected]> Signed-off-by: Jérôme Pouiller <[email protected]> Signed-off-by: Rahul Gurram <[email protected]>
1 parent 3fd5cc0 commit b781386

File tree

2 files changed

+10
-0
lines changed

2 files changed

+10
-0
lines changed

modules/hal_silabs/wiseconnect/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ zephyr_include_directories(
4848
${WISECONNECT_DIR}/components/device/silabs/si91x/mcu/drivers/cmsis_driver/config
4949
${WISECONNECT_DIR}/components/device/silabs/si91x/mcu/drivers/cmsis_driver
5050
${WISECONNECT_DIR}/components/device/silabs/si91x/mcu/drivers/cmsis_driver/CMSIS/Driver/Include
51+
${WISECONNECT_DIR}/components/device/silabs/si91x/mcu/hal/inc
5152
${WISECONNECT_DIR}/components/device/silabs/si91x/wireless/ahb_interface/inc
5253
${WISECONNECT_DIR}/components/device/silabs/si91x/wireless/firmware_upgrade
5354
)
@@ -73,6 +74,7 @@ zephyr_library_sources(
7374
${WISECONNECT_DIR}/components/device/silabs/si91x/mcu/drivers/unified_api/src/sl_si91x_driver_gpio.c
7475
${WISECONNECT_DIR}/components/device/silabs/si91x/mcu/drivers/unified_api/src/sl_si91x_pwm.c
7576
${WISECONNECT_DIR}/components/device/silabs/si91x/mcu/drivers/unified_peripheral_drivers/src/sl_si91x_peripheral_gpio.c
77+
${WISECONNECT_DIR}/components/device/silabs/si91x/mcu/hal/src/sl_si91x_hal_soc_soft_reset.c
7678
${WISECONNECT_DIR}/components/device/silabs/si91x/mcu/core/chip/src/iPMU_prog/iPMU_dotc/ipmu_apis.c
7779
${WISECONNECT_DIR}/components/device/silabs/si91x/mcu/core/chip/src/iPMU_prog/iPMU_dotc/rsi_system_config_917.c
7880
)

soc/silabs/silabs_siwx91x/siwg917/soc.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
#include "em_device.h"
1313
#include "sli_siwx917_soc.h"
1414
#include "sl_si91x_power_manager.h"
15+
#include "sl_si91x_hal_soc_soft_reset.h"
1516

1617
void soc_early_init_hook(void)
1718
{
@@ -33,6 +34,13 @@ void soc_early_init_hook(void)
3334
}
3435
}
3536

37+
void sys_arch_reboot(int type)
38+
{
39+
ARG_UNUSED(type);
40+
41+
sl_si91x_soc_nvic_reset();
42+
}
43+
3644
/* SiWx917's bootloader requires IRQn 32 to hold payload's entry point address. */
3745
extern void z_arm_reset(void);
3846
Z_ISR_DECLARE_DIRECT(32, 0, z_arm_reset);

0 commit comments

Comments
 (0)