driver: sleeptimer: siwx917: Add siwx91x Sleeptimer driver

This commit enables the Sleeptimer driver support for the siwx917 device.

Signed-off-by: S Mohamed Fiaz <fiaz.mohamed@silabs.com>
This commit is contained in:
S Mohamed Fiaz 2025-03-25 11:19:51 +05:30 committed by Benjamin Cabé
commit 701be0c331
7 changed files with 51 additions and 1 deletions

View file

@ -107,6 +107,10 @@
};
};
&sysrtc0 {
status = "okay";
};
&bt_hci0 {
status = "okay";
};

View file

@ -3,7 +3,7 @@
config SILABS_SLEEPTIMER_TIMER
bool "Silabs Sleeptimer system clock driver"
depends on SOC_FAMILY_SILABS_S2
depends on SOC_FAMILY_SILABS_S2 || SOC_FAMILY_SILABS_SIWX91X
depends on DT_HAS_SILABS_GECKO_STIMER_ENABLED
select SOC_SILABS_SLEEPTIMER
select TICKLESS_CAPABLE

View file

@ -6,6 +6,7 @@
#include <arm/armv7-m.dtsi>
#include <zephyr/dt-bindings/clock/silabs/siwx91x-clock.h>
#include <freq.h>
/ {
chosen {
@ -285,6 +286,16 @@
clocks = <&clock0 SIWX91X_CLK_WATCHDOG>;
status = "disabled";
};
sysrtc0: sysrtc@24048c00 {
compatible = "silabs,gecko-stimer";
reg = <0x24048c00 0x78>;
interrupts = <22 0>;
interrupt-names = "sysrtc";
clock-frequency = <DT_FREQ_K(32)>;
prescaler = <1>;
status = "disabled";
};
};
};

View file

@ -151,5 +151,23 @@ if(CONFIG_WISECONNECT_NETWORK_STACK)
)
endif() # CONFIG_WISECONNECT_NETWORK_STACK
if(CONFIG_SOC_SILABS_SLEEPTIMER)
zephyr_include_directories(
${SISDK_DIR}/platform/service/sleeptimer/inc
${SISDK_DIR}/platform/service/sleeptimer/src
${SISDK_DIR}/platform/service/sleeptimer/config
)
zephyr_library_sources(
${SISDK_DIR}/platform/service/sleeptimer/src/sl_sleeptimer.c
${WISECONNECT_DIR}/components/device/silabs/si91x/mcu/drivers/service/sleeptimer/src/sl_sleeptimer_hal_si91x_sysrtc.c
)
zephyr_compile_definitions(
SL_CATALOG_SLEEPTIMER_PRESENT
SL_CODE_COMPONENT_SLEEPTIMER=sleeptimer
SL_CODE_COMPONENT_HAL_SYSRTC=hal_sysrtc
)
endif() # CONFIG_SOC_SILABS_SLEEPTIMER
zephyr_linker_sources(ROM_SECTIONS linker/code_classification_text.ld)
zephyr_linker_sources(RAMFUNC_SECTION linker/code_classification_ramfunc.ld)

View file

@ -9,3 +9,8 @@ config SOC_FAMILY_SILABS_SIWX91X
select CPU_HAS_ARM_MPU
select HAS_SILABS_WISECONNECT
select HAS_SEGGER_RTT if ZEPHYR_SEGGER_MODULE
config SOC_SILABS_SLEEPTIMER
bool
help
The Sleeptimer HAL module is used for SIWX91X.

View file

@ -3,6 +3,16 @@
if SOC_FAMILY_SILABS_SIWX91X
configdefault SILABS_SLEEPTIMER_TIMER
default y
configdefault CORTEX_M_SYSTICK
default n if SILABS_SLEEPTIMER_TIMER
configdefault SYS_CLOCK_TICKS_PER_SEC
default 128 if !TICKLESS_KERNEL && SILABS_SLEEPTIMER_TIMER
default 1024 if SILABS_SLEEPTIMER_TIMER
config WISECONNECT_NETWORK_STACK
bool
select CMSIS_RTOS_V2

View file

@ -7,4 +7,6 @@
#include "si91x_device.h"
#define SYSRTC_IRQHandler IRQ022_Handler
#endif