# 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

endif # SOC_SERIES_SAMV71
