diff --git a/boards/silabs/dev_kits/sltb010a/sltb010a_defconfig b/boards/silabs/dev_kits/sltb010a/sltb010a_defconfig index b7da445368cb1..3f81ba69cff1d 100644 --- a/boards/silabs/dev_kits/sltb010a/sltb010a_defconfig +++ b/boards/silabs/dev_kits/sltb010a/sltb010a_defconfig @@ -5,6 +5,4 @@ CONFIG_CONSOLE=y CONFIG_UART_CONSOLE=y CONFIG_SERIAL=y CONFIG_GPIO=y -CONFIG_SOC_GECKO_EMU_DCDC=y -CONFIG_SOC_GECKO_EMU_DCDC_MODE_ON=y CONFIG_HW_STACK_PROTECTION=y diff --git a/boards/silabs/dev_kits/xg24_dk2601b/xg24_dk2601b_defconfig b/boards/silabs/dev_kits/xg24_dk2601b/xg24_dk2601b_defconfig index ea3fbea0c139f..7e2172f28aaeb 100644 --- a/boards/silabs/dev_kits/xg24_dk2601b/xg24_dk2601b_defconfig +++ b/boards/silabs/dev_kits/xg24_dk2601b/xg24_dk2601b_defconfig @@ -8,5 +8,3 @@ CONFIG_SERIAL=y CONFIG_GPIO=y CONFIG_HW_STACK_PROTECTION=y CONFIG_REGULATOR=y -CONFIG_SOC_GECKO_EMU_DCDC=y -CONFIG_SOC_GECKO_EMU_DCDC_MODE_ON=y diff --git a/boards/silabs/dev_kits/xg24_ek2703a/xg24_ek2703a_defconfig b/boards/silabs/dev_kits/xg24_ek2703a/xg24_ek2703a_defconfig index ea3fbea0c139f..7e2172f28aaeb 100644 --- a/boards/silabs/dev_kits/xg24_ek2703a/xg24_ek2703a_defconfig +++ b/boards/silabs/dev_kits/xg24_ek2703a/xg24_ek2703a_defconfig @@ -8,5 +8,3 @@ CONFIG_SERIAL=y CONFIG_GPIO=y CONFIG_HW_STACK_PROTECTION=y CONFIG_REGULATOR=y -CONFIG_SOC_GECKO_EMU_DCDC=y -CONFIG_SOC_GECKO_EMU_DCDC_MODE_ON=y diff --git a/boards/silabs/dev_kits/xg27_dk2602a/xg27_dk2602a_defconfig b/boards/silabs/dev_kits/xg27_dk2602a/xg27_dk2602a_defconfig index b7da445368cb1..3f81ba69cff1d 100644 --- a/boards/silabs/dev_kits/xg27_dk2602a/xg27_dk2602a_defconfig +++ b/boards/silabs/dev_kits/xg27_dk2602a/xg27_dk2602a_defconfig @@ -5,6 +5,4 @@ CONFIG_CONSOLE=y CONFIG_UART_CONSOLE=y CONFIG_SERIAL=y CONFIG_GPIO=y -CONFIG_SOC_GECKO_EMU_DCDC=y -CONFIG_SOC_GECKO_EMU_DCDC_MODE_ON=y CONFIG_HW_STACK_PROTECTION=y diff --git a/boards/silabs/radio_boards/xg23_rb4210a/xg23_rb4210a_defconfig b/boards/silabs/radio_boards/xg23_rb4210a/xg23_rb4210a_defconfig index d937f7c3052ba..e70f8f5c5197d 100644 --- a/boards/silabs/radio_boards/xg23_rb4210a/xg23_rb4210a_defconfig +++ b/boards/silabs/radio_boards/xg23_rb4210a/xg23_rb4210a_defconfig @@ -5,5 +5,3 @@ CONFIG_CONSOLE=y CONFIG_UART_CONSOLE=y CONFIG_SERIAL=y CONFIG_GPIO=y -CONFIG_SOC_GECKO_EMU_DCDC=y -CONFIG_SOC_GECKO_EMU_DCDC_MODE_ON=y diff --git a/drivers/bluetooth/hci/Kconfig b/drivers/bluetooth/hci/Kconfig index 294a99baa05b9..21aeeb98ee242 100644 --- a/drivers/bluetooth/hci/Kconfig +++ b/drivers/bluetooth/hci/Kconfig @@ -156,7 +156,6 @@ config BT_SILABS_EFR32 default y depends on DT_HAS_SILABS_BT_HCI_EFR32_ENABLED depends on ZEPHYR_HAL_SILABS_MODULE_BLOBS || BUILD_ONLY_NO_BLOBS - depends on !PM || SOC_GECKO_PM_BACKEND_PMGR depends on SOC_GECKO_HAS_RADIO select SOC_GECKO_USE_RAIL select PSA_CRYPTO diff --git a/drivers/clock_control/Kconfig.silabs b/drivers/clock_control/Kconfig.silabs index 83926fe465cda..52e8ed7a4b0ed 100644 --- a/drivers/clock_control/Kconfig.silabs +++ b/drivers/clock_control/Kconfig.silabs @@ -5,5 +5,6 @@ config CLOCK_CONTROL_SILABS_SERIES bool "Silicon Labs Series 2+ clock control driver" default y depends on DT_HAS_SILABS_SERIES_CLOCK_ENABLED + select SILABS_SISDK_CLOCK_MANAGER help Enable Silicon Labs Series 2+ Clock Management Unit clock control driver. diff --git a/drivers/comparator/Kconfig.silabs_acmp b/drivers/comparator/Kconfig.silabs_acmp index db684e91f9b39..79f574b017471 100644 --- a/drivers/comparator/Kconfig.silabs_acmp +++ b/drivers/comparator/Kconfig.silabs_acmp @@ -5,7 +5,7 @@ config COMPARATOR_SILABS_ACMP default y depends on DT_HAS_SILABS_ACMP_ENABLED select PINCTRL - select SOC_SILABS_ACMP + select SILABS_SISDK_ACMP help Enable the comparator driver for the Analog Comparator hardware block present on Silicon Labs devices. This block is commonly used to diff --git a/drivers/counter/Kconfig.gecko b/drivers/counter/Kconfig.gecko index ded39e296855f..529d2f8b5bf3f 100644 --- a/drivers/counter/Kconfig.gecko +++ b/drivers/counter/Kconfig.gecko @@ -17,7 +17,7 @@ config COUNTER_GECKO_STIMER bool "Silicon Labs Gecko Counter Sleep Timer driver" default y depends on DT_HAS_SILABS_GECKO_STIMER_ENABLED - select SOC_SILABS_SLEEPTIMER + select SILABS_SISDK_SLEEPTIMER help Enable the counter driver for Sleep Timer module for Silicon Labs Gecko chips. diff --git a/drivers/dma/Kconfig.silabs b/drivers/dma/Kconfig.silabs index 54d617b4ab743..f6f1d2086c3cd 100644 --- a/drivers/dma/Kconfig.silabs +++ b/drivers/dma/Kconfig.silabs @@ -5,7 +5,7 @@ config DMA_SILABS_LDMA bool "Silabs DMA driver" default y select SYS_MEM_BLOCKS - select SOC_GECKO_LDMA + select SILABS_SISDK_LDMA depends on DT_HAS_SILABS_LDMA_ENABLED help Driver for Silabs DMA. diff --git a/drivers/entropy/Kconfig.gecko b/drivers/entropy/Kconfig.gecko index e096cb33a851c..621e82326f8e3 100644 --- a/drivers/entropy/Kconfig.gecko +++ b/drivers/entropy/Kconfig.gecko @@ -19,6 +19,7 @@ config ENTROPY_GECKO_SE default y depends on DT_HAS_SILABS_GECKO_SEMAILBOX_ENABLED select ENTROPY_HAS_DRIVER + select SILABS_SISDK_SE help This option enables the true random number generator driver based on the Secure Element (SE) module. diff --git a/drivers/flash/Kconfig.silabs b/drivers/flash/Kconfig.silabs index 5890f98ed340f..2f36eb5699317 100644 --- a/drivers/flash/Kconfig.silabs +++ b/drivers/flash/Kconfig.silabs @@ -7,7 +7,7 @@ config SOC_FLASH_SILABS_S2 depends on DT_HAS_SILABS_SERIES2_FLASH_CONTROLLER_ENABLED select FLASH_HAS_DRIVER_ENABLED select FLASH_HAS_PAGE_LAYOUT - select SOC_GECKO_MSC + select SILABS_SISDK_MSC select FLASH_HAS_EXPLICIT_ERASE select MPU_ALLOW_FLASH_WRITE if ARM_MPU help diff --git a/drivers/gpio/gpio_gecko.c b/drivers/gpio/gpio_gecko.c index a95bed6cbb86d..5f65645bf9691 100644 --- a/drivers/gpio/gpio_gecko.c +++ b/drivers/gpio/gpio_gecko.c @@ -12,9 +12,6 @@ #include #include #include -#ifdef CONFIG_SOC_GECKO_DEV_INIT -#include -#endif #include @@ -391,9 +388,6 @@ DEVICE_DT_DEFINE(DT_INST(0, silabs_gecko_gpio), static int gpio_gecko_common_init(const struct device *dev) { -#ifdef CONFIG_SOC_GECKO_DEV_INIT - CMU_ClockEnable(cmuClock_GPIO, true); -#endif gpio_gecko_common_data.count = 0; IRQ_CONNECT(GPIO_EVEN_IRQn, DT_IRQ_BY_NAME(DT_INST(0, silabs_gecko_gpio), gpio_even, priority), diff --git a/drivers/hwinfo/Kconfig.silabs_series2 b/drivers/hwinfo/Kconfig.silabs_series2 index d898f94afbd87..0d5b7864a6aa3 100644 --- a/drivers/hwinfo/Kconfig.silabs_series2 +++ b/drivers/hwinfo/Kconfig.silabs_series2 @@ -6,6 +6,6 @@ config HWINFO_SILABS_S2 default y depends on SOC_FAMILY_SILABS_S2 select HWINFO_HAS_DRIVER - select SOC_GECKO_RMU + select SILABS_SISDK_RMU help Enable Silabs Series 2 hwinfo driver. diff --git a/drivers/serial/Kconfig.silabs_eusart b/drivers/serial/Kconfig.silabs_eusart index e13d80d37ec69..0d206f6624327 100644 --- a/drivers/serial/Kconfig.silabs_eusart +++ b/drivers/serial/Kconfig.silabs_eusart @@ -8,7 +8,7 @@ config UART_SILABS_EUSART depends on DT_HAS_SILABS_EUSART_UART_ENABLED select SERIAL_HAS_DRIVER select SERIAL_SUPPORT_INTERRUPT - select SOC_GECKO_EUSART + select SILABS_SISDK_EUSART select SERIAL_SUPPORT_ASYNC \ if DT_HAS_SILABS_LDMA_ENABLED select DMA if UART_ASYNC_API diff --git a/drivers/serial/Kconfig.silabs_usart b/drivers/serial/Kconfig.silabs_usart index a2088577d42af..6d0a9318929f6 100644 --- a/drivers/serial/Kconfig.silabs_usart +++ b/drivers/serial/Kconfig.silabs_usart @@ -7,7 +7,7 @@ config UART_SILABS_USART depends on DT_HAS_SILABS_USART_UART_ENABLED select SERIAL_HAS_DRIVER select SERIAL_SUPPORT_INTERRUPT - select SOC_GECKO_USART + select SILABS_SISDK_USART select SERIAL_SUPPORT_ASYNC \ if DT_HAS_SILABS_LDMA_ENABLED select DMA if UART_ASYNC_API diff --git a/drivers/spi/Kconfig.silabs_eusart b/drivers/spi/Kconfig.silabs_eusart index a2644fd13ed8e..408f2460eecdf 100644 --- a/drivers/spi/Kconfig.silabs_eusart +++ b/drivers/spi/Kconfig.silabs_eusart @@ -9,7 +9,7 @@ config SPI_SILABS_EUSART default y depends on DT_HAS_SILABS_EUSART_SPI_ENABLED depends on GPIO - select SOC_GECKO_EUSART + select SILABS_SISDK_EUSART select PINCTRL if SOC_FAMILY_SILABS_S2 help Enable the EUSART SPI driver diff --git a/drivers/spi/Kconfig.silabs_usart b/drivers/spi/Kconfig.silabs_usart index 23a93a5784720..2ad5843bdd983 100644 --- a/drivers/spi/Kconfig.silabs_usart +++ b/drivers/spi/Kconfig.silabs_usart @@ -8,7 +8,8 @@ config SPI_SILABS_USART default y depends on DT_HAS_SILABS_USART_SPI_ENABLED depends on GPIO - select SOC_GECKO_USART + select SOC_GECKO_USART if SOC_FAMILY_SILABS_S0 || SOC_FAMILY_SILABS_S1 + select SILABS_SISDK_USART if SOC_FAMILY_SILABS_S2 select CLOCK_CONTROL_SILABS_SERIES if SOC_FAMILY_SILABS_S2 select PINCTRL if SOC_FAMILY_SILABS_S2 help diff --git a/drivers/timer/Kconfig.gecko b/drivers/timer/Kconfig.gecko index cd53f9977b5cc..80f4dc22ae676 100644 --- a/drivers/timer/Kconfig.gecko +++ b/drivers/timer/Kconfig.gecko @@ -5,7 +5,7 @@ config GECKO_BURTC_TIMER bool "SiLabs Gecko BURTC system clock driver" depends on SOC_FAMILY_SILABS_S2 depends on DT_HAS_SILABS_GECKO_BURTC_ENABLED - select SOC_GECKO_BURTC + select SILABS_SISDK_BURTC select TICKLESS_CAPABLE select TIMER_READS_ITS_FREQUENCY_AT_RUNTIME help diff --git a/drivers/timer/Kconfig.silabs b/drivers/timer/Kconfig.silabs index aa7a013e9c005..f84fa7ec8ccc9 100644 --- a/drivers/timer/Kconfig.silabs +++ b/drivers/timer/Kconfig.silabs @@ -5,7 +5,7 @@ config SILABS_SLEEPTIMER_TIMER bool "Silabs Sleeptimer system clock driver" depends on SOC_FAMILY_SILABS_S2 || SOC_FAMILY_SILABS_SIWX91X depends on DT_HAS_SILABS_GECKO_STIMER_ENABLED - select SOC_SILABS_SLEEPTIMER + select SILABS_SISDK_SLEEPTIMER select TICKLESS_CAPABLE select TIMER_READS_ITS_FREQUENCY_AT_RUNTIME help diff --git a/drivers/watchdog/Kconfig.gecko b/drivers/watchdog/Kconfig.gecko index 55fbd7b8e1755..e0b55fac846cd 100644 --- a/drivers/watchdog/Kconfig.gecko +++ b/drivers/watchdog/Kconfig.gecko @@ -10,6 +10,7 @@ config WDT_GECKO default y depends on DT_HAS_SILABS_GECKO_WDOG_ENABLED select HAS_WDT_DISABLE_AT_BOOT - select SOC_GECKO_WDOG + select SOC_GECKO_WDOG if SOC_FAMILY_SILABS_S0 || SOC_FAMILY_SILABS_S1 + select SILABS_SISDK_WDOG if SOC_FAMILY_SILABS_S2 help Enable WDOG driver for Silicon Labs Gecko MCUs. diff --git a/modules/hal_silabs/gecko/Kconfig b/modules/hal_silabs/gecko/Kconfig index 12c74f17c16ac..f04f07ce35013 100644 --- a/modules/hal_silabs/gecko/Kconfig +++ b/modules/hal_silabs/gecko/Kconfig @@ -12,4 +12,108 @@ config SILABS_GECKO_RAIL_MULTIPROTOCOL coexistence and arbitration between multiple wireless protocols (for example, Bluetooth LE and a proprietary 2.4 GHz stack) on Gecko SoCs. +config SOC_GECKO_CMU + bool + help + Set if the clock management unit (CMU) HAL module is used. + +config SOC_GECKO_BURTC + bool + help + Set if the Back-Up Real Time Counter (BURTC) HAL module is used. + +config SOC_GECKO_CORE + bool + default y + help + Set if the Core interrupt handling (CORE) HAL module is used. + +config SOC_GECKO_ADC + bool + help + Set if the Analog to Digital Converter (ADC) HAL module is used. + +config SOC_GECKO_CRYOTIMER + bool + help + Set if the Ultra Low Energy Timer/Counter (CRYOTIMER) HAL module is used. + +config SOC_GECKO_EMU + bool + help + Set if the Energy Management Unit (EMU) HAL module is used. + +config SOC_GECKO_GPIO + bool + help + Set if the General Purpose Input/Output (GPIO) HAL module is used. + +config SOC_GECKO_I2C + bool + help + Set if the Inter-Integrated Circuit Interface (I2C) HAL module is used. + +config SOC_GECKO_LETIMER + bool + help + Set if the Low Energy Timer (LETIMER) HAL module is used. + +config SOC_GECKO_LEUART + bool + help + Set if the Low Energy Universal Asynchronous Receiver/Transmitter (LEUART) + HAL module is used. + +config SOC_GECKO_MSC + bool + help + Set if the Memory System Controller (MSC) HAL module is used. + +config SOC_GECKO_PRS + bool + help + Set if the Peripheral Reflex System (PRS) HAL module is used. + +config SOC_GECKO_RMU + bool + help + Set if the Reset Management Unit (RMU) HAL module is used. + +config SOC_GECKO_RTC + bool + help + Set if the Real Time Counter (RTC) HAL module is used. + +config SOC_GECKO_RTCC + bool + help + Set if the Real Time Counter and Calendar (RTCC) HAL module is used. + +config SOC_GECKO_TIMER + bool + help + Set if the Timer/Counter (TIMER) HAL module is used. + +config SOC_GECKO_USART + bool + help + Set if the Universal Synchronous Asynchronous Receiver/Transmitter (USART) + HAL module is used. + +config SOC_GECKO_EUSART + bool + help + Set if the Extended Universal Synchronous Asynchronous Receiver/Transmitter (EUSART) + HAL module is used. + +config SOC_GECKO_WDOG + bool + help + Set if the Watchdog Timer (WDOG) HAL module is used. + +config SOC_GECKO_TRNG + bool + help + Set if the SoC has a True Random Number Generator (TRNG) module. + endmenu diff --git a/modules/hal_silabs/simplicity_sdk/CMakeLists.txt b/modules/hal_silabs/simplicity_sdk/CMakeLists.txt index 0c5aae2e48cec..68f3bf0fc8716 100644 --- a/modules/hal_silabs/simplicity_sdk/CMakeLists.txt +++ b/modules/hal_silabs/simplicity_sdk/CMakeLists.txt @@ -170,12 +170,12 @@ zephyr_include_directories( ${SERVICE_DIR}/udelay/inc ${SECURITY_DIR}/sl_component/sl_protocol_crypto/src ${SECURITY_DIR}/sl_component/sli_crypto/inc + ${SECURITY_DIR}/sl_component/sli_psec_osal/inc ${BOARD_DIR} ) zephyr_compile_definitions( ${SILABS_DEVICE_PART_NUMBER} - SL_CODE_COMPONENT_CLOCK_MANAGER=clock_manager SL_CODE_COMPONENT_DEVICE_PERIPHERAL=peripheral SL_CODE_COMPONENT_HAL_COMMON=hal_common SL_CODE_COMPONENT_SYSTEM=system @@ -184,10 +184,6 @@ zephyr_compile_definitions( zephyr_library_sources( ${DEVICE_DIR}/SiliconLabs/${SILABS_DEVICE_FAMILY}/Source/system_${CONFIG_SOC_SERIES}.c ${EMLIB_DIR}/src/em_system.c - ${SERVICE_DIR}/clock_manager/src/sl_clock_manager.c - ${SERVICE_DIR}/clock_manager/src/sl_clock_manager_hal_s2.c - ${SERVICE_DIR}/clock_manager/src/sl_clock_manager_init.c - ${SERVICE_DIR}/clock_manager/src/sl_clock_manager_init_hal_s2.c ${SERVICE_DIR}/device_manager/devices/sl_device_peripheral_hal_efr32xg${SILABS_DEVICE_FAMILY_NUMBER}.c ${SERVICE_DIR}/device_manager/src/sl_device_clock.c ${SERVICE_DIR}/device_manager/src/sl_device_gpio.c @@ -202,7 +198,7 @@ if(NOT SILABS_DEVICE_FAMILY_NUMBER EQUAL "21") endif() # Sleeptimer -if(CONFIG_SOC_SILABS_SLEEPTIMER) +if(CONFIG_SILABS_SISDK_SLEEPTIMER) zephyr_library_sources( ${PERIPHERAL_DIR}/src/sl_hal_sysrtc.c ${SERVICE_DIR}/sleeptimer/src/sl_sleeptimer_hal_rtcc.c @@ -216,24 +212,37 @@ if(CONFIG_SOC_SILABS_SLEEPTIMER) ) endif() +# Clock Manager +if(CONFIG_SILABS_SISDK_CLOCK_MANAGER) + zephyr_library_sources( + ${EMLIB_DIR}/src/em_cmu.c + ${SERVICE_DIR}/clock_manager/src/sl_clock_manager.c + ${SERVICE_DIR}/clock_manager/src/sl_clock_manager_hal_s2.c + ${SERVICE_DIR}/clock_manager/src/sl_clock_manager_init.c + ${SERVICE_DIR}/clock_manager/src/sl_clock_manager_init_hal_s2.c + ) + zephyr_compile_definitions( + SL_CODE_COMPONENT_CLOCK_MANAGER=clock_manager + ) +endif() + zephyr_library_sources_ifdef(CONFIG_SILABS_SISDK_SYSTEM ${PERIPHERAL_DIR}/src/sl_hal_system.c) #Keep em_iadc.c for compatibility for now. Not used anymore. zephyr_library_sources_ifdef(CONFIG_SILABS_SISDK_IADC ${EMLIB_DIR}/src/em_iadc.c) zephyr_library_sources_ifdef(CONFIG_SILABS_SISDK_IADC ${PERIPHERAL_DIR}/src/sl_hal_iadc.c) -zephyr_library_sources_ifdef(CONFIG_SOC_GECKO_BURTC ${EMLIB_DIR}/src/em_burtc.c) -zephyr_library_sources_ifdef(CONFIG_SOC_GECKO_CMU ${EMLIB_DIR}/src/em_cmu.c) +zephyr_library_sources_ifdef(CONFIG_SILABS_SISDK_BURTC ${EMLIB_DIR}/src/em_burtc.c) # Device Init -if(CONFIG_SOC_GECKO_DEV_INIT) +if(CONFIG_SILABS_SISDK_DEVICE_INIT) zephyr_library_sources_ifdef(CONFIG_DT_HAS_SILABS_SERIES2_DCDC_ENABLED ${SERVICE_DIR}/device_init/src/sl_device_init_dcdc_s2.c ) endif() # Power Manager -if(CONFIG_SOC_GECKO_PM_BACKEND_PMGR) +if(CONFIG_SILABS_SISDK_POWER_MANAGER) zephyr_library_sources( ${SERVICE_DIR}/power_manager/src/common/sl_power_manager_common.c ${SERVICE_DIR}/power_manager/src/common/sl_power_manager_em4.c @@ -244,13 +253,13 @@ if(CONFIG_SOC_GECKO_PM_BACKEND_PMGR) SL_CATALOG_POWER_MANAGER_PRESENT SL_CODE_COMPONENT_POWER_MANAGER=power_manager ) - zephyr_compile_definitions_ifdef(CONFIG_SOC_GECKO_RTCC + zephyr_compile_definitions_ifdef(CONFIG_SILABS_SISDK_RTCC SL_CATALOG_POWER_MANAGER_DEEPSLEEP_BLOCKING_HFXO_RESTORE_PRESENT ) endif() # HFXO Manager -if(CONFIG_SOC_SILABS_HFXO_MANAGER) +if(CONFIG_SILABS_SISDK_HFXO_MANAGER) zephyr_library_sources( ${SERVICE_DIR}/hfxo_manager/src/sl_hfxo_manager.c ${SERVICE_DIR}/hfxo_manager/src/sl_hfxo_manager_hal_s2.c @@ -260,19 +269,19 @@ if(CONFIG_SOC_SILABS_HFXO_MANAGER) ) endif() -zephyr_library_sources_ifdef(CONFIG_SOC_GECKO_DEV_INIT ${COMMON_DIR}/src/sl_slist.c) -if(CONFIG_SOC_GECKO_CORE) - zephyr_library_sources_ifdef(CONFIG_SOC_GECKO_CORE +zephyr_library_sources_ifdef(CONFIG_SILABS_SISDK_SLIST ${COMMON_DIR}/src/sl_slist.c) + +if(CONFIG_SILABS_SISDK_CORE) + zephyr_library_sources_ifdef(CONFIG_SILABS_SISDK_CORE ${COMMON_DIR}/src/sl_core_cortexm.c ) zephyr_compile_definitions( SL_CODE_COMPONENT_CORE=core ) endif() -zephyr_library_sources_ifdef(CONFIG_SOC_SILABS_ACMP ${EMLIB_DIR}/src/em_acmp.c) -zephyr_library_sources_ifdef(CONFIG_SOC_GECKO_CRYOTIMER ${EMLIB_DIR}/src/em_cryotimer.c) -zephyr_library_sources_ifdef(CONFIG_SOC_GECKO_EMU ${EMLIB_DIR}/src/em_emu.c) -if(CONFIG_SOC_GECKO_GPIO) +zephyr_library_sources_ifdef(CONFIG_SILABS_SISDK_ACMP ${EMLIB_DIR}/src/em_acmp.c) +zephyr_library_sources_ifdef(CONFIG_SILABS_SISDK_EMU ${EMLIB_DIR}/src/em_emu.c) +if(CONFIG_SILABS_SISDK_GPIO) zephyr_library_sources( ${EMLIB_DIR}/src/em_gpio.c ${DRIVER_DIR}/gpio/src/sl_gpio.c @@ -306,33 +315,31 @@ zephyr_library_sources_ifdef(CONFIG_SILABS_SISDK_LETIMER ${PERIPHERAL_DIR}/src zephyr_library_sources_ifdef(CONFIG_SILABS_SISDK_TIMER ${PERIPHERAL_DIR}/src/sl_hal_timer.c) zephyr_library_sources_ifdef(CONFIG_SILABS_SISDK_VDAC ${PERIPHERAL_DIR}/src/sl_hal_vdac.c) -zephyr_library_sources_ifdef(CONFIG_SOC_GECKO_LDMA ${EMDRV_DIR}/dmadrv/src/dmadrv.c) - -zephyr_library_sources_ifdef(CONFIG_SOC_GECKO_I2C ${EMLIB_DIR}/src/em_i2c.c) -zephyr_library_sources_ifdef(CONFIG_SOC_GECKO_LEUART ${EMLIB_DIR}/src/em_leuart.c) -zephyr_library_sources_ifdef(CONFIG_SOC_GECKO_MSC ${EMLIB_DIR}/src/em_msc.c) -zephyr_library_sources_ifdef(CONFIG_SOC_GECKO_LDMA ${EMLIB_DIR}/src/em_ldma.c) -zephyr_library_sources_ifdef(CONFIG_SOC_GECKO_PRS ${EMLIB_DIR}/src/em_prs.c) -zephyr_library_sources_ifdef(CONFIG_SOC_GECKO_RMU ${EMLIB_DIR}/src/em_rmu.c) -zephyr_library_sources_ifdef(CONFIG_SOC_GECKO_RTC ${EMLIB_DIR}/src/em_rtc.c) -zephyr_library_sources_ifdef(CONFIG_SOC_GECKO_RTCC ${EMLIB_DIR}/src/em_rtcc.c) -zephyr_library_sources_ifdef(CONFIG_SOC_GECKO_EUSART ${EMLIB_DIR}/src/em_eusart.c) -zephyr_library_sources_ifdef(CONFIG_SOC_GECKO_USART ${EMLIB_DIR}/src/em_usart.c) -zephyr_library_sources_ifdef(CONFIG_SOC_GECKO_WDOG ${EMLIB_DIR}/src/em_wdog.c) - -zephyr_include_directories_ifdef(CONFIG_SOC_GECKO_SE +zephyr_library_sources_ifdef(CONFIG_SILABS_SISDK_LDMA + ${EMDRV_DIR}/dmadrv/src/dmadrv.c + ${EMLIB_DIR}/src/em_ldma.c +) + +zephyr_library_sources_ifdef(CONFIG_SILABS_SISDK_MSC ${EMLIB_DIR}/src/em_msc.c) +zephyr_library_sources_ifdef(CONFIG_SILABS_SISDK_PRS ${EMLIB_DIR}/src/em_prs.c) +zephyr_library_sources_ifdef(CONFIG_SILABS_SISDK_RMU ${EMLIB_DIR}/src/em_rmu.c) +zephyr_library_sources_ifdef(CONFIG_SILABS_SISDK_RTCC ${EMLIB_DIR}/src/em_rtcc.c) +zephyr_library_sources_ifdef(CONFIG_SILABS_SISDK_EUSART ${EMLIB_DIR}/src/em_eusart.c) +zephyr_library_sources_ifdef(CONFIG_SILABS_SISDK_USART ${EMLIB_DIR}/src/em_usart.c) +zephyr_library_sources_ifdef(CONFIG_SILABS_SISDK_WDOG ${EMLIB_DIR}/src/em_wdog.c) + +zephyr_include_directories_ifdef(CONFIG_SILABS_SISDK_SE ${SECURITY_DIR}/sl_component/se_manager/src ${SECURITY_DIR}/sl_component/se_manager/inc - ${SECURITY_DIR}/sl_component/sli_psec_osal/inc ) -zephyr_library_sources_ifdef(CONFIG_SOC_GECKO_SE +zephyr_library_sources_ifdef(CONFIG_SILABS_SISDK_SE ${SECURITY_DIR}/sl_component/se_manager/src/sl_se_manager.c ${SECURITY_DIR}/sl_component/se_manager/src/sl_se_manager_util.c ${SECURITY_DIR}/sl_component/se_manager/src/sli_se_manager_mailbox.c ) -zephyr_compile_definitions_ifdef(CONFIG_SOC_GECKO_SE +zephyr_compile_definitions_ifdef(CONFIG_SILABS_SISDK_SE SL_CODE_COMPONENT_SE_MANAGER=se_manager SL_CODE_COMPONENT_PSEC_OSAL=psec_osal ) diff --git a/modules/hal_silabs/simplicity_sdk/Kconfig b/modules/hal_silabs/simplicity_sdk/Kconfig index 16ba4cb33c813..3ad364481296e 100644 --- a/modules/hal_silabs/simplicity_sdk/Kconfig +++ b/modules/hal_silabs/simplicity_sdk/Kconfig @@ -4,12 +4,26 @@ menu "SiSDK configuration" depends on HAS_SILABS_SISDK +# Peripherals + +config SILABS_SISDK_ACMP + bool "Peripheral HAL for ACMP" + +config SILABS_SISDK_BURTC + bool "Peripheral HAL for BURTC" + +config SILABS_SISDK_CORE + bool "Peripheral HAL for CORE" + +config SILABS_SISDK_EMU + bool "Peripheral HAL for EMU" + +config SILABS_SISDK_EUSART + bool "Peripheral HAL for EUSART" + config SILABS_SISDK_GPIO bool "Peripheral HAL for GPIO" -config SILABS_SISDK_SYSTEM - bool "Peripheral HAL for SYSTEM (device info)" - config SILABS_SISDK_I2C bool "Peripheral HAL for I2C" @@ -17,15 +31,82 @@ config SILABS_SISDK_IADC bool "Peripheral HAL for IADC" select SILABS_SISDK_SYSTEM +config SILABS_SISDK_LDMA + bool "Peripheral HAL for LDMA" + config SILABS_SISDK_LETIMER bool "Peripheral HAL for LETIMER" +config SILABS_SISDK_MSC + bool "Peripheral HAL for MSC" + +config SILABS_SISDK_PRS + bool "Peripheral HAL for PRS" + +config SILABS_SISDK_RMU + bool "Peripheral HAL for RMU" + +config SILABS_SISDK_RTCC + bool "Peripheral HAL for RTCC" + +config SILABS_SISDK_SE + bool "Peripheral HAL for SE (Secure Engine)" + +config SILABS_SISDK_SYSTEM + bool "Peripheral HAL for SYSTEM (device info)" + config SILABS_SISDK_TIMER bool "Peripheral HAL for TIMER" +config SILABS_SISDK_USART + bool "Peripheral HAL for USART" + config SILABS_SISDK_VDAC bool "Peripheral HAL for VDAC" +config SILABS_SISDK_WDOG + bool "Peripheral HAL for WDOG" + +# Utilities + +config SILABS_SISDK_SLIST + bool + +# Services + +config SILABS_SISDK_CLOCK_MANAGER + bool "Clock Manager service" + help + Set if the Clock Manager HAL module is used. + +config SILABS_SISDK_DEVICE_INIT + bool "Device Init service" + select SILABS_SISDK_EMU + help + Use the device initialization routines from the device_init service + in Silicon Labs HAL. + +config SILABS_SISDK_HFXO_MANAGER + bool "HFXO Manager service" + help + Set if the HFXO Manager HAL module is used. + +config SILABS_SISDK_POWER_MANAGER + bool "Power Manager service" + select SILABS_SISDK_EMU + select SILABS_SISDK_SLIST + help + Set if the Power Manager HAL module is used. + +config SILABS_SISDK_SLEEPTIMER + bool "Sleeptimer service" + select SILABS_SISDK_PRS + select SILABS_SISDK_RTCC if $(dt_nodelabel_enabled,rtcc0) + help + Set if the Sleeptimer HAL module is used. + +# Radio + config SILABS_SISDK_RAIL_PA_CURVE_HEADER string "RAIL PA custom curve header file" default "pa_curves_efr32.h" diff --git a/modules/hal_silabs/wiseconnect/CMakeLists.txt b/modules/hal_silabs/wiseconnect/CMakeLists.txt index 1edfb7e76d410..ffd7a5847df9f 100644 --- a/modules/hal_silabs/wiseconnect/CMakeLists.txt +++ b/modules/hal_silabs/wiseconnect/CMakeLists.txt @@ -200,7 +200,7 @@ if(CONFIG_SILABS_SIWX91X_NWP) zephyr_include_directories(.) endif() # CONFIG_SILABS_SIWX91X_NWP -if(CONFIG_SOC_SILABS_SLEEPTIMER) +if(CONFIG_SILABS_SISDK_SLEEPTIMER) zephyr_include_directories( ${SISDK_DIR}/platform/service/sleeptimer/inc ${SISDK_DIR}/platform/service/sleeptimer/src @@ -216,7 +216,7 @@ if(CONFIG_SOC_SILABS_SLEEPTIMER) SL_CODE_COMPONENT_SLEEPTIMER=sleeptimer SL_CODE_COMPONENT_HAL_SYSRTC=hal_sysrtc ) -endif() # CONFIG_SOC_SILABS_SLEEPTIMER +endif() # CONFIG_SILABS_SISDK_SLEEPTIMER if(CONFIG_SOC_SIWX91X_PM_BACKEND_PMGR) zephyr_library_sources( diff --git a/modules/hal_silabs/wiseconnect/Kconfig b/modules/hal_silabs/wiseconnect/Kconfig new file mode 100644 index 0000000000000..61c111206bea9 --- /dev/null +++ b/modules/hal_silabs/wiseconnect/Kconfig @@ -0,0 +1,12 @@ +# Copyright (c) 2025 Silicon Laboratories Inc. +# SPDX-License-Identifier: Apache-2.0 + +menu "WiSeConnect configuration" + depends on HAS_SILABS_WISECONNECT + +config SILABS_SISDK_SLEEPTIMER + bool "Sleeptimer service" + help + Set if the Sleeptimer HAL module is used. + +endmenu diff --git a/soc/silabs/Kconfig b/soc/silabs/Kconfig index 1bc6ca673f993..b752b3a4b9712 100644 --- a/soc/silabs/Kconfig +++ b/soc/silabs/Kconfig @@ -4,163 +4,33 @@ rsource "*/Kconfig" -if SOC_FAMILY_SILABS_S0 || SOC_FAMILY_SILABS_S1 || SOC_FAMILY_SILABS_S2 +if SOC_FAMILY_SILABS_S1 || SOC_FAMILY_SILABS_S2 -config SOC_GECKO_BURTC - bool - help - Set if the Back-Up Real Time Counter (BURTC) HAL module is used. - -config SOC_GECKO_CORE - bool - default y - help - Set if the Core interrupt handling (CORE) HAL module is used. - -config SOC_SILABS_ACMP - bool - help - Set if the Analog comparator (ACMP) HAL module is used. - -config SOC_GECKO_ADC - bool - help - Set if the Analog to Digital Converter (ADC) HAL module is used. - -config SOC_GECKO_IADC - bool - help - Set if the Incremental Analog to Digital Converter (IADC) HAL module is used. - -config SOC_GECKO_CRYOTIMER - bool - help - Set if the Ultra Low Energy Timer/Counter (CRYOTIMER) HAL module is used. - -config SOC_GECKO_EMU - bool - help - Set if the Energy Management Unit (EMU) HAL module is used. - -config SOC_GECKO_GPIO - bool - help - Set if the General Purpose Input/Output (GPIO) HAL module is used. - -config SOC_GECKO_I2C - bool - help - Set if the Inter-Integrated Circuit Interface (I2C) HAL module is used. - -config SOC_GECKO_LETIMER - bool - help - Set if the Low Energy Timer (LETIMER) HAL module is used. - -config SOC_GECKO_LEUART - bool - help - Set if the Low Energy Universal Asynchronous Receiver/Transmitter (LEUART) - HAL module is used. - -config SOC_GECKO_LDMA - bool - help - Set if the Linked Direct Memory Access (LDMA) HAL module is used. - -config SOC_GECKO_MSC - bool - help - Set if the Memory System Controller (MSC) HAL module is used. - -config SOC_GECKO_PRS - bool - help - Set if the Peripheral Reflex System (PRS) HAL module is used. - -config SOC_GECKO_RMU - bool - help - Set if the Reset Management Unit (RMU) HAL module is used. - -config SOC_GECKO_RTC - bool - help - Set if the Real Time Counter (RTC) HAL module is used. - -config SOC_GECKO_RTCC - bool - help - Set if the Real Time Counter and Calendar (RTCC) HAL module is used. - -config SOC_GECKO_SE - bool - help - Set if the Secure Element (SE) HAL module is used. - -config SOC_GECKO_TIMER - bool - help - Set if the Timer/Counter (TIMER) HAL module is used. - -config SOC_GECKO_USART - bool - help - Set if the Universal Synchronous Asynchronous Receiver/Transmitter (USART) - HAL module is used. - -config SOC_GECKO_EUSART - bool - help - Set if the Extended Universal Synchronous Asynchronous Receiver/Transmitter (EUSART) - HAL module is used. - -config SOC_GECKO_WDOG - bool - help - Set if the Watchdog Timer (WDOG) HAL module is used. - -config SOC_GECKO_TRNG - bool - help - Set if the SoC has a True Random Number Generator (TRNG) module. - -config SOC_SILABS_SLEEPTIMER - bool - select SOC_GECKO_PRS - select SOC_GECKO_RTCC if SOC_FAMILY_SILABS_S2 && $(dt_nodelabel_enabled,rtcc0) - help - Set if the Sleeptimer HAL module is used. - -config SOC_SILABS_HFXO_MANAGER +config SOC_GECKO_HAS_RADIO bool - default y if PM && $(dt_nodelabel_enabled,sysrtc0) && $(dt_nodelabel_enabled,hfxo) help - Set if the HFXO Manager HAL module is used. - -if PM + If enabled, indicates that the SoC has a Radio PHY. -config SOC_GECKO_PM_BACKEND_PMGR - bool - depends on SOC_GECKO_DEV_INIT - default y if SOC_FAMILY_SILABS_S2 +config SOC_GECKO_USE_RAIL + bool "Use RAIL (Radio Abstraction Interface Layer)" + depends on SOC_GECKO_HAS_RADIO help - Implement PM using sl_power_manager service from Gecko SDK + RAIL (Radio Abstraction Interface Layer) is a library needed to use the EFR radio + hardware. This option enable the proper set of features to allow to properly compile + with the RAIL blob. -config SOC_GECKO_PM_BACKEND_EMU - bool - default y if !SOC_GECKO_PM_BACKEND_PMGR +config SOC_GECKO_CUSTOM_RADIO_PHY + bool "Use RAIL for custom radio phy packet sending and receiving" + depends on SOC_GECKO_HAS_RADIO + select SOC_GECKO_USE_RAIL help - Implement PM using direct calls to EMU driver in emlib + If enabled, RAIL can be used for user generated custom radio phy + management, sending and receiving packets on radio phy. User has + to provide the radio_config.c and radio_config.h files for the phy. -config SOC_SILABS_PM_LOW_INTERRUPT_LATENCY - bool "Low interrupt latency mode" - default y if SOC_GECKO_PM_BACKEND_PMGR - help - Enabling low interrupt latency allows interrupts to be executed - before the high frequency clock is restored after sleep. +endif # SOC_FAMILY_SILABS_S1 || SOC_FAMILY_SILABS_S2 -endif # PM +if SOC_FAMILY_SILABS_S0 || SOC_FAMILY_SILABS_S1 config SOC_GECKO_EMU_DCDC bool "SoC DC/DC regulator" @@ -187,35 +57,6 @@ choice SOC_GECKO_EMU_DCDC_MODE bool "Bypass" endchoice -config CRYPTO_ACC_GECKO_TRNG - bool - help - Enable Entropy driver based on the CRYPTO_ACC module for Silicon Labs - Gecko chips. - -config SOC_GECKO_DEV_INIT - bool - help - Use the device initialization routines from the device_init service - in Silicon Labs HAL. These routines initialize and tune HFXOs, - configures DPLLs and manages the Energy Management Unit. - - Disabling these services may negatively impact counter and timer - routines in Silabs SoCs. - -config COUNTER_GECKO_STIMER - bool - help - Enable counter driver based on the Sleep Timer driver for Silicon Labs - Gecko chips. - -config SOC_GECKO_CMU - bool - help - Set if the clock management unit (CMU) is present in the SoC. - -if SOC_GECKO_CMU && (SOC_FAMILY_SILABS_S0 || SOC_FAMILY_SILABS_S1) - config CMU_NEED_LFXO bool help @@ -269,8 +110,6 @@ config CMU_HFRCO_FREQ the bootloader already configured it properly or the device's default clock source should be used with it's default configuration. -endif # SOC_GECKO_CMU - config SOC_GECKO_HAS_INDIVIDUAL_PIN_LOCATION bool help @@ -295,26 +134,4 @@ config SOC_GECKO_HAS_HFRCO_FREQRANGE If disabled, indicates that configuration of HFRCO frequency for corresponding SOC is not supported via this field. This is the case for e.g. efm32hg, efm32wg series. -config SOC_GECKO_HAS_RADIO - bool - help - If enabled, indicates that the SoC has a Radio PHY. - -config SOC_GECKO_USE_RAIL - bool "Use RAIL (Radio Abstraction Interface Layer)" - depends on SOC_GECKO_HAS_RADIO - help - RAIL (Radio Abstraction Interface Layer) is a library needed to use the EFR radio - hardware. This option enable the proper set of features to allow to properly compile - with the RAIL blob. - -config SOC_GECKO_CUSTOM_RADIO_PHY - bool "Use RAIL for custom radio phy packet sending and receiving" - depends on SOC_GECKO_HAS_RADIO - select SOC_GECKO_USE_RAIL - help - If enabled, RAIL can be used for user generated custom radio phy - management, sending and receiving packets on radio phy. User has - to provide the radio_config.c and radio_config.h files for the phy. - -endif # SOC_FAMILY_SILABS_S0 || SOC_FAMILY_SILABS_S1 || SOC_FAMILY_SILABS_S2 +endif # SOC_FAMILY_SILABS_S0 || SOC_FAMILY_SILABS_S1 diff --git a/soc/silabs/Kconfig.defconfig b/soc/silabs/Kconfig.defconfig index a2cf6b7b26dc4..8e08c1667331f 100644 --- a/soc/silabs/Kconfig.defconfig +++ b/soc/silabs/Kconfig.defconfig @@ -3,7 +3,7 @@ rsource "*/Kconfig.defconfig" -if SOC_FAMILY_SILABS_S0 || SOC_FAMILY_SILABS_S1 || SOC_FAMILY_SILABS_S2 +if SOC_FAMILY_SILABS_S0 || SOC_FAMILY_SILABS_S1 config SOC_GECKO_EMU default y @@ -13,22 +13,4 @@ config SOC_GECKO_EMU config CORTEX_M_SYSTICK default n if GECKO_BURTC_TIMER -# With sl_power_manager, pm_state_set()'s stack footrpting is noticeably -# large, especially with logs enabled. Since it is called from IDLE task, -# its stack size has to be increased -config IDLE_STACK_SIZE - default 512 if SOC_GECKO_PM_BACKEND_PMGR - -configdefault NUM_METAIRQ_PRIORITIES - default 1 if BT_SILABS_EFR32 - -if BT_LONG_WQ -configdefault BT_LONG_WQ_STACK_SIZE - # Hidden config item. We require a slightly larger stack than the - # default values are. As of this writing, we have a bit less than - # 200 bytes of headroom for future increases here, before we hit - # the limit again. - default 1600 if BT_ECC -endif - endif diff --git a/soc/silabs/common/CMakeLists.txt b/soc/silabs/common/CMakeLists.txt index e19ac55906181..3782f46ccf5d7 100644 --- a/soc/silabs/common/CMakeLists.txt +++ b/soc/silabs/common/CMakeLists.txt @@ -2,10 +2,12 @@ if(CONFIG_SOC_FAMILY_SILABS_S0 OR CONFIG_SOC_FAMILY_SILABS_S1) zephyr_sources(soc.c) + zephyr_sources_ifdef(CONFIG_PM soc_power.c) endif() -zephyr_sources_ifdef(CONFIG_SOC_GECKO_PM_BACKEND_EMU soc_power.c) -zephyr_sources_ifdef(CONFIG_SOC_GECKO_PM_BACKEND_PMGR soc_power_pmgr.c) +if(CONFIG_SOC_FAMILY_SILABS_S2) + zephyr_sources_ifdef(CONFIG_PM soc_power_pmgr.c) +endif() zephyr_include_directories(.) diff --git a/soc/silabs/silabs_s2/Kconfig b/soc/silabs/silabs_s2/Kconfig index c617183644a14..4f03a01b339ae 100644 --- a/soc/silabs/silabs_s2/Kconfig +++ b/soc/silabs/silabs_s2/Kconfig @@ -23,6 +23,21 @@ config SOC_SILABS_IMAGE_PROPERTIES verify the application. If Gecko bootloader is used, the Zephyr application image also needs the data structure. +config CRYPTO_ACC_GECKO_TRNG + bool + help + Enable Entropy driver based on the CRYPTO_ACC module for Silicon Labs + Gecko chips. + +if PM +config SOC_SILABS_PM_LOW_INTERRUPT_LATENCY + bool "Low interrupt latency mode" + default y + help + Enabling low interrupt latency allows interrupts to be executed + before the high frequency clock is restored after sleep. +endif + rsource "*/Kconfig" config ARM_SECURE_FIRMWARE diff --git a/soc/silabs/silabs_s2/Kconfig.defconfig b/soc/silabs/silabs_s2/Kconfig.defconfig index 339b1df67783c..32f6fbc214ce9 100644 --- a/soc/silabs/silabs_s2/Kconfig.defconfig +++ b/soc/silabs/silabs_s2/Kconfig.defconfig @@ -33,4 +33,28 @@ configdefault ZERO_LATENCY_IRQS configdefault ZERO_LATENCY_LEVELS default 2 +configdefault SILABS_SISDK_HFXO_MANAGER + default y if PM && $(dt_nodelabel_enabled,sysrtc0) && $(dt_nodelabel_enabled,hfxo) + +configdefault SILABS_SISDK_POWER_MANAGER + default y if PM + +# With sl_power_manager, pm_state_set()'s stack footprint is noticeably +# large, especially with logs enabled. Since it is called from IDLE task, +# its stack size has to be increased +configdefault IDLE_STACK_SIZE + default 512 if PM + +configdefault NUM_METAIRQ_PRIORITIES + default 1 if BT_SILABS_EFR32 + +if BT_LONG_WQ +configdefault BT_LONG_WQ_STACK_SIZE + # Hidden config item. We require a slightly larger stack than the + # default values are. As of this writing, we have a bit less than + # 200 bytes of headroom for future increases here, before we hit + # the limit again. + default 1600 if BT_ECC +endif + endif diff --git a/soc/silabs/silabs_s2/soc.c b/soc/silabs/silabs_s2/soc.c index 95d6c78c58282..f9af455d8452b 100644 --- a/soc/silabs/silabs_s2/soc.c +++ b/soc/silabs/silabs_s2/soc.c @@ -34,7 +34,7 @@ LOG_MODULE_REGISTER(soc, CONFIG_SOC_LOG_LEVEL); -#if defined(CONFIG_SOC_SILABS_HFXO_MANAGER) +#if defined(CONFIG_SILABS_SISDK_HFXO_MANAGER) Z_ISR_DECLARE_DIRECT(DT_IRQ(DT_NODELABEL(hfxo), irq), 0, sl_hfxo_manager_irq_handler); #endif @@ -48,7 +48,7 @@ void soc_early_init_hook(void) } sl_clock_manager_init(); - if (IS_ENABLED(CONFIG_SOC_SILABS_HFXO_MANAGER)) { + if (IS_ENABLED(CONFIG_SILABS_SISDK_HFXO_MANAGER)) { sl_hfxo_manager_init_hardware(); sl_hfxo_manager_init(); } diff --git a/soc/silabs/silabs_s2/xg21/Kconfig b/soc/silabs/silabs_s2/xg21/Kconfig index eb393c3c7d1b9..23ceb71eb2ea3 100644 --- a/soc/silabs/silabs_s2/xg21/Kconfig +++ b/soc/silabs/silabs_s2/xg21/Kconfig @@ -3,20 +3,19 @@ config SOC_SILABS_XG21 select ARM - select CPU_CORTEX_M33 - select CPU_CORTEX_M_HAS_DWT - select ARMV8_M_DSP select ARM_TRUSTZONE_M - select CPU_HAS_FPU + select ARMV8_M_DSP + select CPU_CORTEX_M_HAS_DWT + select CPU_CORTEX_M33 select CPU_HAS_ARM_MPU select CPU_HAS_ARM_SAU - select HAS_SWO - select SOC_GECKO_CMU - select SOC_GECKO_EMU - select SOC_GECKO_GPIO - select SOC_GECKO_DEV_INIT - select SOC_GECKO_SE + select CPU_HAS_FPU select HAS_PM + select HAS_SWO + select SILABS_SISDK_CLOCK_MANAGER + select SILABS_SISDK_CORE + select SILABS_SISDK_DEVICE_INIT + select SILABS_SISDK_GPIO config SOC_SERIES_EFR32MG21 select SOC_GECKO_HAS_RADIO diff --git a/soc/silabs/silabs_s2/xg22/Kconfig b/soc/silabs/silabs_s2/xg22/Kconfig index 3d8fc9d6a3ba6..9de819b5fac28 100644 --- a/soc/silabs/silabs_s2/xg22/Kconfig +++ b/soc/silabs/silabs_s2/xg22/Kconfig @@ -3,20 +3,18 @@ config SOC_SILABS_XG22 select ARM - select ARMV8_M_DSP select ARM_TRUSTZONE_M + select ARMV8_M_DSP select CPU_CORTEX_M33 select CPU_HAS_ARM_MPU select CPU_HAS_ARM_SAU select CPU_HAS_FPU - select HAS_SWO - select SOC_GECKO_GPIO - select SOC_GECKO_CMU - select SOC_GECKO_EMU - select SOC_GECKO_CORE - select SOC_GECKO_DEV_INIT - select SOC_GECKO_SE select HAS_PM + select HAS_SWO + select SILABS_SISDK_CLOCK_MANAGER + select SILABS_SISDK_CORE + select SILABS_SISDK_DEVICE_INIT + select SILABS_SISDK_GPIO config SOC_SERIES_EFR32BG22 select SOC_GECKO_HAS_RADIO diff --git a/soc/silabs/silabs_s2/xg23/Kconfig b/soc/silabs/silabs_s2/xg23/Kconfig index d52bff007194c..45181d163dd24 100644 --- a/soc/silabs/silabs_s2/xg23/Kconfig +++ b/soc/silabs/silabs_s2/xg23/Kconfig @@ -3,21 +3,19 @@ config SOC_SILABS_XG23 select ARM - select ARMV8_M_DSP select ARM_TRUSTZONE_M - select CPU_CORTEX_M33 + select ARMV8_M_DSP select CPU_CORTEX_M_HAS_DWT + select CPU_CORTEX_M33 select CPU_HAS_ARM_MPU select CPU_HAS_ARM_SAU select CPU_HAS_FPU select HAS_PM select HAS_SWO - select SOC_GECKO_CMU - select SOC_GECKO_CORE - select SOC_GECKO_DEV_INIT - select SOC_GECKO_EMU - select SOC_GECKO_GPIO - select SOC_GECKO_SE + select SILABS_SISDK_CLOCK_MANAGER + select SILABS_SISDK_CORE + select SILABS_SISDK_DEVICE_INIT + select SILABS_SISDK_GPIO config SOC_SERIES_EFR32ZG23 select SOC_GECKO_HAS_RADIO diff --git a/soc/silabs/silabs_s2/xg24/Kconfig b/soc/silabs/silabs_s2/xg24/Kconfig index e42474c1d4857..952afdbb91df6 100644 --- a/soc/silabs/silabs_s2/xg24/Kconfig +++ b/soc/silabs/silabs_s2/xg24/Kconfig @@ -5,20 +5,19 @@ config SOC_SILABS_XG24 select ARM + select ARM_TRUSTZONE_M + select ARMV8_M_DSP + select CPU_CORTEX_M_HAS_DWT select CPU_CORTEX_M33 - select CPU_HAS_FPU select CPU_HAS_ARM_MPU select CPU_HAS_ARM_SAU - select CPU_CORTEX_M_HAS_DWT - select ARMV8_M_DSP - select ARM_TRUSTZONE_M - select HAS_SWO - select SOC_GECKO_CMU - select SOC_GECKO_EMU - select SOC_GECKO_GPIO - select SOC_GECKO_DEV_INIT - select SOC_GECKO_SE + select CPU_HAS_FPU select HAS_PM + select HAS_SWO + select SILABS_SISDK_CLOCK_MANAGER + select SILABS_SISDK_CORE + select SILABS_SISDK_DEVICE_INIT + select SILABS_SISDK_GPIO config SOC_SERIES_EFR32MG24 select SOC_GECKO_HAS_RADIO diff --git a/soc/silabs/silabs_s2/xg27/Kconfig b/soc/silabs/silabs_s2/xg27/Kconfig index 0e277ab26d40d..e9c30461807e4 100644 --- a/soc/silabs/silabs_s2/xg27/Kconfig +++ b/soc/silabs/silabs_s2/xg27/Kconfig @@ -3,20 +3,18 @@ config SOC_SILABS_XG27 select ARM - select ARMV8_M_DSP select ARM_TRUSTZONE_M + select ARMV8_M_DSP select CPU_CORTEX_M33 select CPU_HAS_ARM_MPU select CPU_HAS_ARM_SAU select CPU_HAS_FPU - select HAS_SWO - select SOC_GECKO_CMU - select SOC_GECKO_GPIO - select SOC_GECKO_CORE - select SOC_GECKO_DEV_INIT - select SOC_GECKO_EMU - select SOC_GECKO_SE select HAS_PM + select HAS_SWO + select SILABS_SISDK_CLOCK_MANAGER + select SILABS_SISDK_CORE + select SILABS_SISDK_DEVICE_INIT + select SILABS_SISDK_GPIO config SOC_SERIES_EFR32BG27 select SOC_GECKO_HAS_RADIO diff --git a/soc/silabs/silabs_s2/xg28/Kconfig b/soc/silabs/silabs_s2/xg28/Kconfig index 397a62e8ccc93..214ea020ed6d9 100644 --- a/soc/silabs/silabs_s2/xg28/Kconfig +++ b/soc/silabs/silabs_s2/xg28/Kconfig @@ -3,21 +3,19 @@ config SOC_SILABS_XG28 select ARM - select ARMV8_M_DSP select ARM_TRUSTZONE_M - select CPU_CORTEX_M33 + select ARMV8_M_DSP select CPU_CORTEX_M_HAS_DWT + select CPU_CORTEX_M33 select CPU_HAS_ARM_MPU select CPU_HAS_ARM_SAU select CPU_HAS_FPU select HAS_PM select HAS_SWO - select SOC_GECKO_CMU - select SOC_GECKO_CORE - select SOC_GECKO_DEV_INIT - select SOC_GECKO_EMU - select SOC_GECKO_GPIO - select SOC_GECKO_SE + select SILABS_SISDK_CLOCK_MANAGER + select SILABS_SISDK_CORE + select SILABS_SISDK_DEVICE_INIT + select SILABS_SISDK_GPIO config SOC_SERIES_EFR32ZG28 select SOC_GECKO_HAS_RADIO diff --git a/soc/silabs/silabs_s2/xg29/Kconfig b/soc/silabs/silabs_s2/xg29/Kconfig index 58fe9f42a7de3..c462750cb3b90 100644 --- a/soc/silabs/silabs_s2/xg29/Kconfig +++ b/soc/silabs/silabs_s2/xg29/Kconfig @@ -3,20 +3,19 @@ config SOC_SILABS_XG29 select ARM + select ARM_TRUSTZONE_M + select ARMV8_M_DSP + select CPU_CORTEX_M_HAS_DWT select CPU_CORTEX_M33 - select CPU_HAS_FPU select CPU_HAS_ARM_MPU select CPU_HAS_ARM_SAU - select CPU_CORTEX_M_HAS_DWT - select ARMV8_M_DSP - select ARM_TRUSTZONE_M - select HAS_SWO - select SOC_GECKO_CMU - select SOC_GECKO_EMU - select SOC_GECKO_GPIO - select SOC_GECKO_DEV_INIT - select SOC_GECKO_SE + select CPU_HAS_FPU select HAS_PM + select HAS_SWO + select SILABS_SISDK_CLOCK_MANAGER + select SILABS_SISDK_CORE + select SILABS_SISDK_DEVICE_INIT + select SILABS_SISDK_GPIO config SOC_SERIES_EFR32BG29 select SOC_GECKO_HAS_RADIO diff --git a/soc/silabs/silabs_siwx91x/Kconfig b/soc/silabs/silabs_siwx91x/Kconfig index 7deef76782dc8..4c2d53557cfb6 100644 --- a/soc/silabs/silabs_siwx91x/Kconfig +++ b/soc/silabs/silabs_siwx91x/Kconfig @@ -15,11 +15,6 @@ if SOC_FAMILY_SILABS_SIWX91X rsource "*/Kconfig" -config SOC_SILABS_SLEEPTIMER - bool - help - The Sleeptimer HAL module is used for SIWX91X. - config SILABS_SIWX91X_NWP bool "Silabs Network Coprocessor" depends on DT_HAS_SILABS_SIWX91X_NWP_ENABLED