if ARCH_MSM

choice
	prompt "Qualcomm MSM SoC Type"
	default ARCH_MSM7X00A

config ARCH_MSM7X00A
	bool "MSM7x00A / MSM7x01A"
	select MACH_TROUT if !MACH_HALIBUT
	select ARCH_MSM_ARM11
	select MSM_SMD
	select MSM_SMD_PKG3
	select CPU_V6
	select MSM_PROC_COMM
	select HAS_MSM_DEBUG_UART_PHYS

config ARCH_MSM7X30
	bool "MSM7x30"
	select MACH_MSM7X30_SURF # if !
	select ARCH_MSM_SCORPION
	select MSM_SMD
	select MSM_VIC
	select CPU_V7
	select MSM_GPIOMUX
	select MSM_PROC_COMM
	select HAS_MSM_DEBUG_UART_PHYS

config ARCH_QSD8X50
	bool "QSD8X50"
	select MACH_QSD8X50_SURF if !MACH_QSD8X50A_ST1_5
	select ARCH_MSM_SCORPION
	select MSM_SMD
	select MSM_VIC
	select CPU_V7
	select MSM_GPIOMUX
	select MSM_PROC_COMM
	select HAS_MSM_DEBUG_UART_PHYS

config ARCH_MSM8X60
	bool "MSM8X60"
	select MACH_MSM8X60_SURF if (!MACH_MSM8X60_RUMI3 && !MACH_MSM8X60_SIM \
				  && !MACH_MSM8X60_FFA)
	select ARCH_MSM_SCORPIONMP
	select ARM_GIC
	select CPU_V7
	select MSM_V2_TLMM
	select MSM_GPIOMUX
	select MSM_SCM if SMP

config ARCH_MSM8960
	bool "MSM8960"
	select ARCH_MSM_SCORPIONMP
	select MACH_MSM8960_SIM if (!MACH_MSM8960_RUMI3)
	select ARM_GIC
	select CPU_V7
	select MSM_V2_TLMM
	select MSM_GPIOMUX
	select MSM_SCM if SMP

endchoice

config MSM_SOC_REV_A
	bool
config  ARCH_MSM_SCORPIONMP
	bool

config  ARCH_MSM_ARM11
	bool
config  ARCH_MSM_SCORPION
	bool

config HAS_MSM_DEBUG_UART_PHYS
	bool

config  MSM_VIC
	bool

menu "Qualcomm MSM Board Type"

config MACH_HALIBUT
	depends on ARCH_MSM
	depends on ARCH_MSM7X00A
	bool "Halibut Board (QCT SURF7201A)"
	help
	  Support for the Qualcomm SURF7201A eval board.

config MACH_TROUT
	depends on ARCH_MSM
	depends on ARCH_MSM7X00A
	bool "HTC Dream (aka trout)"
	help
	  Support for the HTC Dream, T-Mobile G1, Android ADP1 devices.

config MACH_MSM7X30_SURF
	depends on ARCH_MSM7X30
	bool "MSM7x30 SURF"
	help
	  Support for the Qualcomm MSM7x30 SURF eval board.

config MACH_QSD8X50_SURF
	depends on ARCH_QSD8X50
	bool "QSD8x50 SURF"
	help
	  Support for the Qualcomm QSD8x50 SURF eval board.

config MACH_QSD8X50A_ST1_5
	depends on ARCH_QSD8X50
	select MSM_SOC_REV_A
	bool "QSD8x50A ST1.5"
	help
	  Support for the Qualcomm ST1.5.

config MACH_MSM8X60_RUMI3
	depends on ARCH_MSM8X60
	bool "MSM8x60 RUMI3"
	help
	  Support for the Qualcomm MSM8x60 RUMI3 emulator.

config MACH_MSM8X60_SURF
	depends on ARCH_MSM8X60
	bool "MSM8x60 SURF"
	help
	  Support for the Qualcomm MSM8x60 SURF eval board.

config MACH_MSM8X60_SIM
	depends on ARCH_MSM8X60
	bool "MSM8x60 Simulator"
	help
	  Support for the Qualcomm MSM8x60 simulator.

config MACH_MSM8X60_FFA
	depends on ARCH_MSM8X60
	bool "MSM8x60 FFA"
	help
	  Support for the Qualcomm MSM8x60 FFA eval board.

config MACH_MSM8960_SIM
	depends on ARCH_MSM8960
	bool "MSM8960 Simulator"
	help
	  Support for the Qualcomm MSM8960 simulator.

config MACH_MSM8960_RUMI3
	depends on ARCH_MSM8960
	bool "MSM8960 RUMI3"
	help
	  Support for the Qualcomm MSM8960 RUMI3 emulator.

endmenu

config MSM_IOMMU
	bool "MSM IOMMU Support"
	depends on ARCH_MSM8X60 || ARCH_MSM8960
	select IOMMU_API
	default n
	help
	  Support for the IOMMUs found on certain Qualcomm SOCs.
	  These IOMMUs allow virtualization of the address space used by most
	  cores within the multimedia subsystem.

	  If unsure, say N here.

config IOMMU_PGTABLES_L2
	def_bool y
	depends on MSM_IOMMU && MMU && SMP && CPU_DCACHE_DISABLE=n

config MSM_DEBUG_UART
	int
	default 1 if MSM_DEBUG_UART1
	default 2 if MSM_DEBUG_UART2
	default 3 if MSM_DEBUG_UART3

if HAS_MSM_DEBUG_UART_PHYS
choice
	prompt "Debug UART"

	default MSM_DEBUG_UART_NONE

	config MSM_DEBUG_UART_NONE
		bool "None"

	config MSM_DEBUG_UART1
		bool "UART1"

	config MSM_DEBUG_UART2
		bool "UART2"

	config MSM_DEBUG_UART3
		bool "UART3"
endchoice
endif

config MSM_SMD_PKG3
	bool

config MSM_PROC_COMM
	bool

config MSM_SMD
	bool

config MSM_GPIOMUX
	bool

config MSM_V2_TLMM
	bool

config IOMMU_API
	bool

config MSM_SCM
	bool
endif
