# 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

# 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 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 USB_DC_SAM_USBHS
	default y
	depends on USB_DEVICE_DRIVER

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
