# SPDX-License-Identifier: Apache-2.0

if SOC_SERIES_BSIM_NRFXX

# The following file is normally parsed only for the ARM architecture, which is
# used by Nordic SoCs, so to make the symbols defined in this file available for
# the simulated nrf5x_bsim boards, which use the POSIX architecture, the file
# must be read also from here.
source "soc/arm/nordic_nrf/Kconfig.peripherals"

endif # SOC_SERIES_BSIM_NRFXX


# This would eventually be shared by a possible family of simulated NRF boards
# which use BabbleSim. When that happens, we can move this to a common
# Kconfig file

config SOC_SERIES_BSIM_NRFXX
	bool
	depends on SOC_POSIX
	help
	  Any NRF simulated SOC with BabbleSim, based on the POSIX arch

config SOC_SERIES_BSIM_NRF52X
	bool
	depends on SOC_SERIES_BSIM_NRFXX
	help
	  Any NRF52 simulated SOC with BabbleSim, based on the POSIX arch

config SOC_SERIES_BSIM_NRF53X
	bool
	depends on SOC_SERIES_BSIM_NRFXX
	help
	  Any NRF53 simulated SOC with BabbleSim, based on the POSIX arch

if BOARD_NRF5340BSIM_NRF5340_CPUAPP

# Replica of the option provided by the BOARD_NRF5340DK_NRF5340_CPUAPP board so samples can be
# reused as is
config BOARD_ENABLE_CPUNET
	bool "NRF53 Network MCU"

endif # BOARD_NRF5340BSIM_NRF5340_CPUNET

if SOC_SERIES_BSIM_NRF53X

# Let's reuse the RTC sync options so applications which use it can be reused as is
source "soc/arm/nordic_nrf/nrf53/Kconfig.sync_rtc"

endif # SOC_SERIES_BSIM_NRF53X
