if ARCH_PXA

menu "Intel PXA2xx Implementations"

choice
	prompt "Select target board"

config ARCH_LUBBOCK
	bool "Intel DBPXA250 Development Platform"
	select PXA25x
	select SA1111

config MACH_MAINSTONE
	bool "Intel HCDDBBVA0 Development Platform"
	select PXA27x
	select IWMMXT

config ARCH_PXA_IDP
	bool "Accelent Xscale IDP"
	select PXA25x

config PXA_SHARPSL
	bool "SHARP Zaurus SL-5600, SL-C7xx and SL-Cxx00 Models"
	select SHARP_SCOOP
	select SHARP_PARAM
	help
	  Say Y here if you intend to run this kernel on a
	  Sharp Zaurus SL-5600 (Poodle), SL-C700 (Corgi),
	  SL-C750 (Shepherd), SL-C760 (Husky), SL-C1000 (Akita),
	  SL-C3000 (Spitz), SL-C3100 (Borzoi) or SL-C6000x (Tosa)
	  handheld computer.

endchoice

if PXA_SHARPSL

choice
	prompt "Select target Sharp Zaurus device range"

config PXA_SHARPSL_25x
	bool "Sharp PXA25x models (SL-5600, SL-C7xx and SL-C6000x)"
	select PXA25x

config PXA_SHARPSL_27x
	bool "Sharp PXA270 models (SL-Cxx00)"
	select PXA27x

endchoice

endif

endmenu

config MACH_POODLE
	bool "Enable Sharp SL-5600 (Poodle) Support"
	depends PXA_SHARPSL_25x
	select SHARP_LOCOMO

config MACH_CORGI
	bool "Enable Sharp SL-C700 (Corgi) Support"
	depends PXA_SHARPSL_25x
	select PXA_SHARP_C7xx

config MACH_SHEPHERD
	bool "Enable Sharp SL-C750 (Shepherd) Support"
	depends PXA_SHARPSL_25x
	select PXA_SHARP_C7xx

config MACH_HUSKY
	bool "Enable Sharp SL-C760 (Husky) Support"
	depends PXA_SHARPSL_25x
	select PXA_SHARP_C7xx

config MACH_SPITZ
	bool "Enable Sharp Zaurus SL-3000 (Spitz) Support"
	depends PXA_SHARPSL_27x
	select PXA_SHARP_Cxx00

config MACH_BORZOI
	bool "Enable Sharp Zaurus SL-3100 (Borzoi) Support"
	depends PXA_SHARPSL_27x
	select PXA_SHARP_Cxx00

config MACH_TOSA
	bool "Enable Sharp SL-6000x (Tosa) Support"
	depends PXA_SHARPSL

config PXA25x
	bool
	help
	  Select code specific to PXA21x/25x/26x variants

config PXA27x
	bool
	help
	  Select code specific to PXA27x variants

config IWMMXT
	bool
	help
	  Enable support for iWMMXt

config PXA_SHARP_C7xx
	bool
	help
	  Enable support for all Sharp C7xx models

config PXA_SHARP_Cxx00
	bool
	help
	  Enable common support for Sharp Cxx00 models

endif
