menu "Atmel Non-DT world"

config HAVE_AT91_DATAFLASH_CARD
	bool

choice
	prompt "Atmel AT91 Processor Devices for non DT boards"

config ARCH_AT91_NONE
	bool "None"

config ARCH_AT91RM9200
	bool "AT91RM9200"
	select SOC_AT91RM9200

config ARCH_AT91SAM9260
	bool "AT91SAM9260 or AT91SAM9XE or AT91SAM9G20"
	select SOC_AT91SAM9260

config ARCH_AT91SAM9261
	bool "AT91SAM9261 or AT91SAM9G10"
	select SOC_AT91SAM9261

config ARCH_AT91SAM9263
	bool "AT91SAM9263"
	select SOC_AT91SAM9263

config ARCH_AT91SAM9RL
	bool "AT91SAM9RL"
	select SOC_AT91SAM9RL

config ARCH_AT91SAM9G45
	bool "AT91SAM9G45"
	select SOC_AT91SAM9G45

config ARCH_AT91X40
	bool "AT91x40"
	depends on !MMU
	select ARCH_USES_GETTIMEOFFSET
	select MULTI_IRQ_HANDLER
	select SPARSE_IRQ

endchoice

config ARCH_AT91SAM9G20
	bool
	select ARCH_AT91SAM9260

config ARCH_AT91SAM9G10
	bool
	select ARCH_AT91SAM9261

# ----------------------------------------------------------

if ARCH_AT91RM9200

comment "AT91RM9200 Board Type"

config MACH_ONEARM
	bool "Ajeco 1ARM Single Board Computer"
	help
	  Select this if you are using Ajeco's 1ARM Single Board Computer.
	  <http://www.ajeco.fi/>

config MACH_AT91RM9200EK
	bool "Atmel AT91RM9200-EK Evaluation Kit"
	select HAVE_AT91_DATAFLASH_CARD
	help
	  Select this if you are using Atmel's AT91RM9200-EK Evaluation Kit.
	  <http://www.atmel.com/dyn/products/tools_card.asp?tool_id=3507>

config MACH_CSB337
	bool "Cogent CSB337"
	help
	  Select this if you are using Cogent's CSB337 board.
	  <http://www.cogcomp.com/csb_csb337.htm>

config MACH_CSB637
	bool "Cogent CSB637"
	help
	  Select this if you are using Cogent's CSB637 board.
	  <http://www.cogcomp.com/csb_csb637.htm>

config MACH_CARMEVA
	bool "Conitec ARM&EVA"
	help
	  Select this if you are using Conitec's AT91RM9200-MCU-Module.
	  <http://www.conitec.net/english/linuxboard.php>

config MACH_ATEB9200
	bool "Embest ATEB9200"
	help
	  Select this if you are using Embest's ATEB9200 board.
	  <http://www.embedinfo.com/english/product/ATEB9200.asp>

config MACH_KB9200
	bool "KwikByte KB920x"
	help
	  Select this if you are using KwikByte's KB920x board.
	  <http://www.kwikbyte.com/KB9202.html>

config MACH_PICOTUX2XX
	bool "picotux 200"
	help
	  Select this if you are using a picotux 200.
	  <http://www.picotux.com/>

config MACH_KAFA
	bool "Sperry-Sun KAFA board"
	help
	  Select this if you are using Sperry-Sun's KAFA board.

config MACH_ECBAT91
	bool "emQbit ECB_AT91 SBC"
	select HAVE_AT91_DATAFLASH_CARD
	help
	  Select this if you are using emQbit's ECB_AT91 board.
	  <http://wiki.emqbit.com/free-ecb-at91>

config MACH_YL9200
	bool "ucDragon YL-9200"
	help
	  Select this if you are using the ucDragon YL-9200 board.

config MACH_CPUAT91
	bool "Eukrea CPUAT91"
	help
	  Select this if you are using the Eukrea Electromatique's
	  CPUAT91 board <http://www.eukrea.com/>.

config MACH_ECO920
	bool "eco920"
	help
	  Select this if you are using the eco920 board

config MACH_RSI_EWS
	bool "RSI Embedded Webserver"
	depends on ARCH_AT91RM9200
	help
	  Select this if you are using RSIs EWS board.
endif

# ----------------------------------------------------------

if ARCH_AT91SAM9260

comment "AT91SAM9260 Variants"

comment "AT91SAM9260 / AT91SAM9XE Board Type"

config MACH_AT91SAM9260EK
	bool "Atmel AT91SAM9260-EK / AT91SAM9XE Evaluation Kit"
	select HAVE_AT91_DATAFLASH_CARD
	help
	  Select this if you are using Atmel's AT91SAM9260-EK or AT91SAM9XE Evaluation Kit
	  <http://www.atmel.com/dyn/products/tools_card.asp?tool_id=3933>

config MACH_CAM60
	bool "KwikByte KB9260 (CAM60) board"
	help
	  Select this if you are using KwikByte's KB9260 (CAM60) board based on the Atmel AT91SAM9260.
	  <http://www.kwikbyte.com/KB9260.html>

config MACH_SAM9_L9260
	bool "Olimex SAM9-L9260 board"
	select HAVE_AT91_DATAFLASH_CARD
	help
	  Select this if you are using Olimex's SAM9-L9260 board based on the Atmel AT91SAM9260.
	  <http://www.olimex.com/dev/sam9-L9260.html>

config MACH_AFEB9260
	bool "Custom afeb9260 board v1"
	help
	  Select this if you are using custom afeb9260 board based on
	  open hardware design. Select this for revision 1 of the board.
	  <svn://194.85.238.22/home/users/george/svn/arm9eb>
	  <http://groups.google.com/group/arm9fpga-evolution-board>

config MACH_QIL_A9260
	bool "CALAO QIL-A9260 board"
	help
	  Select this if you are using a Calao Systems QIL-A9260 Board.
	  <http://www.calao-systems.com>

config MACH_CPU9260
	bool "Eukrea CPU9260 board"
	help
	  Select this if you are using a Eukrea Electromatique's
	  CPU9260 Board <http://www.eukrea.com/>

config MACH_FLEXIBITY
	bool "Flexibity Connect board"
	help
	  Select this if you are using Flexibity Connect board
	  <http://www.flexibity.com>

comment "AT91SAM9G20 Board Type"

config MACH_AT91SAM9G20EK
	bool "Atmel AT91SAM9G20-EK Evaluation Kit"
	select HAVE_AT91_DATAFLASH_CARD
	help
	  Select this if you are using Atmel's AT91SAM9G20-EK Evaluation Kit
	  that embeds only one SD/MMC slot.

config MACH_AT91SAM9G20EK_2MMC
	depends on MACH_AT91SAM9G20EK
	bool "Atmel AT91SAM9G20-EK Evaluation Kit with 2 SD/MMC Slots"
	help
	  Select this if you are using an Atmel AT91SAM9G20-EK Evaluation Kit
	  with 2 SD/MMC Slots. This is the case for AT91SAM9G20-EK rev. C and
	  onwards.
	  <http://www.atmel.com/tools/SAM9G20-EK.aspx>

config MACH_CPU9G20
	bool "Eukrea CPU9G20 board"
	help
	  Select this if you are using a Eukrea Electromatique's
	  CPU9G20 Board <http://www.eukrea.com/>

config MACH_ACMENETUSFOXG20
	bool "Acme Systems srl FOX Board G20"
	help
	  Select this if you are using Acme Systems
	  FOX Board G20 <http://www.acmesystems.it>

config MACH_PORTUXG20
	bool "taskit PortuxG20"
	help
	  Select this if you are using taskit's PortuxG20.
	  <http://www.taskit.de/en/>

config MACH_STAMP9G20
	bool "taskit Stamp9G20 CPU module"
	help
	  Select this if you are using taskit's Stamp9G20 CPU module on its
	  evaluation board.
	  <http://www.taskit.de/en/>

config MACH_PCONTROL_G20
	bool "PControl G20 CPU module"
	help
	  Select this if you are using taskit's Stamp9G20 CPU module on this
	  carrier board, beeing the decentralized unit of a building automation
	  system; featuring nvram, eth-switch, iso-rs485, display, io

config MACH_GSIA18S
	bool "GS_IA18_S board"
	help
	  This enables support for the GS_IA18_S board
	  produced by GeoSIG Ltd company. This is an internet accelerograph.
	  <http://www.geosig.com>

config MACH_SNAPPER_9260
	bool "Bluewater Systems Snapper 9260/9G20 module"
	help
	  Select this if you are using the Bluewater Systems Snapper 9260 or
	  Snapper 9G20 modules.
	  <http://www.bluewatersys.com/>
endif

# ----------------------------------------------------------

if ARCH_AT91SAM9261

comment "AT91SAM9261 Board Type"

config MACH_AT91SAM9261EK
	bool "Atmel AT91SAM9261-EK Evaluation Kit"
	select HAVE_AT91_DATAFLASH_CARD
	help
	  Select this if you are using Atmel's AT91SAM9261-EK Evaluation Kit.
	  <http://www.atmel.com/dyn/products/tools_card.asp?tool_id=3820>

comment "AT91SAM9G10 Board Type"

config MACH_AT91SAM9G10EK
	bool "Atmel AT91SAM9G10-EK Evaluation Kit"
	select HAVE_AT91_DATAFLASH_CARD
	help
	  Select this if you are using Atmel's AT91SAM9G10-EK Evaluation Kit.
	  <http://www.atmel.com/dyn/products/tools_card.asp?tool_id=4588>

endif

# ----------------------------------------------------------

if ARCH_AT91SAM9263

comment "AT91SAM9263 Board Type"

config MACH_AT91SAM9263EK
	bool "Atmel AT91SAM9263-EK Evaluation Kit"
	select HAVE_AT91_DATAFLASH_CARD
	help
	  Select this if you are using Atmel's AT91SAM9263-EK Evaluation Kit.
	  <http://www.atmel.com/dyn/products/tools_card.asp?tool_id=4057>

endif

# ----------------------------------------------------------

if ARCH_AT91SAM9RL

comment "AT91SAM9RL Board Type"

config MACH_AT91SAM9RLEK
	bool "Atmel AT91SAM9RL-EK Evaluation Kit"
	help
	  Select this if you are using Atmel's AT91SAM9RL-EK Evaluation Kit.

endif

# ----------------------------------------------------------

if ARCH_AT91SAM9G45

comment "AT91SAM9G45 Board Type"

config MACH_AT91SAM9M10G45EK
	bool "Atmel AT91SAM9M10G45-EK Evaluation Kits"
	help
	  Select this if you are using Atmel's AT91SAM9M10G45-EK Evaluation Kit.
	  Those boards can be populated with any SoC of AT91SAM9G45 or AT91SAM9M10
	  families: AT91SAM9G45, AT91SAM9G46, AT91SAM9M10 and AT91SAM9M11.
	  <http://www.atmel.com/tools/SAM9M10-G45-EK.aspx>

endif

# ----------------------------------------------------------

if ARCH_AT91X40

comment "AT91X40 Board Type"

config MACH_AT91EB01
	bool "Atmel AT91EB01 Evaluation Kit"
	help
	  Select this if you are using Atmel's AT91EB01 Evaluation Kit.
	  It is also a popular target for simulators such as GDB's
	  ARM simulator (commonly known as the ARMulator) and the
	  Skyeye simulator.

endif

# ----------------------------------------------------------

comment "AT91 Board Options"

config MTD_AT91_DATAFLASH_CARD
	bool "Enable DataFlash Card support"
	depends on HAVE_AT91_DATAFLASH_CARD
	help
	  Enable support for the DataFlash card.

endmenu
