if ARCH_PXA

menu "Intel PXA2xx/PXA3xx Implementations"

comment "Intel/Marvell Dev Platforms (sorted by hardware release time)"

config ARCH_LUBBOCK
	bool "Intel DBPXA250 Development Platform (aka Lubbock)"
	select PXA25x
	select SA1111
	select PXA_HAVE_BOARD_IRQS

config MACH_MAINSTONE
	bool "Intel HCDDBBVA0 Development Platform (aka Mainstone)"
	select PXA27x
	select HAVE_PWM
	select PXA_HAVE_BOARD_IRQS

config MACH_ZYLONITE
	bool
	select PXA3xx
	select HAVE_PWM
	select PXA_HAVE_BOARD_IRQS

config MACH_ZYLONITE300
	bool "PXA3xx Development Platform (aka Zylonite) PXA300/310"
	select CPU_PXA300
	select CPU_PXA310
	select MACH_ZYLONITE

config MACH_ZYLONITE320
	bool "PXA3xx Development Platform (aka Zylonite) PXA320"
	select CPU_PXA320
	select MACH_ZYLONITE

config MACH_LITTLETON
	bool "PXA3xx Form Factor Platform (aka Littleton)"
	select PXA3xx
	select CPU_PXA300
	select CPU_PXA310

config MACH_TAVOREVB
	bool "PXA930 Evaluation Board (aka TavorEVB)"
	select PXA3xx
	select CPU_PXA930

config MACH_SAAR
	bool "PXA930 Handheld Platform (aka SAAR)"
	select PXA3xx
	select CPU_PXA930

comment "Third Party Dev Platforms (sorted by vendor name)"

config ARCH_PXA_IDP
	bool "Accelent Xscale IDP"
	select PXA25x

config ARCH_VIPER
	bool "Arcom/Eurotech VIPER SBC"
	select PXA25x
	select ISA
	select I2C_GPIO
	select HAVE_PWM
	select PXA_HAVE_BOARD_IRQS
	select PXA_HAVE_ISA_IRQS
	select ARCOM_PCMCIA

config MACH_ARCOM_ZEUS
	bool "Arcom/Eurotech ZEUS SBC"
	select PXA27x
	select ISA
	select PXA_HAVE_BOARD_IRQS
	select PXA_HAVE_ISA_IRQS
	select ARCOM_PCMCIA

config MACH_BALLOON3
	bool "Balloon 3 board"
	select PXA27x
	select IWMMXT
	select PXA_HAVE_BOARD_IRQS

config MACH_CSB726
	bool "Enable Cogent CSB726 System On a Module"
	select PXA27x
	select IWMMXT
	help
	  Say Y here if you intend to run this kernel on a Cogent
	  CSB726 System On Module.

config CSB726_CSB701
	bool "Enable support for CSB701 baseboard"
	depends on MACH_CSB726

config MACH_ARMCORE
	bool "CompuLab CM-X255/CM-X270 modules"
	select PXA27x
	select IWMMXT
	select PXA25x

config MACH_EM_X270
	bool "CompuLab EM-x270 platform"
	select PXA27x

config MACH_EXEDA
	bool "CompuLab eXeda platform"
	select PXA27x

config MACH_CM_X300
	bool "CompuLab CM-X300 modules"
	select PXA3xx
	select CPU_PXA300
	select CPU_PXA310
	select HAVE_PWM

config MACH_CAPC7117
	bool "Embedian CAPC-7117 evaluation kit based on the MXM-8x10 CoM"
	select CPU_PXA320
	select PXA3xx

config ARCH_GUMSTIX
	bool "Gumstix XScale 255 boards"
	select PXA25x
	help
	  Say Y here if you intend to run this kernel on
	  Basix, Connex, ws-200ax, ws-400ax systems

choice
	prompt "Gumstix Carrier/Expansion Board"
	depends on ARCH_GUMSTIX

config GUMSTIX_AM200EPD
	bool "Enable AM200EPD board support"

config GUMSTIX_AM300EPD
	bool "Enable AM300EPD board support"

endchoice

config MACH_INTELMOTE2
	bool "Intel Mote 2 Platform"
	select PXA27x
	select IWMMXT
	select PXA_HAVE_BOARD_IRQS

config MACH_STARGATE2
	bool "Intel Stargate 2 Platform"
	select PXA27x
	select IWMMXT
	select PXA_HAVE_BOARD_IRQS

config MACH_XCEP
	bool "Iskratel Electronics XCEP"
	select PXA25x
	select MTD
	select MTD_PARTITIONS
	select MTD_PHYSMAP
	select MTD_CFI_INTELEXT
	select MTD_CFI
	select MTD_CHAR
	select SMC91X
	help
	  PXA255 based Single Board Computer with SMC 91C111 ethernet chip and 64 MB of flash.
	  Tuned for usage in Libera instruments for particle accelerators.

config TRIZEPS_PXA
	bool "PXA based Keith und Koep Trizeps DIMM-Modules"

config MACH_TRIZEPS4
	bool "Keith und Koep Trizeps4 DIMM-Module"
	depends on TRIZEPS_PXA
	select TRIZEPS_PCMCIA
	select PXA27x

config MACH_TRIZEPS4WL
	bool "Keith und Koep Trizeps4-WL DIMM-Module"
	depends on TRIZEPS_PXA
	select TRIZEPS_PCMCIA
	select PXA27x

choice
	prompt "Select base board for Trizeps module"
	depends on TRIZEPS_PXA

config MACH_TRIZEPS_CONXS
	bool "ConXS Eval Board"

config MACH_TRIZEPS_UCONXS
	bool "uConXS Eval Board"

config MACH_TRIZEPS_ANY
	bool "another Board"

endchoice

config ARCOM_PCMCIA
	bool
	help
	  Generic option for Arcom Viper/Zeus PCMCIA

config TRIZEPS_PCMCIA
	bool
	help
	  Enable PCMCIA support for Trizeps modules

config MACH_LOGICPD_PXA270
	bool "LogicPD PXA270 Card Engine Development Platform"
	select PXA27x
	select HAVE_PWM
	select PXA_HAVE_BOARD_IRQS

config MACH_PCM027
	bool "Phytec phyCORE-PXA270 CPU module (PCM-027)"
	select PXA27x
	select IWMMXT
	select PXA_HAVE_BOARD_IRQS

config MACH_PCM990_BASEBOARD
	bool "PHYTEC PCM-990 development board"
	select HAVE_PWM
	depends on MACH_PCM027

choice
	prompt "display on pcm990"
	depends on MACH_PCM990_BASEBOARD

config PCM990_DISPLAY_SHARP
	bool "sharp lq084v1dg21 stn display"

config PCM990_DISPLAY_NEC
	bool "nec nl6448bc20_18d tft display"

config PCM990_DISPLAY_NONE
	bool "no display"

endchoice

config MACH_COLIBRI
	bool "Toradex Colibri PXA270"
	select PXA27x

config MACH_COLIBRI_PXA270_EVALBOARD
	bool "Toradex Colibri Evaluation Carrier Board support (PXA270)"
	depends on MACH_COLIBRI

config MACH_COLIBRI_PXA270_INCOME
	bool "Income s.r.o. PXA270 SBC"
	depends on MACH_COLIBRI
	select PXA27x
	select HAVE_PWM
	select PXA_HAVE_BOARD_IRQS

config MACH_COLIBRI300
	bool "Toradex Colibri PXA300/310"
	select PXA3xx
	select CPU_PXA300
	select CPU_PXA310

config MACH_COLIBRI320
	bool "Toradex Colibri PXA320"
	select PXA3xx
	select CPU_PXA320

config MACH_VPAC270
	bool "Voipac PXA270"
	select PXA27x
	select HAVE_PATA_PLATFORM
	help
	  PXA270 based Single Board Computer.

comment "End-user Products (sorted by vendor name)"

config MACH_H4700
	bool "HP iPAQ hx4700"
	select PXA27x
	select IWMMXT
	select HAVE_PWM
	select PXA_HAVE_BOARD_IRQS

config MACH_H5000
	bool "HP iPAQ h5000"
	select PXA25x

config MACH_HIMALAYA
	bool "HTC Himalaya Support"
	select CPU_PXA26x

config MACH_MAGICIAN
	bool "Enable HTC Magician Support"
	select PXA27x
	select IWMMXT
	select HAVE_PWM
	select PXA_HAVE_BOARD_IRQS

config MACH_MIOA701
	bool "Mitac Mio A701 Support"
	select PXA27x
	select IWMMXT
	select HAVE_PWM
	select GPIO_SYSFS
	help
	  Say Y here if you intend to run this kernel on a
	  MIO A701. Currently there is only basic support
	  for this PDA.

config PXA_EZX
	bool "Motorola EZX Platform"
	select PXA27x
	select IWMMXT
	select HAVE_PWM
	select PXA_HAVE_BOARD_IRQS

config MACH_EZX_A780
	bool "Motorola EZX A780"
	default y
	depends on PXA_EZX

config MACH_EZX_E680
	bool "Motorola EZX E680"
	default y
	depends on PXA_EZX

config MACH_EZX_A1200
	bool "Motorola EZX A1200"
	default y
	depends on PXA_EZX

config MACH_EZX_A910
	bool "Motorola EZX A910"
	default y
	depends on PXA_EZX

config MACH_EZX_E6
	bool "Motorola EZX E6"
	default y
	depends on PXA_EZX

config MACH_EZX_E2
	bool "Motorola EZX E2"
	default y
	depends on PXA_EZX

config MACH_MP900C
	bool "Nec Mobilepro 900/c"
	select PXA25x

config ARCH_PXA_PALM
	bool "PXA based Palm PDAs"
	select HAVE_PWM

config MACH_PALM27X
	bool

config MACH_PALMTE2
	bool "Palm Tungsten|E2"
	default y
	depends on ARCH_PXA_PALM
	select PXA25x
	help
	  Say Y here if you intend to run this kernel on a Palm Tungsten|E2
	  handheld computer.

config MACH_PALMTC
	bool "Palm Tungsten|C"
	default y
	depends on ARCH_PXA_PALM
	select PXA25x
	help
	  Say Y here if you intend to run this kernel on a Palm Tungsten|C
	  handheld computer.

config MACH_PALMT5
	bool "Palm Tungsten|T5"
	default y
	depends on ARCH_PXA_PALM
	select PXA27x
	select IWMMXT
	select MACH_PALM27X
	help
	  Say Y here if you intend to run this kernel on a Palm Tungsten|T5
	  handheld computer.

config MACH_PALMTX
	bool "Palm T|X"
	default y
	depends on ARCH_PXA_PALM
	select PXA27x
	select IWMMXT
	select MACH_PALM27X
	help
	  Say Y here if you intend to run this kernel on a Palm T|X
	  handheld computer.

config MACH_PALMZ72
	bool "Palm Zire 72"
	default y
	depends on ARCH_PXA_PALM
	select PXA27x
	select IWMMXT
	select MACH_PALM27X
	help
	  Say Y here if you intend to run this kernel on Palm Zire 72
	  handheld computer.

config MACH_PALMLD
	bool "Palm LifeDrive"
	default y
	depends on ARCH_PXA_PALM
	select PXA27x
	select IWMMXT
	select MACH_PALM27X
	help
	  Say Y here if you intend to run this kernel on a Palm LifeDrive
	  handheld computer.

config PALM_TREO
	bool
	depends on ARCH_PXA_PALM

config MACH_CENTRO
	bool "Palm Centro 685 (GSM)"
	default y
	depends on ARCH_PXA_PALM
	select PXA27x
	select IWMMXT
	select PALM_TREO
	help
	  Say Y here if you intend to run this kernel on Palm Centro 685 (GSM)
	  smartphone.

config MACH_TREO680
	bool "Palm Treo 680"
	default y
	depends on ARCH_PXA_PALM
	select PXA27x
	select IWMMXT
	select PALM_TREO
	help
	  Say Y here if you intend to run this kernel on Palm Treo 680
	  smartphone.

config MACH_RAUMFELD_RC
	bool "Raumfeld Controller"
	select PXA3xx
	select CPU_PXA300
	select HAVE_PWM

config MACH_RAUMFELD_CONNECTOR
	bool "Raumfeld Connector"
	select PXA3xx
	select CPU_PXA300

config MACH_RAUMFELD_SPEAKER
	bool "Raumfeld Speaker"
	select PXA3xx
	select CPU_PXA300

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.

config PXA_SHARPSL_DETECT_MACH_ID
	bool "Detect machine ID at run-time in the decompressor"
	depends on PXA_SHARPSL
	help
	  Say Y here if you want the zImage decompressor to detect
	  the Zaurus machine ID at run-time. For latest kexec-based
	  boot loader, this is not necessary.

config MACH_POODLE
	bool "Enable Sharp SL-5600 (Poodle) Support"
	depends on PXA_SHARPSL
	select PXA25x
	select SHARP_LOCOMO
	select PXA_HAVE_BOARD_IRQS

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

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

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

config MACH_AKITA
	bool "Enable Sharp SL-1000 (Akita) Support"
	depends on PXA_SHARPSL
	select PXA27x
	select PXA_SHARP_Cxx00
	select MACH_SPITZ
	select I2C
	select I2C_PXA

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

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

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

config TOSA_BT
	tristate "Control the state of built-in bluetooth chip on Sharp SL-6000"
	depends on MACH_TOSA
	select RFKILL
	help
	  This is a simple driver that is able to control
	  the state of built in bluetooth chip on tosa.

config TOSA_USE_EXT_KEYCODES
	bool "Tosa keyboard: use extended keycodes"
	depends on MACH_TOSA
	default n
	help
	  Say Y here to enable the tosa keyboard driver to generate extended
	  (>= 127) keycodes. Be aware, that they can't be correctly interpreted
	  by either console keyboard driver or by Kdrive keybd driver.

	  Say Y only if you know, what you are doing!

config MACH_ICONTROL
	bool "TMT iControl/SafeTCam based on the MXM-8x10 CoM"
	select CPU_PXA320
	select PXA3xx

config ARCH_PXA_ESERIES
	bool "PXA based Toshiba e-series PDAs"
	select PXA25x
	select PXA_HAVE_BOARD_IRQS

config MACH_E330
	bool "Toshiba e330"
	default y
	depends on ARCH_PXA_ESERIES
	help
	  Say Y here if you intend to run this kernel on a Toshiba
	  e330 family PDA.

config MACH_E350
	bool "Toshiba e350"
	default y
	depends on ARCH_PXA_ESERIES
	help
	  Say Y here if you intend to run this kernel on a Toshiba
	  e350 family PDA.

config MACH_E740
	bool "Toshiba e740"
	default y
	depends on ARCH_PXA_ESERIES
	help
	  Say Y here if you intend to run this kernel on a Toshiba
	  e740 family PDA.

config MACH_E750
	bool "Toshiba e750"
	default y
	depends on ARCH_PXA_ESERIES
	help
	  Say Y here if you intend to run this kernel on a Toshiba
	  e750 family PDA.

config MACH_E400
	bool "Toshiba e400"
	default y
	depends on ARCH_PXA_ESERIES
	help
	  Say Y here if you intend to run this kernel on a Toshiba
	  e400 family PDA.

config MACH_E800
	bool "Toshiba e800"
	default y
	depends on ARCH_PXA_ESERIES
	help
	  Say Y here if you intend to run this kernel on a Toshiba
	  e800 family PDA.

config MACH_ZIPIT2
	bool "Zipit Z2 Handheld"
	select PXA27x
	select HAVE_PWM
	select PXA_HAVE_BOARD_IRQS

endmenu

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

config PXA27x
	bool
	select CPU_XSCALE
	help
	  Select code specific to PXA27x variants

config CPU_PXA26x
	bool
	select PXA25x
	help
	  Select code specific to PXA26x (codename Dalhart)

config PXA3xx
	bool
	select CPU_XSC3
	help
	  Select code specific to PXA3xx variants

config CPU_PXA300
	bool
	select PXA3xx
	help
	  PXA300 (codename Monahans-L)

config CPU_PXA310
	bool
	select CPU_PXA300
	help
	  PXA310 (codename Monahans-LV)

config CPU_PXA320
	bool
	select PXA3xx
	help
	  PXA320 (codename Monahans-P)

config CPU_PXA930
	bool
	select PXA3xx
	help
	  PXA930 (codename Tavor-P)

config CPU_PXA935
	bool
	select CPU_PXA930
	help
	  PXA935 (codename Tavor-P65)

config CPU_PXA950
	bool
	select CPU_PXA930
	help
	  PXA950 (codename Tavor-PV2)

config PXA_SHARP_C7xx
	bool
	select SHARPSL_PM
	help
	  Enable support for all Sharp C7xx models

config PXA_SHARP_Cxx00
	bool
	select SHARPSL_PM
	help
	  Enable common support for Sharp Cxx00 models

config SHARPSL_PM
	bool
	select APM_EMULATION
	select SHARPSL_PM_MAX1111

config SHARPSL_PM_MAX1111
	bool
	select HWMON
	select SENSORS_MAX1111

config PXA_HAVE_BOARD_IRQS
	bool

config PXA_HAVE_ISA_IRQS
	bool

endif
