if ARCH_QCOM
menu "QCOM SoC Type"

config ARCH_MSM8X60
	bool "Enable support for MSM8X60"
	select ARCH_SUPPORTS_BIG_ENDIAN
	select ARM_AMBA
	select QCOM_SCM if SMP
	select CLKSRC_QCOM
	select CLKSRC_OF
	select COMMON_CLK

config ARCH_MSM8960
	bool "Enable support for MSM8960"
	select CLKSRC_QCOM
	select ARCH_SUPPORTS_BIG_ENDIAN
	select ARM_AMBA
	select QCOM_SCM if SMP
	select CLKSRC_OF
	select COMMON_CLK


config ARCH_MSM8974
	bool "Enable support for MSM8974"
	select HAVE_ARM_ARCH_TIMER
	select ARCH_SUPPORTS_BIG_ENDIAN
	select ARM_AMBA
	select QCOM_SCM if SMP
	select CLKSRC_OF
	select COMMON_CLK

config ARCH_MDM9615
	bool "Enable support for MDM9615"
	select CLKSRC_QCOM
	select ARCH_SUPPORTS_BIG_ENDIAN
	select ARM_AMBA
	select QCOM_SCM if SMP
	select CLKSRC_OF
	select COMMON_CLK

config ARCH_SDXPOORWILLS
	bool "Enable support for SDXPOORWILLS"
	select CPU_V7
	select HAVE_ARM_ARCH_TIMER
	select MSM_CORTEX_A7
	select PINCTRL
	select PCI
	select QCOM_SCM if SMP
	select MSM_JTAG_MM if CORESIGHT_ETM
	select PM_DEVFREQ
	select COMMON_CLK
	select COMMON_CLK_QCOM
	select QCOM_GDSC
	select GENERIC_CLOCKEVENTS_BROADCAST

config ARCH_MSM8953
	bool "Enable support for MSM8953"
	select CPU_V7
	select HAVE_ARM_ARCH_TIMER
	select PINCTRL
	select QCOM_SCM if SMP
	select PM_DEVFREQ
	select CLKDEV_LOOKUP
	select HAVE_CLK
	select HAVE_CLK_PREPARE
	select COMMON_CLK_MSM
	select ARCH_MSM8953_SOC_SETTINGS

config ARCH_MSM8953_BOOT_ORDERING
	bool "Enable support for MSM8953 device boot ordering"
	default n
	help
	  Populate devices from devicetree at late_init, after
	  drivers for all platform devices have been registered.
	  This causes devices to be probed in the order they are
	  listed in devicetree. Thus it is possible to have
	  greater control over the probe ordering such that
	  overall boot time can be reduced.

config ARCH_MSM8937
	bool "Enable support for MSM8937"
	select CPU_V7
	select HAVE_ARM_ARCH_TIMER
	select PINCTRL
	select QCOM_SCM if SMP
	select PM_DEVFREQ
	select CLKDEV_LOOKUP
	select HAVE_CLK
	select HAVE_CLK_PREPARE
	select COMMON_CLK_MSM

config ARCH_MSM8909
	bool "Enable support for MSM8909"
	select HAVE_ARM_ARCH_TIMER
	select MAY_HAVE_SPARSE_IRQ
	select PINCTRL_MSM_TLMM
	select USE_PINCTRL_IRQ
	select MSM_PM_LEGACY if PM
	select MSM_RPM_SMD
	select MSM_RPM_STATS_LOG
	select MSM_RPM_LOG
	select MSM_CORTEX_A7
	select QCOM_SCM if SMP
	select CPU_FREQ
	select CPU_FREQ_MSM
	select PM_DEVFREQ
	select PM_OPP
	select MSM_DEVFREQ_DEVBW
	select DEVFREQ_SIMPLE_DEV
	select DEVFREQ_GOV_MSM_BW_HWMON
	select MSM_BIMC_BWMON
	select CLKDEV_LOOKUP
	select HAVE_CLK
	select HAVE_CLK_PREPARE
	select COMMON_CLK_MSM

config ARCH_MSM8917
	bool "Enable support for MSM8917"
	select CPU_V7
	select HAVE_ARM_ARCH_TIMER
	select PINCTRL
	select QCOM_SCM if SMP
	select PM_DEVFREQ
	select CLKDEV_LOOKUP
	select HAVE_CLK
	select HAVE_CLK_PREPARE
	select COMMON_CLK_MSM

config ARCH_SDM439
	bool "Enable support for SDM439"
	select CPU_V7
	select HAVE_ARM_ARCH_TIMER
	select PINCTRL
	select QCOM_SCM if SMP
	select PM_DEVFREQ
	select CLKDEV_LOOKUP
	select HAVE_CLK
	select HAVE_CLK_PREPARE
	select COMMON_CLK_MSM

config ARCH_SDM429
	bool "Enable support for SDM429"
	select CPU_V7
	select HAVE_ARM_ARCH_TIMER
	select PINCTRL
	select QCOM_SCM if SMP
	select PM_DEVFREQ
	select CLKDEV_LOOKUP
	select HAVE_CLK
	select HAVE_CLK_PREPARE
	select COMMON_CLK_MSM

config ARCH_SDM450
	bool "Enable support for SDM450"
	select CPU_V7
	select HAVE_ARM_ARCH_TIMER
	select PINCTRL
	select QCOM_SCM if SMP
	select PM_DEVFREQ
	select CLKDEV_LOOKUP
	select HAVE_CLK
	select HAVE_CLK_PREPARE
	select COMMON_CLK_MSM
	select ARCH_MSM8953_SOC_SETTINGS

config ARCH_SDM632
	bool "Enable Support for Qualcomm Technologies Inc. SDM632"
	select CPU_V7
	select PINCTRL
	select QCOM_SCM if SMP
	select CLKDEV_LOOKUP
	select HAVE_CLK
	select HAVE_CLK_PREPARE
	select SOC_BUS
	select PM_OPP
	select MFD_CORE
	select SND_SOC_COMPRESS
	select SND_HWDEP
	select CPU_FREQ_QCOM
	select COMMON_CLK_MSM
	select ARCH_MSM8953_SOC_SETTINGS

config ARCH_SDM670
        bool "Enable Support for SDM670"
	select CPU_V7
	select CLKDEV_LOOKUP
	select HAVE_CLK
	select HAVE_CLK_PREPARE
	select PM_OPP
	select SOC_BUS
	select MSM_IRQ
	select THERMAL_WRITABLE_TRIPS
	select ARM_GIC_V3
	select ARM_AMBA
	select SPARSE_IRQ
	select MULTI_IRQ_HANDLER
	select HAVE_ARM_ARCH_TIMER
	select MAY_HAVE_SPARSE_IRQ
	select COMMON_CLK
	select COMMON_CLK_QCOM
	select QCOM_GDSC
	select PINCTRL_MSM_TLMM
	select PCI
	select USE_PINCTRL_IRQ
	select MSM_PM if PM
	select QMI_ENCDEC
	select CPU_FREQ
	select PM_DEVFREQ
	select MSM_DEVFREQ_DEVBW
	select DEVFREQ_SIMPLE_DEV
	select DEVFREQ_GOV_MSM_BW_HWMON
	select MSM_BIMC_BWMON
	select MSM_QDSP6V2_CODECS
	select MSM_AUDIO_QDSP6V2 if SND_SOC
	select GENERIC_IRQ_MIGRATION

config ARCH_MDM9650
	bool "MDM9650"
	select ARM_GIC
	select CPU_V7
	select REGULATOR
	select REGULATOR_RPM_SMD
	select HAVE_ARM_ARCH_TIMER
	select MSM_RPM_SMD
	select MSM_SPM
	select MSM_PM if PM
	select QMI_ENCDEC
	select MSM_CORTEX_A7
	select PINCTRL
	select PINCTRL_MSM_TLMM
	select USE_PINCTRL_IRQ
	select PCI
	select MSM_IRQ
	select MSM_JTAG_MM if CORESIGHT_ETM
	select MSM_CLK_CONTROLLER_V2
	select PM_DEVFREQ
	select MSM_DEVFREQ_DEVBW
	select DEVFREQ_SIMPLE_DEV
	select MSM_RPM_LOG
	select MSM_RPM_STATS_LOG
	select HAVE_CLK_PREPARE

config ARCH_MDM9607
	bool "MDM9607"
	select ARM_GIC
	select CPU_V7
	select REGULATOR
	select REGULATOR_RPM_SMD
	select HAVE_ARM_ARCH_TIMER
	select MSM_RPM_SMD
	select MEMORY_HOLE_CARVEOUT
	select MSM_CORTEX_A7
	select PINCTRL
	select PINCTRL_MSM_TLMM
	select USE_PINCTRL_IRQ
	select MSM_IRQ
	select MSM_PM if PM
	select PM_DEVFREQ
	select MSM_DEVFREQ_DEVBW
	select MSM_BIMC_BWMON
	select DEVFREQ_GOV_MSM_BW_HWMON
	select ARM_HAS_SG_CHAIN
	select HAVE_CLK_PREPARE

endmenu
endif
