# Copyright (c) 2019 ML!PA Consulting GmbH
# SPDX-License-Identifier: Apache-2.0

if SOC_SERIES_SAMD51 || SOC_SERIES_SAME51 || SOC_SERIES_SAME53 || SOC_SERIES_SAME54

config SOC_ATMEL_SAMD5X_XOSC32K
	bool "The external 32 kHz crystal oscillator"
	help
	  Say y to enable the external 32 kHZ crystal oscillator at
	  startup.  This can then be selected as the main clock source
	  for the SOC.

choice
	prompt "Main clock source"
	help
	  Selects the clock that the main clocks, such as the CPU
	  clock and AHB clock, will be derived from.

config SOC_ATMEL_SAMD5X_XOSC32K_AS_MAIN
	depends on SOC_ATMEL_SAMD5X_XOSC32K
	bool "XOSC32K"

config SOC_ATMEL_SAMD5X_OSCULP32K_AS_MAIN
	bool "OSCULP32K"

endchoice

endif
