if ARCH_AT91

config AT91FAMILY
	def_bool y

config AT91SAM9260
	bool
	select CPU_ARM926EJS

config AT91SAM9G20
	bool
	select CPU_ARM926EJS

config AT91SAM9XE
	bool
	select CPU_ARM926EJS

config AT91SAM9261
	bool
	select CPU_ARM926EJS

config AT91SAM9263
	bool
	select CPU_ARM926EJS

config AT91SAM9G45
	bool
	select CPU_ARM926EJS

config AT91SAM9M10G45
	bool
	select CPU_ARM926EJS

config AT91SAM9N12
	bool
	select CPU_ARM926EJS

config AT91SAM9RL
	bool
	select CPU_ARM926EJS

config AT91SAM9X5
	bool
	select CPU_ARM926EJS

config SAM9X60
	bool
	select CPU_ARM926EJS

config SAMA7G5
	bool
	select CPU_V7A

config SAMA5D2
	bool
	select CPU_V7A
	select ATMEL_SFR

config SAMA5D3
	bool
	select CPU_V7A

config SAMA5D4
	bool
	select CPU_V7A
	select ATMEL_SFR

choice
	prompt "Atmel AT91 board select"
	optional

config TARGET_AT91SAM9260EK
	bool "Atmel at91sam9260 reference board"
	select AT91SAM9260
	select BOARD_EARLY_INIT_F

config TARGET_ETHERNUT5
	bool "Ethernut5 board"
	select AT91SAM9XE

config TARGET_SNAPPER9260
	bool "Support snapper9260"
	select AT91SAM9260
	select DM
	select DM_GPIO
	select DM_SERIAL
	imply CMD_DM

config TARGET_GURNARD
	bool "Support gurnard"
	select AT91SAM9G45
	select BOARD_LATE_INIT
	select DM
	select DM_ETH
	select DM_GPIO
	select DM_SERIAL
	select DM_SPI
	select SPI
	imply CMD_DM

config TARGET_AT91SAM9261EK
	bool "Atmel at91sam9261 reference board"
	select AT91SAM9261
	select BOARD_EARLY_INIT_F

config TARGET_PM9261
	bool "Ronetix pm9261 board"
	select AT91SAM9261

config TARGET_AT91SAM9263EK
	bool "Atmel at91sam9263 reference board"
	select AT91SAM9263
	select BOARD_EARLY_INIT_F

config TARGET_USB_A9263
	bool "Caloa USB A9260 board"
	select AT91SAM9263

config TARGET_PM9263
	bool "Ronetix pm9263 board"
	select AT91SAM9263

config TARGET_AT91SAM9M10G45EK
	bool "Atmel AT91SAM9M10G45-EK board"
	select AT91SAM9M10G45
	select BOARD_EARLY_INIT_F
	select SUPPORT_SPL

config TARGET_PM9G45
	bool "Ronetix pm9g45 board"
	select AT91SAM9G45

config TARGET_AT91SAM9N12EK
	bool "Atmel AT91SAM9N12-EK board"
	select AT91SAM9N12
	select BOARD_EARLY_INIT_F
	select SUPPORT_SPL

config TARGET_AT91SAM9RLEK
	bool "Atmel at91sam9rl reference board"
	select AT91SAM9RL
	select BOARD_EARLY_INIT_F

config TARGET_AT91SAM9X5EK
	bool "Atmel AT91SAM9X5-EK board"
	select AT91SAM9X5
	select BOARD_EARLY_INIT_F
	select BOARD_LATE_INIT
	select SUPPORT_SPL

config TARGET_GARDENA_SMART_GATEWAY_AT91SAM
	bool "GARDENA smart Gateway (AT91SAM)"
	select AT91SAM9X5
	select BOARD_EARLY_INIT_F
	select BOARD_LATE_INIT
	select SUPPORT_SPL

config TARGET_SAM9X60EK
	bool "SAM9X60-EK board"
	select SAM9X60
	select BOARD_EARLY_INIT_F
	select BOARD_LATE_INIT

config TARGET_SAMA5D2_PTC_EK
	bool "SAMA5D2 PTC EK board"
	select BOARD_EARLY_INIT_F
	select SAMA5D2
	select BOARD_LATE_INIT

config TARGET_SAMA5D2_XPLAINED
	bool "SAMA5D2 Xplained board"
	select BOARD_EARLY_INIT_F
	select BOARD_LATE_INIT
	select SAMA5D2
	select SUPPORT_SPL

config TARGET_SAMA5D27_SOM1_EK
	bool "SAMA5D27 SOM1 EK board"
	select BOARD_EARLY_INIT_F
	select BOARD_LATE_INIT
	select CPU_V7A
	select SUPPORT_SPL
	select ATMEL_SFR
	help
	  The SAMA5D27 SOM1 embeds SAMA5D2 SiP(System in Package),
	  a 64Mbit QSPI flash, KSZ8081 Phy and a Mac-address EEPROM
	  24AA02E48. The SAMA5D2 SiP integrates the ARM Cortex-A5
	  processor-based SAMA5D2 MPU with up to 1 Gbit DDR2-SDRAM
	  in a single package.

config TARGET_SAMA5D27_WLSOM1_EK
	bool "SAMA5D27 WLSOM1 EK board"
	select SAMA5D2
	select BOARD_EARLY_INIT_F
	select BOARD_LATE_INIT
	select CPU_V7A
	select SUPPORT_SPL
	help
	  The SAMA5D27 WLSOM1 embeds SAMA5D2 SiP (System in Package),
	  a 64Mbit QSPI flash with Mac-address, KSZ8081 Phy. A wireless
	  module providing bluetooth and wifi is also embedded.
	  The SAMA5D2 SiP integrates the ARM Cortex-A5
	  processor-based SAMA5D2 MPU with 2 Gbit LPDDR2-SDRAM
	  in a single package.

config TARGET_SAMA5D2_ICP
	bool "SAMA5D2 Industrial Connectivity Platform (ICP)"
	select SAMA5D2
	select SUPPORT_SPL
	select BOARD_EARLY_INIT_F
	select BOARD_LATE_INIT
	help
	  The SAMA5D2 ICP embeds SAMA5D27 rev. C SoC, together with
	  a 64Mbit QSPI flash, 3xMikrobus connectors, 4xUSB ,
	  EtherCat and WILC3000 devices on board.

config TARGET_SAMA5D3_XPLAINED
	bool "SAMA5D3 Xplained board"
	select BOARD_EARLY_INIT_F
	select SAMA5D3
	select SUPPORT_SPL
	select BOARD_LATE_INIT

config TARGET_SAMA5D3XEK
	bool "SAMA5D3X-EK board"
	select BOARD_EARLY_INIT_F
	select BOARD_LATE_INIT
	select SAMA5D3
	select SUPPORT_SPL

config TARGET_SAMA5D4_XPLAINED
	bool "SAMA5D4 Xplained board"
	select BOARD_EARLY_INIT_F
	select BOARD_LATE_INIT
	select SAMA5D4
	select SUPPORT_SPL

config TARGET_SAMA5D4EK
	bool "SAMA5D4 Evaluation Kit"
	select BOARD_EARLY_INIT_F
	select BOARD_LATE_INIT
	select SAMA5D4
	select SUPPORT_SPL

config TARGET_MEESC
	bool "Support meesc"
	select AT91SAM9263

config TARGET_CORVUS
	bool "Support corvus"
	select AT91SAM9M10G45
	select DM
	select DM_ETH
	select DM_GPIO
	select DM_SERIAL
	select SUPPORT_SPL
	imply CMD_DM

config TARGET_SAMA7G5EK
       bool "SAMA7G5 EK board"
       select SAMA7G5
       select BOARD_EARLY_INIT_F
       select BOARD_LATE_INIT


config TARGET_TAURUS
	bool "Support taurus"
	select AT91SAM9G20
	select DM
	select DM_ETH
	select DM_GPIO
	select DM_SERIAL
	select DM_SPI
	select SPI
	select SUPPORT_SPL
	imply CMD_DM

config TARGET_SMARTWEB
	bool "Support smartweb"
	select AT91SAM9260
	select DM
	select DM_ETH
	select DM_GPIO
	select DM_SERIAL
	select SUPPORT_SPL
	imply CMD_DM

config TARGET_VINCO
	bool "Support VINCO"
	select DM
	select DM_SPI
	select SAMA5D4
	select SPI
	select SUPPORT_SPL
	imply CMD_DM

endchoice

config ATMEL_SFR
	bool

config SYS_SOC
	default "at91"

config AT91_EFLASH
	bool "Support AT91 flash driver"
	depends on AT91SAM9XE
	select USE_SYS_MAX_FLASH_BANKS
	help
	  Enable the driver for the embedded flash used in the Atmel
	  AT91SAM9XE devices.

source "board/atmel/at91sam9260ek/Kconfig"
source "board/atmel/at91sam9261ek/Kconfig"
source "board/atmel/at91sam9263ek/Kconfig"
source "board/atmel/at91sam9m10g45ek/Kconfig"
source "board/atmel/at91sam9n12ek/Kconfig"
source "board/atmel/at91sam9rlek/Kconfig"
source "board/atmel/at91sam9x5ek/Kconfig"
source "board/atmel/sam9x60ek/Kconfig"
source "board/atmel/sama7g5ek/Kconfig"
source "board/atmel/sama5d2_ptc_ek/Kconfig"
source "board/atmel/sama5d2_xplained/Kconfig"
source "board/atmel/sama5d27_som1_ek/Kconfig"
source "board/atmel/sama5d27_wlsom1_ek/Kconfig"
source "board/atmel/sama5d2_icp/Kconfig"
source "board/atmel/sama5d3_xplained/Kconfig"
source "board/atmel/sama5d3xek/Kconfig"
source "board/atmel/sama5d4_xplained/Kconfig"
source "board/atmel/sama5d4ek/Kconfig"
source "board/bluewater/gurnard/Kconfig"
source "board/bluewater/snapper9260/Kconfig"
source "board/calao/usb_a9263/Kconfig"
source "board/egnite/ethernut5/Kconfig"
source "board/esd/meesc/Kconfig"
source "board/gardena/smart-gateway-at91sam/Kconfig"
source "board/l+g/vinco/Kconfig"
source "board/ronetix/pm9261/Kconfig"
source "board/ronetix/pm9263/Kconfig"
source "board/ronetix/pm9g45/Kconfig"
source "board/siemens/corvus/Kconfig"
source "board/siemens/taurus/Kconfig"
source "board/siemens/smartweb/Kconfig"

config SPL_LDSCRIPT
	default "arch/arm/mach-at91/arm926ejs/u-boot-spl.lds" if CPU_ARM926EJS
	default "arch/arm/mach-at91/armv7/u-boot-spl.lds" if CPU_V7A

endif
