diff --git a/soc/ti/mspm0/mspm0g1x0x_g3x0x/soc.c b/soc/ti/mspm0/mspm0g1x0x_g3x0x/soc.c index 9339971f5c3d1..afa1bf32629e1 100644 --- a/soc/ti/mspm0/mspm0g1x0x_g3x0x/soc.c +++ b/soc/ti/mspm0/mspm0g1x0x_g3x0x/soc.c @@ -5,6 +5,7 @@ */ #include +#include #include #include @@ -19,4 +20,18 @@ static int ti_mspm0g_init(void) return 0; } +/* Overrides the weak ARM implementation */ +void sys_arch_reboot(int type) +{ + switch (type) + { + case SYS_REBOOT_COLD: + DL_SYSCTL_resetDevice(DL_SYSCTL_RESET_POR); + break; + default: + NVIC_SystemReset(); + break; + } +} + SYS_INIT(ti_mspm0g_init, PRE_KERNEL_1, 0);