if ARCH_PXA

menu "Intel PXA2xx/PXA3xx Implementations"

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

config MACH_PXA25X_DT
	bool "Support PXA25x platforms from device tree"
	select PINCTRL
	select POWER_SUPPLY
	select PXA25x
	select USE_OF
	help
	  Include support for Marvell PXA25x based platforms using
	  the device tree. Needn't select any other machine while
	  MACH_PXA25x_DT is enabled.

config MACH_PXA27X_DT
	bool "Support PXA27x platforms from device tree"
	select PINCTRL
	select POWER_SUPPLY
	select PXA27x
	select USE_OF
	help
	  Include support for Marvell PXA27x based platforms using
	  the device tree. Needn't select any other machine while
	  MACH_PXA27X_DT is enabled.

config MACH_PXA3XX_DT
	bool "Support PXA3xx platforms from device tree"
	select CPU_PXA300
	select PINCTRL
	select POWER_SUPPLY
	select PXA3xx
	select USE_OF
	help
	  Include support for Marvell PXA3xx based platforms using
	  the device tree. Needn't select any other machine while
	  MACH_PXA3XX_DT is enabled.

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

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

config MACH_ZYLONITE
	bool
	select PXA3xx

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 CPU_PXA300
	select CPU_PXA310
	select PXA3xx

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

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

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 ARCOM_PCMCIA
	select I2C_GPIO if I2C=y
	select ISA
	select PXA25x

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

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

config MACH_CSB726
	bool "Enable Cogent CSB726 System On a Module"
	select IWMMXT
	select PXA27x
	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 ARCH_HAS_DMA_SET_COHERENT_MASK if PCI
	select IWMMXT
	select MIGHT_HAVE_PCI
	select NEED_MACH_IO_H if PCI
	select PXA25x
	select PXA27x

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 CPU_PXA300
	select CPU_PXA310
	select PXA3xx

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 IWMMXT
	select PXA27x

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

config MACH_XCEP
	bool "Iskratel Electronics XCEP"
	select MTD
	select MTD_CFI
	select MTD_CFI_INTELEXT
	select MTD_PHYSMAP
	select PXA25x
	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 PXA27x
	select TRIZEPS_PCMCIA

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

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

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

config MACH_PCM990_BASEBOARD
	bool "PHYTEC PCM-990 development board"
	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_INCOME
	bool "Income s.r.o. PXA270 SBC"
	depends on MACH_COLIBRI
	select PXA27x

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

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

config MACH_COLIBRI_EVALBOARD
	bool "Toradex Colibri Evaluation Carrier Board support"
	depends on MACH_COLIBRI || MACH_COLIBRI300 || MACH_COLIBRI320

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

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

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

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 IWMMXT
	select PXA27x

config MACH_MIOA701
	bool "Mitac Mio A701 Support"
	select IWMMXT
	select PXA27x
	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 IWMMXT
	select PXA27x

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"

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 IWMMXT
	select MACH_PALM27X
	select PXA27x
	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 IWMMXT
	select MACH_PALM27X
	select PXA27x
	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 IWMMXT
	select MACH_PALM27X
	select PXA27x
	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 IWMMXT
	select MACH_PALM27X
	select PXA27x
	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 IWMMXT
	select MACH_PALM27X
	select PALM_TREO
	select PXA27x
	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 IWMMXT
	select MACH_PALM27X
	select PALM_TREO
	select PXA27x
	help
	  Say Y here if you intend to run this kernel on Palm Treo 680
	  smartphone.

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

config MACH_RAUMFELD_CONNECTOR
	bool "Raumfeld Connector"
	select CPU_PXA300
	select POWER_SUPPLY
	select PXA3xx

config MACH_RAUMFELD_SPEAKER
	bool "Raumfeld Speaker"
	select CPU_PXA300
	select POWER_SUPPLY
	select PXA3xx

config PXA_SHARPSL
	bool "SHARP Zaurus SL-5600, SL-C7xx and SL-Cxx00 Models"
	select SHARP_PARAM
	select SHARP_SCOOP
	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

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 I2C
	select I2C_PXA
	select MACH_SPITZ
	select PXA27x
	select PXA_SHARP_Cxx00

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

config TOSA_BT
	tristate "Control the state of built-in bluetooth chip on Sharp SL-6000"
	depends on MACH_TOSA && NET
	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 FB_W100
	select FB
	select PXA25x

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
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
	select PXA310_ULPI if USB_ULPI
	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 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
	select SPI
	select SPI_MASTER

config PXA310_ULPI
	bool

config PXA_SYSTEMS_CPLDS
	tristate "Motherboard cplds"
	default ARCH_LUBBOCK || MACH_MAINSTONE
	help
	  This driver supports the Lubbock and Mainstone multifunction chip
	  found on the pxa25x development platform system (Lubbock) and pxa27x
	  development platform system (Mainstone). This IO board supports the
	  interrupts handling, ethernet controller, flash chips, etc ...

endif
