# Atmel SAM E70 MCU series configuration options

# Copyright (c) 2016 Piotr Mienkowski
# SPDX-License-Identifier: Apache-2.0

if SOC_SERIES_SAME70

config SOC_SERIES
	default "same70"

config SOC_PART_NUMBER
	default "same70q21" if SOC_PART_NUMBER_SAME70Q21
	default "same70q20" if SOC_PART_NUMBER_SAME70Q20
	default "same70q19" if SOC_PART_NUMBER_SAME70Q19
	default "same70n21" if SOC_PART_NUMBER_SAME70N21
	default "same70n20" if SOC_PART_NUMBER_SAME70N20
	default "same70n19" if SOC_PART_NUMBER_SAME70N19
	default "same70j21" if SOC_PART_NUMBER_SAME70J21
	default "same70j20" if SOC_PART_NUMBER_SAME70J20
	default "same70j19" if SOC_PART_NUMBER_SAME70J19
	default "same70q21b" if SOC_PART_NUMBER_SAME70Q21B
	default "same70q20b" if SOC_PART_NUMBER_SAME70Q20B
	default "same70q19b" if SOC_PART_NUMBER_SAME70Q19B
	default "same70n21b" if SOC_PART_NUMBER_SAME70N21B
	default "same70n20b" if SOC_PART_NUMBER_SAME70N20B
	default "same70n19b" if SOC_PART_NUMBER_SAME70N19B
	default "same70j21b" if SOC_PART_NUMBER_SAME70J21B
	default "same70j20b" if SOC_PART_NUMBER_SAME70J20B
	default "same70j19b" if SOC_PART_NUMBER_SAME70J19B

#
# SAM E70 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_SAME70_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_SAME70
