# ST Microelectronics STM32WBA MCU line

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

if SOC_SERIES_STM32WBAX

rsource "Kconfig.defconfig.stm32wba*"

config STM32_LPTIM_TIMER
	default y if PM

config STM32_FLASH_PREFETCH
	default y

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
