# Atmel SAM V71 MCU series configuration options

# Copyright (c) 2019 Gerson Fernando Budke
# Copyright (c) 2016 Piotr Mienkowski
# SPDX-License-Identifier: Apache-2.0

if SOC_SERIES_SAMV71

config SOC_SERIES
	default "samv71"

config SOC_PART_NUMBER
	default "samv71q21" if SOC_PART_NUMBER_SAMV71Q21
	default "samv71q20" if SOC_PART_NUMBER_SAMV71Q20
	default "samv71q19" if SOC_PART_NUMBER_SAMV71Q19
	default "samv71n21" if SOC_PART_NUMBER_SAMV71N21
	default "samv71n20" if SOC_PART_NUMBER_SAMV71N20
	default "samv71n19" if SOC_PART_NUMBER_SAMV71N19
	default "samv71j21" if SOC_PART_NUMBER_SAMV71J21
	default "samv71j20" if SOC_PART_NUMBER_SAMV71J20
	default "samv71j19" if SOC_PART_NUMBER_SAMV71J19
	default "samv71q21b" if SOC_PART_NUMBER_SAMV71Q21B
	default "samv71q20b" if SOC_PART_NUMBER_SAMV71Q20B
	default "samv71q19b" if SOC_PART_NUMBER_SAMV71Q19B
	default "samv71n21b" if SOC_PART_NUMBER_SAMV71N21B
	default "samv71n20b" if SOC_PART_NUMBER_SAMV71N20B
	default "samv71n19b" if SOC_PART_NUMBER_SAMV71N19B
	default "samv71j21b" if SOC_PART_NUMBER_SAMV71J21B
	default "samv71j20b" if SOC_PART_NUMBER_SAMV71J20B
	default "samv71j19b" if SOC_PART_NUMBER_SAMV71J19B

#
# SAM V71 family has in total 71 peripherals capable of generating interrupts
# for the revision A and 74 for the revision B (not all Peripheral Identifiers
# are used).
#
config NUM_IRQS
	default 74 if SOC_ATMEL_SAMV71_REVB
	default 71

config SYS_CLOCK_HW_CYCLES_PER_SEC
	default 300000000

# Configure default device drivers. If a feature is supported by more than one
# device driver the default configuration will be placed in the board defconfig
# file.

config DMA_SAM_XDMAC
	default y
	depends on DMA

config GPIO_SAM
	default y
	depends on GPIO

config ADC_SAM_AFEC
	default y
	depends on ADC

config I2C_SAM_TWIHS
	default y
	depends on I2C

config I2S_SAM_SSC
	default y
	depends on I2S

config SPI_SAM
	default y
	depends on SPI

config USB_DC_SAM
	default y
	depends on USB

config ENTROPY_SAM_RNG
	default y
	depends on ENTROPY_GENERATOR

config SOC_FLASH_SAM
	default y
	depends on FLASH

config PWM_SAM
	default y
	depends on PWM

endif # SOC_SERIES_SAMV71
