#
# For a description of the syntax of this configuration file,
# see misc/tools/kconfig-language.txt.
#

comment "Atmel SAMD/L Configuration Options"

choice
	prompt "Atmel SAMD/L Chip Selection"
	default ARCH_CHIP_SAMD20J18 if ARCH_CHIP_SAMD
	default ARCH_CHIP_SAMD21J18 if ARCH_CHIP_SAML
	depends on ARCH_CHIP_SAMD || ARCH_CHIP_SAML

config ARCH_CHIP_SAMD20E14
	bool "SAMD20E14"
	depends on ARCH_CHIP_SAMD
	select ARCH_FAMILY_SAMD20
	select ARCH_FAMILY_SAMD20E
	---help---
		Flash 16KB SRAM 2KB

config ARCH_CHIP_SAMD20E15
	bool "SAMD20E15"
	depends on ARCH_CHIP_SAMD
	select ARCH_FAMILY_SAMD20
	select ARCH_FAMILY_SAMD20E
	---help---
		Flash 32KB SRAM 4KB

config ARCH_CHIP_SAMD20E16
	bool "SAMD20E16"
	depends on ARCH_CHIP_SAMD
	select ARCH_FAMILY_SAMD20
	select ARCH_FAMILY_SAMD20E
	---help---
		Flash 64KB SRAM 8KB

config ARCH_CHIP_SAMD20E17
	bool "SAMD20E17"
	depends on ARCH_CHIP_SAMD
	select ARCH_FAMILY_SAMD20
	select ARCH_FAMILY_SAMD20E
	---help---
		Flash 128KB SRAM 16KB

config ARCH_CHIP_SAMD20E18
	bool "SAMD20E18"
	depends on ARCH_CHIP_SAMD
	select ARCH_FAMILY_SAMD20
	select ARCH_FAMILY_SAMD20E
	---help---
		Flash 256KB SRAM 32KB

config ARCH_CHIP_SAMD20G14
	bool "SAMD20G14"
	depends on ARCH_CHIP_SAMD
	select ARCH_FAMILY_SAMD20
	select ARCH_FAMILY_SAMD20G
	---help---
		Flash 16KB SRAM 2KB

config ARCH_CHIP_SAMD20G15
	bool "SAMD20G15"
	depends on ARCH_CHIP_SAMD
	select ARCH_FAMILY_SAMD20
	select ARCH_FAMILY_SAMD20G
	---help---
		Flash 32KB SRAM 4KB

config ARCH_CHIP_SAMD20G16
	bool "SAMD20G16"
	depends on ARCH_CHIP_SAMD
	select ARCH_FAMILY_SAMD20
	select ARCH_FAMILY_SAMD20G
	---help---
		Flash 64KB SRAM 8KB

config ARCH_CHIP_SAMD20G17
	bool "SAMD20G17"
	depends on ARCH_CHIP_SAMD
	select ARCH_FAMILY_SAMD20
	select ARCH_FAMILY_SAMD20G
	---help---
		Flash 128KB SRAM 16KB

config ARCH_CHIP_SAMD20G18
	bool "SAMD20G18"
	depends on ARCH_CHIP_SAMD
	select ARCH_FAMILY_SAMD20
	select ARCH_FAMILY_SAMD20G
	---help---
		Flash 256KB SRAM 32KB

config ARCH_CHIP_SAMD20J14
	bool "SAMD20J14"
	depends on ARCH_CHIP_SAMD
	select ARCH_FAMILY_SAMD20
	select ARCH_FAMILY_SAMD20J
	---help---
		Flash 16KB SRAM 2KB

config ARCH_CHIP_SAMD20J15
	bool "SAMD20J15"
	depends on ARCH_CHIP_SAMD
	select ARCH_FAMILY_SAMD20
	select ARCH_FAMILY_SAMD20J
	---help---
		Flash 32KB SRAM 4KB

config ARCH_CHIP_SAMD20J16
	bool "SAMD20J16"
	depends on ARCH_CHIP_SAMD
	select ARCH_FAMILY_SAMD20
	select ARCH_FAMILY_SAMD20J
	---help---
		Flash 64KB SRAM 8KB

config ARCH_CHIP_SAMD20J17
	bool "SAMD20J17"
	depends on ARCH_CHIP_SAMD
	select ARCH_FAMILY_SAMD20
	select ARCH_FAMILY_SAMD20J
	---help---
		Flash 128KB SRAM 16KB

config ARCH_CHIP_SAMD20J18
	bool "SAMD20J18"
	depends on ARCH_CHIP_SAMD
	select ARCH_FAMILY_SAMD20
	select ARCH_FAMILY_SAMD20J
	---help---
		Flash 256KB SRAM 32KB

config ARCH_CHIP_SAML21E15
	bool "SAML21E15"
	depends on ARCH_CHIP_SAML
	select ARCH_FAMILY_SAML21
	select ARCH_FAMILY_SAML21E
	---help---
		Flash 32KB SRAM 4KB

config ARCH_CHIP_SAML21E16
	bool "SAML21E16"
	depends on ARCH_CHIP_SAML
	select ARCH_FAMILY_SAML21
	select ARCH_FAMILY_SAML21E
	---help---
		Flash 64KB SRAM 8KB

config ARCH_CHIP_SAML21E17
	bool "SAML21E17"
	depends on ARCH_CHIP_SAML
	select ARCH_FAMILY_SAML21
	select ARCH_FAMILY_SAML21E
	---help---
		Flash 128KB SRAM 16KB

config ARCH_CHIP_SAML21E18
	bool "SAML21E18"
	depends on ARCH_CHIP_SAML
	select ARCH_FAMILY_SAML21
	select ARCH_FAMILY_SAML21E
	---help---
		Flash 256KB SRAM 32KB

config ARCH_CHIP_SAML21G16
	bool "SAML21G16"
	depends on ARCH_CHIP_SAML
	select ARCH_FAMILY_SAML21
	select ARCH_FAMILY_SAML21G
	---help---
		Flash 64KB SRAM 4KB

config ARCH_CHIP_SAML21G17
	bool "SAML21G17"
	depends on ARCH_CHIP_SAML
	select ARCH_FAMILY_SAML21
	select ARCH_FAMILY_SAML21G
	---help---
		Flash 128KB SRAM 16KB

config ARCH_CHIP_SAML21G18
	bool "SAML21G18"
	depends on ARCH_CHIP_SAML
	select ARCH_FAMILY_SAML21
	select ARCH_FAMILY_SAML21G
	---help---
		Flash 256KB SRAM 32KB

config ARCH_CHIP_SAML21J16
	bool "SAML21J16"
	depends on ARCH_CHIP_SAML
	select ARCH_FAMILY_SAML21
	select ARCH_FAMILY_SAML21J
	---help---
		Flash 64KB SRAM 4KB

config ARCH_CHIP_SAML21J17
	bool "SAML21J17"
	depends on ARCH_CHIP_SAML
	select ARCH_FAMILY_SAML21
	select ARCH_FAMILY_SAML21J
	---help---
		Flash 128KB SRAM 16KB

config ARCH_CHIP_SAML21J18
	bool "SAML21J18"
	depends on ARCH_CHIP_SAML
	select ARCH_FAMILY_SAML21
	select ARCH_FAMILY_SAML21J
	---help---
		Flash 256KB SRAM 32KB

endchoice

config ARCH_FAMILY_SAMD20
	bool
	default n
	select SAMDL_HAVE_TC2
	select SAMDL_HAVE_TC3
	select SAMDL_HAVE_TC5

config ARCH_FAMILY_SAMD20E
	bool
	default n

config ARCH_FAMILY_SAMD20G
	bool
	default n
	select SAMDL_HAVE_SERCOM4
	select SAMDL_HAVE_SERCOM5

config ARCH_FAMILY_SAMD20J
	bool
	default n
	select SAMDL_HAVE_SERCOM4
	select SAMDL_HAVE_SERCOM5
	select SAMDL_HAVE_TC6
	select SAMDL_HAVE_TC7

config ARCH_FAMILY_SAML21
	bool
	default n

config ARCH_FAMILY_SAML21E
	bool
	default n

config ARCH_FAMILY_SAML21G
	bool
	default n
	select SAMDL_HAVE_SERCOM4
	select SAMDL_HAVE_SERCOM5

config ARCH_FAMILY_SAML21J
	bool
	default n
	select SAMDL_HAVE_SERCOM4
	select SAMDL_HAVE_SERCOM5
	select SAMDL_HAVE_TC2
	select SAMDL_HAVE_TC3
	select SAMDL_HAVE_TC5

config SAMDL_HAVE_SERCOM4
	bool
	default n

config SAMDL_HAVE_SERCOM5
	bool
	default n

config SAMDL_HAVE_TC5
	bool
	default n

config SAMDL_HAVE_TC2
	bool
	default n

config SAMDL_HAVE_TC3
	bool
	default n

config SAMDL_HAVE_TC6
	bool
	default n

config SAMDL_HAVE_TC7
	bool
	default n

menu "SAMD/L Peripheral Support"

config SAMDL_WDT
	bool "Watchdog Timer"
	default n

config SAMDL_RTC
	bool "Real Time Counter"
	default n

config SAMDL_NVMCTRL
	bool "Non-Volatile Memory Controller"
	default n

config SAMDL_EVSYS
	bool "Event System"
	default n

config SAMDL_SERCOM0
	bool "Serial Communication Interface 0"
	default n

config SAMDL_SERCOM1
	bool "Serial Communication Interface 1"
	default n

config SAMDL_SERCOM2
	bool "Serial Communication Interface 2"
	default n

config SAMDL_SERCOM3
	bool "Serial Communication Interface 3"
	default n

config SAMDL_SERCOM4
	bool "Serial Communication Interface 4"
	default n
	depends on SAMDL_HAVE_SERCOM4

config SAMDL_SERCOM5
	bool "Serial Communication Interface 5"
	default n
	depends on SAMDL_HAVE_SERCOM5

config SAMDL_TC0
	bool "Timer/Counter 0"
	default n

config SAMDL_TC1
	bool "Timer/Counter 1"
	default n

config SAMDL_TC2
	bool "Timer/Counter 2"
	default n
	depends on SAMDL_HAVE_TC2

config SAMDL_TC3
	bool "Timer/Counter 3"
	default n
	depends on SAMDL_HAVE_TC3

config SAMDL_TC4
	bool "Timer/Counter 4"
	default n

config SAMDL_TC5
	bool "Timer/Counter 5"
	default n
	depends on SAMDL_HAVE_TC5

config SAMDL_TC6
	bool "Timer/Counter 6"
	default n
	depends on SAMDL_HAVE_TC6

config SAMDL_TC7
	bool "Timer/Counter 7"
	default n
	depends on SAMDL_HAVE_TC7

config SAMDL_ADC
	bool "Analog-to-Digital Converter"
	default n

config SAMDL_AC
	bool "Analog Comparator"
	default n

config SAMDL_DAC
	bool "Digital-to-Analog Converter"
	default n

config SAMDL_PTC
	bool "Peripheral Touch Controller"
	default n

endmenu

choice
	prompt "SERCOM0 mode"
	default SAMDL_SERCOM0_ISUSART
	depends on SAMDL_SERCOM0

config SAMDL_SERCOM0_ISI2C
	bool "I2C"
	select I2C

config SAMDL_SERCOM0_ISSPI
	bool "SPI"
	select SAMDL_HAVE_SPI

config SAMDL_SERCOM0_ISUSART
	bool "USART"
	select ARCH_HAVE_USART0
	select USART0_ISUART

endchoice

choice
	prompt "SERCOM1 mode"
	default SAMDL_SERCOM1_ISUSART
	depends on SAMDL_SERCOM1

config SAMDL_SERCOM1_ISI2C
	bool "I2C"
	select I2C

config SAMDL_SERCOM1_ISSPI
	bool "SPI"
	select SAMDL_HAVE_SPI

config SAMDL_SERCOM1_ISUSART
	bool "USART"
	select ARCH_HAVE_USART1
	select USART1_ISUART

endchoice

choice
	prompt "SERCOM2 mode"
	default SAMDL_SERCOM2_ISUSART
	depends on SAMDL_SERCOM2

config SAMDL_SERCOM2_ISI2C
	bool "I2C"
	select I2C

config SAMDL_SERCOM2_ISSPI
	bool "SPI"
	select SAMDL_HAVE_SPI

config SAMDL_SERCOM2_ISUSART
	bool "USART"
	select ARCH_HAVE_USART2
	select USART2_ISUART

endchoice

choice
	prompt "SERCOM3 mode"
	default SAMDL_SERCOM3_ISUSART
	depends on SAMDL_SERCOM3

config SAMDL_SERCOM3_ISI2C
	bool "I2C"
	select I2C

config SAMDL_SERCOM3_ISSPI
	bool "SPI"
	select SAMDL_HAVE_SPI

config SAMDL_SERCOM3_ISUSART
	bool "USART"
	select ARCH_HAVE_USART3
	select USART3_ISUART

endchoice

choice
	prompt "SERCOM4 mode"
	default SAMDL_SERCOM4_ISUSART
	depends on SAMDL_SERCOM4

config SAMDL_SERCOM4_ISI2C
	bool "I2C"
	select I2C

config SAMDL_SERCOM4_ISSPI
	bool "SPI"
	select SAMDL_HAVE_SPI

config SAMDL_SERCOM4_ISUSART
	bool "USART"
	select ARCH_HAVE_USART4
	select USART4_ISUART

endchoice

choice
	prompt "SERCOM5 mode"
	default SAMDL_SERCOM5_ISUSART
	depends on SAMDL_SERCOM5

config SAMDL_SERCOM5_ISI2C
	bool "I2C"
	select I2C

config SAMDL_SERCOM5_ISSPI
	bool "SPI"
	select SAMDL_HAVE_SPI

config SAMDL_SERCOM5_ISUSART
	bool "USART"
	select ARCH_HAVE_USART5
	select USART5_ISUART

endchoice

config SAMDL_HAVE_SPI
	bool
	select SPI

if SAMDL_HAVE_SPI

config SAMDL_SPI_REGDEBUG
	bool "SPI register-Level Debug"
	default n
	depends on DEBUG_SPI
	---help---
		Enable very low-level register access debug.  Depends on DEBUG_SPI.

endif # SAMDL_HAVE_SPI
