# ST Microelectronics STM32WBA MCU line

# Copyright (c) 2023 STMicroelectronics
# SPDX-License-Identifier: Apache-2.0

if SOC_SERIES_STM32WBAX

source "soc/arm/st_stm32/stm32wba/Kconfig.defconfig.stm32wba*"

config SOC_SERIES
	default "stm32wba"

config STM32_LPTIM_TIMER
	default y if PM

choice BT_HCI_BUS_TYPE
	default BT_STM32WBA
	depends on BT
endchoice

config BT_STM32WBA
	select DYNAMIC_INTERRUPTS
	select DYNAMIC_DIRECT_INTERRUPTS
	select ENTROPY_GENERATOR
	select USE_STM32_HAL_RAMCFG

if BT_STM32WBA

choice LIBC_IMPLEMENTATION
	default NEWLIB_LIBC
endchoice

choice LINKER_ORPHAN_CONFIGURATION
	default LINKER_ORPHAN_SECTION_PLACE
endchoice

config ENTROPY_STM32_CLK_CHECK
	default n

endif

if PM_S2RAM

config COUNTER
	default y

config COUNTER_RTC_STM32_SUBSECONDS
	default y

config STM32_LPTIM_STDBY_TIMER
	default y

config TICKLESS_KERNEL
	default y

config COUNTER_RTC_STM32_SAVE_VALUE_BETWEEN_RESETS
	default y

config IDLE_STACK_SIZE
	default 512

endif

endif # SOC_SERIES_STM32WBAX
