#
# Copyright (c) 2017 Christian Taedcke
#
# SPDX-License-Identifier: Apache-2.0
#

config SOC_FAMILY_EXX32
	bool
	# omit prompt to signify a "hidden" option

if SOC_FAMILY_EXX32
config SOC_FAMILY
	string
	default "silabs_exx32"

source "arch/arm/soc/silabs_exx32/*/Kconfig.soc"

config SOC_PART_NUMBER
	string
	default SOC_PART_NUMBER_EXX32_EFM32WG   if SOC_SERIES_EFM32WG
	default SOC_PART_NUMBER_EXX32_EFR32FG1P if SOC_SERIES_EFR32FG1P
	help
	  This string holds the full part number of the SoC. It is a hidden option
	  that you should not set directly. The part number selection choice defines
	  the default value for this string.

config HAS_CMU
	bool
	help
	  Set if the clock management unit (CMU) is present in the SoC.

if HAS_CMU

choice
	prompt "High Frequency Clock Selection"
	default CMU_HFCLK_HFXO

config CMU_HFCLK_HFXO
	bool "External high frequency crystal oscillator"
	help
	  Set this option to use the external high frequency crystal oscillator
	  as high frequency clock.

config CMU_HFCLK_LFXO
	bool "External low frequency crystal oscillator"
	help
	  Set this option to use the external low frequency crystal oscillator
	  as high frequency clock.

config CMU_HFCLK_HFRCO
	bool "Internal high frequency RC oscillator"
	help
	  Set this option to use the internal high frequency RC oscillator as high frequency clock.

endchoice

config CMU_HFXO_FREQ
	int "External high frequency oscillator frequency"
	help
	  Set the external high frequency oscillator frequency in Hz. This should be set by the
	  board's defconfig.

config CMU_LFXO_FREQ
	int "External low frequency oscillator frequency"
	help
	  Set the external low frequency oscillator frequency in Hz. This should be set by the
	  board's defconfig.

endif # HAS_CMU
endif # SOC_FAMILY_EXX32
