# SPDX-License-Identifier: Apache-2.0

choice
	prompt "SoC/CPU/Configuration Selection"

source "$(KCONFIG_BINARY_DIR)/Kconfig.soc"

endchoice

menu "Hardware Configuration"
source "$(KCONFIG_BINARY_DIR)/Kconfig.soc.arch"


module = SOC
module-str = SOC
source "subsys/logging/Kconfig.template.log_config"

endmenu

# The helper symbols below are put here due to an unusual setup: The simulated
# nrf52_bsim board uses the POSIX arch, but is compatible with Nordic ARM
# boards

config SOC_COMPATIBLE_NRF
	bool

config SOC_COMPATIBLE_NRF52X
	bool

config SOC_COMPATIBLE_NRF52832
	bool

#
# SOC_*_LD: SoC specific Linker script additions
#

config SOC_DEPRECATED_RELEASE
	string
	help
	  This hidden option is set in the SoC configuration and indicates
	  the Zephyr release that the SoC configuration will be removed.
	  When set, any build for that SoC will generate a clearly visible
	  deprecation warning.

config SOC_HAS_TIMING_FUNCTIONS
	bool
	help
	  Should be selected if SoC provides custom method for retrieving
	  timestamps and cycle count.
