if ARCH_MSM

menu "MSM SoC Type"

config ARCH_MSM7X01A
	bool "MSM7x00A / MSM7x01A"
	select ARCH_MSM_ARM11
	select MSM_VIC
	select CPU_V6
	select GPIO_MSM_V1
	select MSM_REMOTE_SPINLOCK_SWP

config ARCH_MSM7X25
	bool "MSM7x25"
	select ARCH_MSM_ARM11
	select MSM_VIC
	select CPU_V6
	select GPIO_MSM_V1
	select MSM_REMOTE_SPINLOCK_SWP
	select MULTI_IRQ_HANDLER

config ARCH_MSM7X27
	bool "MSM7x27"
	select ARCH_MSM_ARM11 if MSM_SOC_REV_NONE
	select ARCH_HAS_BARRIERS
	select ARCH_MSM_CORTEX_A5 if MSM_SOC_REV_A
	select MSM_VIC
	select CPU_V6 if MSM_SOC_REV_NONE
	select CPU_V7 if MSM_SOC_REV_A
	select GPIO_MSM_V1
	select MSM_REMOTE_SPINLOCK_SWP if MSM_SOC_REV_NONE
	select MSM_GPIOMUX
	select REGULATOR
	select MULTI_IRQ_HANDLER
	select MSM_PROC_COMM_REGULATOR
	select CLEANCACHE
	select QCACHE
	select MSM_PM2 if PM
	select MSM_RUN_QUEUE_STATS if MSM_SOC_REV_A
	select DONT_MAP_HOLE_AFTER_MEMBANK0
	select MIGHT_HAVE_CACHE_L2X0
	select MSM_MODEM_RESTART

config ARCH_MSM7X30
	bool "MSM7x30"
	select ARCH_MSM_SCORPION
	select MSM_VIC
	select CPU_V7
	select GPIO_MSM_V1
	select MSM_REMOTE_SPINLOCK_DEKKERS
	select ARCH_SPARSEMEM_ENABLE
	select ARCH_HAS_HOLES_MEMORYMODEL
	select MIGRATION
	select MSM_GPIOMUX
	select RESERVE_FIRST_PAGE
	select MSM_DALRPC
	select MSM_SPM_V1
	select REGULATOR
	select MSM_PROC_COMM_REGULATOR
	select MULTI_IRQ_HANDLER
	select MSM_PM2 if PM
	select HOLES_IN_ZONE if SPARSEMEM
	select MSM_MODEM_RESTART
	select ARM_HAS_SG_CHAIN

config ARCH_QSD8X50
	bool "QSD8X50"
	select ARCH_MSM_SCORPION
	select MSM_VIC
	select CPU_V7
	select GPIO_MSM_V1
	select MSM_REMOTE_SPINLOCK_LDREX
	select CPU_USE_DOMAINS
	select EMULATE_DOMAIN_MANAGER_V7
	select MSM_GPIOMUX
	select MSM_DALRPC
	select MSM_PM2 if PM
	select MSM_MODEM_RESTART

config ARCH_MSM8X60
	bool "MSM8X60"
	select ARCH_MSM_SCORPIONMP
	select SMP_PARALLEL_START if SMP
	select ARM_GIC
	select CPU_V7
	select MSM_REMOTE_SPINLOCK_LDREX
	select ARCH_REQUIRE_GPIOLIB
	select MSM_ADM3
	select REGULATOR
	select MSM_RPM_REGULATOR
	select GPIO_MSM_V2
	select MSM_PIL
	select ARCH_HAS_CPU_IDLE_WAIT
	select MSM_DIRECT_SCLK_ACCESS
	select MSM_RPM
	select MSM_XO
	select MSM_GPIOMUX
	select MSM_BUS_SCALING
	select MSM_SECURE_IO
	select MSM_DALRPC
	select MSM_QDSP6_APR
	select MSM_QDSP6_CODECS
	select MSM_NATIVE_RESTART
	select ARCH_INLINE_SPIN_TRYLOCK
	select ARCH_INLINE_SPIN_TRYLOCK_BH
	select ARCH_INLINE_SPIN_LOCK
	select ARCH_INLINE_SPIN_LOCK_BH
	select ARCH_INLINE_SPIN_LOCK_IRQ
	select ARCH_INLINE_SPIN_LOCK_IRQSAVE
	select ARCH_INLINE_SPIN_UNLOCK
	select ARCH_INLINE_SPIN_UNLOCK_BH
	select ARCH_INLINE_SPIN_UNLOCK_IRQ
	select ARCH_INLINE_SPIN_UNLOCK_IRQRESTORE
	select ARCH_INLINE_READ_TRYLOCK
	select ARCH_INLINE_READ_LOCK
	select ARCH_INLINE_READ_LOCK_BH
	select ARCH_INLINE_READ_LOCK_IRQ
	select ARCH_INLINE_READ_LOCK_IRQSAVE
	select ARCH_INLINE_READ_UNLOCK
	select ARCH_INLINE_READ_UNLOCK_BH
	select ARCH_INLINE_READ_UNLOCK_IRQ
	select ARCH_INLINE_READ_UNLOCK_IRQRESTORE
	select ARCH_INLINE_WRITE_TRYLOCK
	select ARCH_INLINE_WRITE_LOCK
	select ARCH_INLINE_WRITE_LOCK_BH
	select ARCH_INLINE_WRITE_LOCK_IRQ
	select ARCH_INLINE_WRITE_LOCK_IRQSAVE
	select ARCH_INLINE_WRITE_UNLOCK
	select ARCH_INLINE_WRITE_UNLOCK_BH
	select ARCH_INLINE_WRITE_UNLOCK_IRQRESTORE
	select CPU_HAS_L2_PMU
	select MSM_SPM_V1
	select MSM_SCM if SMP
	select MULTI_IRQ_HANDLER
	select MSM_MULTIMEDIA_USE_ION
	select MSM_PM8X60 if PM
	select MSM_RUN_QUEUE_STATS
	select ARM_HAS_SG_CHAIN
	select USE_DEV_CTRL_VOLUME

config ARCH_MSM8960
	bool "MSM8960"
	select ARCH_MSM_KRAITMP
	select ARM_GIC
	select CPU_V7
	select GPIO_MSM_V2
	select MSM_GPIOMUX
	select MSM_SCM
	select MSM_DIRECT_SCLK_ACCESS
	select REGULATOR
	select MSM_RPM_REGULATOR
	select MSM_RPM
	select MSM_XO
	select MSM_QDSP6_APR
	select MSM_QDSP6_CODECS
	select MSM_PIL
	select MSM_AUDIO_QDSP6 if SND_SOC
	select CPU_HAS_L2_PMU
	select MSM_SPM_V2
	select MSM_L2_SPM
	select MSM_NATIVE_RESTART
	select DONT_MAP_HOLE_AFTER_MEMBANK0
	select MSM_REMOTE_SPINLOCK_SFPB
	select ARCH_HAS_HOLES_MEMORYMODEL
	select CLEANCACHE
	select QCACHE
	select MSM_MULTIMEDIA_USE_ION
	select MULTI_IRQ_HANDLER
	select MSM_PM8X60 if PM
	select HOLES_IN_ZONE if SPARSEMEM
	select MSM_RUN_QUEUE_STATS
	select ARM_HAS_SG_CHAIN
	select MSM_KRAIT_WFE_FIXUP
	select MSM_ULTRASOUND_A
	select MSM_IOMMU_GPU_SYNC
	select GENERIC_TIME_VSYSCALL
	select USE_USER_ACCESSIBLE_TIMERS
	select ARM_USE_USER_ACCESSIBLE_TIMERS
	select MSM_USE_USER_ACCESSIBLE_TIMERS
	select MSM_CPU_PWRCTL
	select MSM_LPM_TEST

config ARCH_MSM8930
	bool "MSM8930"
	select ARCH_MSM_KRAITMP
	select ARM_GIC
	select CPU_V7
	select GPIO_MSM_V2
	select MSM_GPIOMUX
	select MSM_SCM
	select MSM_DIRECT_SCLK_ACCESS
	select REGULATOR
	select MSM_RPM_REGULATOR
	select MSM_RPM
	select MSM_XO
	select MSM_QDSP6_APR
	select MSM_QDSP6_CODECS
	select MSM_PIL
	select MSM_AUDIO_QDSP6 if SND_SOC
	select CPU_HAS_L2_PMU
	select MSM_SPM_V2
	select MSM_L2_SPM
	select MSM_NATIVE_RESTART
	select DONT_MAP_HOLE_AFTER_MEMBANK0
	select MSM_REMOTE_SPINLOCK_SFPB
	select ARCH_HAS_HOLES_MEMORYMODEL
	select MSM_ULTRASOUND_A
	select MULTI_IRQ_HANDLER
	select MSM_PM8X60 if PM
	select HOLES_IN_ZONE if SPARSEMEM
	select ARM_HAS_SG_CHAIN
	select MSM_KRAIT_WFE_FIXUP
	select MSM_IOMMU_GPU_SYNC
	select GENERIC_TIME_VSYSCALL
	select USE_USER_ACCESSIBLE_TIMERS
	select ARM_USE_USER_ACCESSIBLE_TIMERS
	select MSM_USE_USER_ACCESSIBLE_TIMERS
	select MSM_CPU_PWRCTL

config ARCH_APQ8064
	bool "APQ8064"
	select ARCH_MSM_KRAITMP
	select GPIO_MSM_V2
	select ARM_GIC
	select CPU_V7
	select MSM_SCM
	select MSM_GPIOMUX
	select MSM_REMOTE_SPINLOCK_SFPB
	select MSM_PIL
	select MSM_QDSP6_APR
	select MSM_QDSP6_CODECS
	select MSM_AUDIO_QDSP6 if SND_SOC
	select MULTI_IRQ_HANDLER
	select MSM_RPM
	select MSM_SPM_V2
	select MSM_L2_SPM
	select MSM_PM8X60 if PM
	select CPU_HAS_L2_PMU
	select HOLES_IN_ZONE if SPARSEMEM
	select CLEANCACHE
	select QCACHE
	select MIGHT_HAVE_PCI
	select ARCH_SUPPORTS_MSI
	select ARM_HAS_SG_CHAIN
	select MSM_KRAIT_WFE_FIXUP
	select MSM_ULTRASOUND_A
	select MSM_IOMMU_GPU_SYNC
	select GENERIC_TIME_VSYSCALL
	select USE_USER_ACCESSIBLE_TIMERS
	select ARM_USE_USER_ACCESSIBLE_TIMERS
	select MSM_USE_USER_ACCESSIBLE_TIMERS
	select MSM_CPU_PWRCTL

config ARCH_MSM8974
	bool "MSM8974"
	select ARCH_MSM_KRAITMP
	select GPIO_MSM_V3
	select ARM_GIC
	select CPU_V7
	select MSM_SCM
	select MSM_GPIOMUX
	select MULTI_IRQ_HANDLER
	select MSM_MULTIMEDIA_USE_ION
	select MSM_PIL
	select MSM_SPM_V2
	select MSM_L2_SPM
	select MSM_NATIVE_RESTART
	select MSM_RESTART_V2
	select MSM_PM if PM
	select MAY_HAVE_SPARSE_IRQ
	select SPARSE_IRQ
	select MSM_RPM_SMD
	select REGULATOR
	select MSM_QDSP6_APRV2
	select MSM_QDSP6V2_CODECS
	select MSM_AUDIO_QDSP6V2 if SND_SOC
	select MSM_RPM_REGULATOR_SMD
	select ARM_HAS_SG_CHAIN
	select MSM_RUN_QUEUE_STATS
	select MEMORY_HOLE_CARVEOUT
	select MSM_RPM_STATS_LOG
	select QMI_ENCDEC
	select MSM_ULTRASOUND_B
	select MSM_RPM_LOG
	select ARCH_WANT_KMAP_ATOMIC_FLUSH
	select KRAIT_REGULATOR
	select ENABLE_VMALLOC_SAVINGS

config ARCH_MSM8974PRO
	bool "MSM8974PRO"
	depends on ARCH_MSM8974

config ARCH_APQ8084
	bool "APQ8084"
	select ARCH_MSM_KRAITMP
	select GPIO_MSM_V3
	select ARM_GIC
	select CPU_V7
	select MSM_SCM
	select MSM_GPIOMUX
	select MULTI_IRQ_HANDLER
	select MSM_NATIVE_RESTART
	select MSM_RESTART_V2
	select MSM_PM if PM
	select MAY_HAVE_SPARSE_IRQ
	select SPARSE_IRQ
	select REGULATOR
	select ARM_HAS_SG_CHAIN
	select ARCH_DMA_ADDR_T_64BIT if ARM_LPAE
	select ARCH_WANT_KMAP_ATOMIC_FLUSH
	select MEMORY_HOLE_CARVEOUT
	select QMI_ENCDEC
	select MSM_SPM_V2
	select MSM_L2_SPM
	select MSM_RPM_SMD
	select ENABLE_VMALLOC_SAVINGS

config ARCH_MPQ8092
	bool "MPQ8092"
	select ARCH_MSM_KRAITMP
	select GPIO_MSM_V3
	select ARM_GIC
	select MULTI_IRQ_HANDLER
	select CPU_V7
	select MSM_GPIOMUX
	select MAY_HAVE_SPARSE_IRQ
	select SPARSE_IRQ
	select MSM_NOPM

config ARCH_FSM9900
	bool "FSM9900"
	select ARCH_MSM_KRAITMP
	select GPIO_MSM_V3
	select ARM_GIC
	select CPU_V7
	select MSM_SCM
	select MSM_GPIOMUX
	select MULTI_IRQ_HANDLER
	select MSM_PIL
	select MSM_NATIVE_RESTART
	select MSM_RESTART_V2
	select MAY_HAVE_SPARSE_IRQ
	select SPARSE_IRQ
	select REGULATOR
	select ARM_HAS_SG_CHAIN
	select MSM_RUN_QUEUE_STATS
	select MSM_NOPM

config ARCH_FSM9XXX
	bool "FSM9XXX"
	select ARCH_MSM_SCORPION
	select MSM_VIC
	select CPU_V7
	select MSM_REMOTE_SPINLOCK_LDREX
	select GPIO_FSM9XXX
	select MULTI_IRQ_HANDLER
	select MSM_DALRPC

config ARCH_MSM9615
	bool "MSM9615"
	select ARM_GIC
	select GIC_SECURE
	select ARCH_MSM_CORTEX_A5
	select CPU_V7
	select MIGHT_HAVE_CACHE_L2X0
	select GPIO_MSM_V2
	select MSM_GPIOMUX
	select MSM_RPM
	select MSM_SPM_V2
	select MSM_NATIVE_RESTART
	select REGULATOR
	select MSM_RPM_REGULATOR
	select MULTI_IRQ_HANDLER
	select MSM_PM8X60 if PM
	select MSM_XO
	select MSM_MULTIMEDIA_USE_ION
	select MSM_QDSP6_APR
	select MSM_AUDIO_QDSP6 if SND_SOC
	select FIQ
	select ARM_HAS_SG_CHAIN

config ARCH_MSM8625
	bool "MSM8625"
	select ARCH_MSM_CORTEX_A5
	select CPU_V7
	select GPIO_MSM_V1
	select MSM_GPIOMUX
	select ARM_GIC
	select ARCH_MSM_CORTEXMP
	select MULTI_IRQ_HANDLER
	select ARM_TICKET_LOCKS
	select MSM_RUN_QUEUE_STATS
	select MIGHT_HAVE_CACHE_L2X0
	select ARM_HAS_SG_CHAIN
	select CPU_HAS_L2_PMU

config ARCH_MSM9625
	bool "MSM9625"
	select ARM_GIC
	select MIGHT_HAVE_CACHE_L2X0
	select ARCH_MSM_CORTEX_A5
	select CPU_V7
	select MSM_SCM
	select MSM_GPIOMUX
	select MSM_RPM_SMD
	select MSM_NATIVE_RESTART
	select MSM_RESTART_V2
	select MSM_SPM_V2
	select MSM_PM8X60 if PM
	select MULTI_IRQ_HANDLER
	select GPIO_MSM_V3
	select MAY_HAVE_SPARSE_IRQ
	select SPARSE_IRQ
	select CPU_FREQ_MSM
	select MSM_MULTIMEDIA_USE_ION
	select MSM_RPM_STATS_LOG
	select MSM_QDSP6_APRV2
	select MSM_QDSP6V2_CODECS
	select MSM_AUDIO_QDSP6V2 if SND_SOC
	select CPU_HAS_L2_PMU
	select MSM_JTAG_MM if CORESIGHT_ETM
	select MEMORY_HOLE_CARVEOUT
	select MSM_RPM_LOG

config ARCH_MSMKRYPTON
	bool "MSMKRYPTON"
	select ARM_GIC
	select CPU_V7
	select MSM_GPIOMUX
	select MSM_RPM_SMD
	select MSM_NATIVE_RESTART
	select MSM_RESTART_V2
	select MSM_SPM_V2
	select MSM_PM if PM
	select MULTI_IRQ_HANDLER
	select GPIO_MSM_V3
	select MAY_HAVE_SPARSE_IRQ
	select SPARSE_IRQ
	select MEMORY_HOLE_CARVEOUT
	select QMI_ENCDEC
	select MSM_CORTEX_A7

config ARCH_MSM8610
	bool "MSM8610"
	select ARM_GIC
	select GIC_SECURE
	select ARCH_MSM_CORTEXMP
	select CPU_V7
	select MSM_SCM
	select MAY_HAVE_SPARSE_IRQ
	select SPARSE_IRQ
	select MULTI_IRQ_HANDLER
	select ARM_TICKET_LOCKS
	select GPIO_MSM_V3
	select MSM_GPIOMUX
	select MSM_NATIVE_RESTART
	select MSM_RESTART_V2
	select MSM_QDSP6_APRV2
	select MSM_QDSP6V2_CODECS
	select MSM_AUDIO_QDSP6V2 if SND_SOC
	select QMI_ENCDEC
	select MSM_RPM_SMD
	select MSM_SPM_V2
	select MSM_L2_SPM
	select MSM_PM if PM
	select MEMORY_HOLE_CARVEOUT
	select MSM_BUS_SCALING
	select MSM_CORTEX_A7
	select CPU_FREQ_MSM
	select CPU_FREQ
	select MSM_PIL
	select MSM_RUN_QUEUE_STATS
	select ARM_HAS_SG_CHAIN
	select REGULATOR
	select MSM_RPM_REGULATOR_SMD
	select MSM_SPM_REGULATOR
	select MSM_JTAG_MM if CORESIGHT_ETM
	select MSM_CPR_REGULATOR
	select MSM_RPM_LOG
	select MSM_IOMMU_SYNC
	select MSM_RPM_STATS_LOG
	select ENABLE_VMALLOC_SAVINGS

config ARCH_MSM8226
	bool "MSM8226"
	select ARM_GIC
	select GIC_SECURE
	select ARCH_MSM_CORTEXMP
	select CPU_V7
	select MSM_SCM
	select MAY_HAVE_SPARSE_IRQ
	select SPARSE_IRQ
	select MULTI_IRQ_HANDLER
	select ARM_TICKET_LOCKS
	select GPIO_MSM_V3
	select MSM_GPIOMUX
	select MSM_NATIVE_RESTART
	select MSM_RESTART_V2
	select MSM_QDSP6_APRV2
	select MSM_QDSP6V2_CODECS
	select MSM_AUDIO_QDSP6V2 if SND_SOC
	select QMI_ENCDEC
	select MSM_RPM_SMD
	select MSM_SPM_V2
	select MSM_L2_SPM
	select MSM_PM if PM
	select MEMORY_HOLE_CARVEOUT
	select MSM_BUS_SCALING
	select MSM_CORTEX_A7
	select CPU_FREQ_MSM
	select CPU_FREQ
	select MSM_PIL
	select MSM_RUN_QUEUE_STATS
	select ARM_HAS_SG_CHAIN
	select REGULATOR
	select MSM_RPM_REGULATOR_SMD
	select MSM_SPM_REGULATOR
	select MSM_JTAG_MM if CORESIGHT_ETM
	select MSM_CPR_REGULATOR
	select MSM_RPM_LOG
	select MSM_RPM_STATS_LOG
	select ARCH_WANT_KMAP_ATOMIC_FLUSH
	select ENABLE_VMALLOC_SAVINGS

config ARCH_MSMSAMARIUM
	bool "MSMSAMARIUM"
	select ARCH_MSM_KRAITMP
	select GPIO_MSM_V3
	select ARM_GIC
	select CPU_V7
	select MSM_SCM
	select MSM_PIL
	select MSM_GPIOMUX
	select MULTI_IRQ_HANDLER
	select MSM_SPM_V2
	select MSM_L2_SPM
	select MSM_NATIVE_RESTART
	select MSM_RESTART_V2
	select MSM_PM if PM
	select MAY_HAVE_SPARSE_IRQ
	select SPARSE_IRQ
	select ARM_HAS_SG_CHAIN
	select MSM_RUN_QUEUE_STATS
	select ARCH_WANT_KMAP_ATOMIC_FLUSH
	select QMI_ENCDEC
endmenu

choice
	prompt "MSM SoC Revision"
	default MSM_SOC_REV_NONE
config MSM_SOC_REV_NONE
	bool "N/A"
	select EMULATE_DOMAIN_MANAGER_V7 if ARCH_QSD8X50
	select VERIFY_PERMISSION_FAULT if ARCH_QSD8X50
config MSM_SOC_REV_A
	bool "Rev. A"
	select ARCH_MSM7X27A if ARCH_MSM7X27
endchoice

config MSM_KRAIT_TBB_ABORT_HANDLER
	bool "Krait TBB/TBH data abort handler"
	depends on ARCH_MSM_KRAIT
	depends on ARM_THUMB
	help
	  Certain early samples of the Krait processor may generate data
	  aborts for TBB / TBH instructions that fail their condition code
	  checks. Enabling this option will ignore these erroneous data aborts,
	  at the expense of a very small performance penalty.

	  If unsure, say N.

config  ARCH_MSM_ARM11
	bool

config  ARCH_MSM_SCORPION
	bool

config  ARCH_MSM_KRAIT
	bool
	select ARM_L1_CACHE_SHIFT_6

config  MSM_CORTEX_A7
	bool

config  MSM_SMP
	select HAVE_SMP
	bool

config  ARCH_MSM_SCORPIONMP
	select ARCH_MSM_SCORPION
	select MSM_SMP
	select HAVE_ARCH_HAS_CURRENT_TIMER
	select MSM_JTAG if CORESIGHT_ETM
	bool

config  ARCH_MSM_KRAITMP
	select ARCH_MSM_KRAIT
	select MSM_SMP
	select HAVE_ARCH_HAS_CURRENT_TIMER
	select MSM_JTAG if CORESIGHT_ETM
	bool

config  ARCH_MSM_CORTEXMP
	select MSM_SMP
	bool

config  MSM_KRAIT_WFE_FIXUP
	bool

config  MSM_RESTART_V2
	bool

config  ARCH_MSM_CORTEX_A5
	bool

config ARCH_MSM7X27A
	bool
	select MSM_DALRPC
	select MSM_PROC_COMM_REGULATOR
	select MULTI_IRQ_HANDLER
	select ARM_GIC
	select ARCH_MSM_CORTEXMP
	select MIGHT_HAVE_CACHE_L2X0
	select ARM_HAS_SG_CHAIN
	select CPU_HAS_L2_PMU

config  MSM_VIC
	bool

config MSM_RPM
	bool "Resource Power Manager"
	select MSM_MPM

config MSM_RPM_SMD
	depends on MSM_SMD
	select MSM_MPM_OF
	bool "RPM driver using SMD protocol"
	help
	  RPM is the dedicated hardware engine for managing shared SoC
	  resources. This config adds driver support for using SMD as a
	  transport layer communication with RPM hardware. It also selects
	  the MSM_MPM config that programs the MPM module to monitor interrupts
	  during sleep modes.

config MSM_MPM
	bool "Modem Power Manager"
	help
	  MPM is a dedicated hardware resource responsible for entering and
	  waking up from a system wide low power mode. The MPM driver tracks
	  the wakeup interrupts and configures the MPM to monitor the wakeup
	  interrupts when going to a system wide sleep mode.

config MSM_MPM_OF
	bool "Modem Power Manager"
	depends on OF
	help
	  MPM is a dedicated hardware resource responsible for entering and
	  waking up from a system wide low power mode. The MPM driver tracks
	  the wakeup interrupts and configures the MPM to monitor the wakeup
	  interrupts when going to a system wide sleep mode. This config option
	  enables the MPM driver that supports initialization from a device
	  tree

config MSM_LPM_TEST
	bool "Low Power Mode test framework"
	depends on MSM_RPM || MSM_RPM_SMD
	depends on MSM_PM
	help
	  LPM_TEST is a test framework that assists in exercising the low
	  power mode algorithm on MSM targets. This test framework tracks
	  notifications sent during entry/exit of the low power modes and
	  processes them to measure various stats including latency
	  measurement.

config MSM_XO
	bool

config MSM_REMOTE_SPINLOCK_DEKKERS
	bool
config MSM_REMOTE_SPINLOCK_SWP
	bool
config MSM_REMOTE_SPINLOCK_LDREX
	bool
config MSM_REMOTE_SPINLOCK_SFPB
	bool
config MSM_ADM3
	bool

config SEC_MILLET_PROJECT
	bool "MILLET Projects"
        default n
        help
         Common flag for all the Millet Models and variants. Please use this flag for all
	 the features common in all the Millet Variants(3G,LTE,Wifi & Carrier).

config SEC_MATISSE_PROJECT
	bool "MATISSE Projects"
        default n
        help
         Common flag for all the Matisse Models and variants. Please use this flag for all
	 the features common in all the Matisse Variants(3G,LTE,Wifi & Carrier).

config SEC_BERLUTI_PROJECT
	bool "BERLUTI Projects"
        default n
        help
         Common flag for all the Berluti Models and variants. Please use this flag for all
	 the features common in all the Berluti Variants(3G,LTE,Wifi & Carrier).

config MACH_MATISSELTE_OPEN
	bool "MATISSE LTE EUR TAB"
        default n
        help
         MSM8226 MODEL MATISSE LTE TAB Specific changes for differentiating
         it with the other models on the same MSM8x26 chipset.

config MACH_MILLETWIFI_OPEN
	bool "MILLET WIFI EUR TAB"
        default n
        help
         MSM8226 MODEL MILLET WIFI EUR TAB Specific changes for differentiating
         it with the other models on the same MSM8x26 chipset.

config MACH_MILLET3G_EUR
	bool "MILLET 3G EUR TAB"
        default n
        help
         MSM8226 MODEL MILLET 3G EUR TAB Specific changes for differentiating
         it with the other models on the same MSM8x26 chipset.

config MACH_MILLETLTE_OPEN
	bool "MILLET LTE OPEN TAB"
        default n
        help
         MSM8226 MODEL MILLET LTE OPEN TAB SM T-335 Specific changes for differentiating
         it with the other models on the same MSM8x26 chipset.

config MACH_MATISSE3G_OPEN
	bool "MATTISE 3G OPEN TAB"
        default n
        help
         MSM8226 MODEL MATISSE 3G OPEN TAB Specific changes for differentiating
         it with the other models on the same MSM8x26 chipset.

config MACH_BERLUTI3G_EUR
	bool "BERLUTI 3G EUR TAB"
        default n
        help
         MSM8226 MODEL BERLUTI 3G EUR TAB Specific changes for differentiating
         it with the other models on the same MSM8x26 chipset.

menu "MSM Board Selection"

config MACH_HALIBUT
	depends on ARCH_MSM7X01A
	depends on MSM_STACKED_MEMORY
	default y
	bool "Halibut Board (QCT SURF7201A)"
	help
	  Support for the Qualcomm SURF7201A eval board.

config MACH_MSM7201A_SURF
	depends on ARCH_MSM7X01A
	depends on MSM_STACKED_MEMORY
	default y
	bool "MSM7201A SURF"
	help
	  Support for the Qualcomm MSM7201A SURF eval board.

config MACH_MSM7201A_FFA
	depends on ARCH_MSM7X01A
	depends on MSM_STACKED_MEMORY
	default y
	bool "MSM7201A FFA"
	help
	  Support for the Qualcomm MSM7201A FFA eval board.

config MACH_TROUT
	depends on ARCH_MSM7X01A
	depends on MSM_STACKED_MEMORY
	default y
	bool "Trout"

config MACH_MSM7X27_SURF
	depends on ARCH_MSM7X27
	depends on !MSM_STACKED_MEMORY
	default y
	bool "MSM7x27 SURF"
	help
	  Support for the Qualcomm MSM7x27 SURF eval board.

config MACH_MSM7X27_FFA
	depends on ARCH_MSM7X27
	depends on !MSM_STACKED_MEMORY
	default y
	bool "MSM7x27 FFA"
	help
	  Support for the Qualcomm MSM7x27 FFA eval board.

config MACH_MSM7X27A_RUMI3
        depends on ARCH_MSM7X27A
        depends on !MSM_STACKED_MEMORY
        default y
        bool "MSM7x27A RUMI3"
        help
          Support for the Qualcomm MSM7x27A RUMI3 Emulation Platform.

config MACH_MSM7X27A_SURF
        depends on ARCH_MSM7X27A
        depends on !MSM_STACKED_MEMORY
        default y
        bool "MSM7x27A SURF"
        help
          Support for the Qualcomm MSM7x27A SURF.

config MACH_MSM7X27A_FFA
        depends on ARCH_MSM7X27A
        depends on !MSM_STACKED_MEMORY
        default y
        bool "MSM7x27A FFA"
        help
          Support for the Qualcomm MSM7x27A FFA.

config MACH_MSM7625A_SURF
        depends on ARCH_MSM7X27A
        depends on !MSM_STACKED_MEMORY
        default y
        bool "MSM7625A SURF"
        help
          Support for the Qualcomm MSM7625A SURF.

config MACH_MSM7625A_FFA
        depends on ARCH_MSM7X27A
        depends on !MSM_STACKED_MEMORY
        default y
        bool "MSM7625A FFA"
        help
          Support for the Qualcomm MSM7625A FFA.

config MACH_MSM7627A_QRD1
        depends on ARCH_MSM7X27A
        depends on !MSM_STACKED_MEMORY
        default y
        bool "MSM7627A QRD1"
        help
          Support for the Qualcomm MSM7627A Reference Design.

config MACH_MSM7627A_QRD3
        depends on ARCH_MSM7X27A
        depends on !MSM_STACKED_MEMORY
        default y
        bool "MSM7627A QRD3"
        help
          Support for the Qualcomm MSM7627A Reference Design.

config MACH_MSM7627A_EVB
        depends on ARCH_MSM7X27A
        depends on !MSM_STACKED_MEMORY
        default y
        bool "MSM7627A EVB"
        help
          Support for the Qualcomm MSM7627A Reference Design.

config MACH_MSM8625_RUMI3
	depends on ARCH_MSM8625
	depends on !MSM_STACKED_MEMORY
	default y
	bool "MSM8625 RUMI3"
	help
	  Support for the Qualcomm MSM8625 RUMI3 Emulation Platform.

config MACH_MSM8625_SURF
	depends on ARCH_MSM8625
	depends on !MSM_STACKED_MEMORY
	default y
	bool "MSM8625 SURF"
	help
	  Support for the Qualcomm MSM8625 SURF.

config MACH_MSM8625_FFA
	depends on ARCH_MSM8625
	depends on !MSM_STACKED_MEMORY
	default y
	bool "MSM8625 FFA"
	help
	  Support for the Qualcomm MSM8625 FFA.

config MACH_MSM8625_EVB
	depends on ARCH_MSM8625
	depends on !MSM_STACKED_MEMORY
	default y
	bool "MSM8625 EVB"
	help
	  Support for the Qualcomm MSM8625 Reference Design.

config MACH_MSM8625_QRD7
	depends on ARCH_MSM8625
	depends on !MSM_STACKED_MEMORY
	default y
	bool "MSM8625 QRD7"
	help
	  Support for the Qualcomm MSM8625 Reference Design.

config MACH_MSM8625_EVT
	depends on ARCH_MSM8625
	depends on !MSM_STACKED_MEMORY
	default y
	bool "MSM8625 EVT"
	help
	  Support for the Qualcomm MSM8625 Reference Design.

config MACH_QRD_SKUD_PRIME
	depends on ARCH_MSM8625
	depends on !MSM_STACKED_MEMORY
	default y
	bool "MSM8625 SKUD PRIME"
	help
	  Support for the Qualcomm MSM8625 SKUD prime Reference Design.
	  Add support for a SKUD prime reference design based on MSM8x25
	  chipset. This device is much closer to a phone than regular form
	  factor devices, with new touch, display panel and other hardware
	  configurations.

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

config MACH_MSM7X30_FFA
       depends on ARCH_MSM7X30
       depends on !MSM_STACKED_MEMORY
       default y
       bool "MSM7x30 FFA"
       help
         Support for the Qualcomm MSM7x30 FFA eval board.

config MACH_MSM7X30_FLUID
       depends on ARCH_MSM7X30
       depends on !MSM_STACKED_MEMORY
       default y
       bool "MSM7x30 FLUID"
       help
         Support for the Qualcomm MSM7x30 FLUID eval board.

config MACH_SAPPHIRE
	depends on ARCH_MSM7X01A
	default n
	bool "Sapphire"

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

config MACH_QSD8X50_FFA
	depends on ARCH_QSD8X50
	depends on MSM_SOC_REV_NONE
	depends on MSM_STACKED_MEMORY
	default y
	bool "QSD8x50 FFA"
	help
	  Support for the Qualcomm QSD8x50 FFA eval board.

config MACH_MSM7X25_SURF
	depends on ARCH_MSM7X25
	depends on !MSM_STACKED_MEMORY
	default y
	bool "MSM7x25 SURF"
	help
	  Support for the Qualcomm MSM7x25 SURF eval board.

config MACH_MSM7X25_FFA
	depends on ARCH_MSM7X25
	depends on !MSM_STACKED_MEMORY
	default y
	bool "MSM7x25 FFA"
	help
	  Support for the Qualcomm MSM7x25 FFA eval board.

config MACH_MSM8X55_SURF
       depends on ARCH_MSM7X30
       depends on !MSM_STACKED_MEMORY
       default y
       bool "MSM8X55 SURF"
       help
         Support for the Qualcomm MSM8x55 SURF eval board.

config MACH_MSM8X55_FFA
       depends on ARCH_MSM7X30
       depends on !MSM_STACKED_MEMORY
       default y
       bool "MSM8X55 FFA"
       help
         Support for the Qualcomm MSM8x55 FFA eval board.

config MACH_MSM8X55_SVLTE_FFA
       depends on ARCH_MSM7X30
       depends on !MSM_STACKED_MEMORY
       default y
       bool "MSM8X55 SVLTE FFA"
       help
         Support for the Qualcomm MSM8x55 SVLTE FFA eval board.

config MACH_MSM8X55_SVLTE_SURF
       depends on ARCH_MSM7X30
       depends on !MSM_STACKED_MEMORY
       default y
       bool "MSM8X55 SVLTE SURF"
       help
         Support for the Qualcomm MSM8x55 SVLTE SURF eval board.

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

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

config MACH_MSM8X60_FLUID
	depends on ARCH_MSM8X60
	default n
	bool "MSM8x60 FLUID"
	help
	  Support for the Qualcomm MSM8x60 FLUID platform. The FLUID is an
	  8x60 target which has a form factor that is much closer to that
	  of a phone than other targets. It also has a new display and
	  touchscreen controller.

config MACH_MSM8X60_FUSION
	depends on ARCH_MSM8X60
	default n
	bool "MSM8x60 FUSION"
	help
	  Support for the Qualcomm MSM8x60 Fusion SURF device.

config MACH_MSM8X60_FUSN_FFA
	depends on ARCH_MSM8X60
	default n
	bool "MSM8x60 FUSN FFA"
	help
	  Support for the Qualcomm MSM8x60 Fusion FFA device.

config MACH_MSM8X60_DRAGON
	depends on ARCH_MSM8X60
	default n
	bool "MSM8x60 DRAGON"
	help
	  Support for the Qualcomm MSM8x60 Dragon board.

config MACH_MSM8960_CDP
	depends on ARCH_MSM8960
	bool "MSM8960 CDP"
	help
	  Support for the Qualcomm MSM8960 CDP device.

config MACH_MSM8960_MTP
	depends on ARCH_MSM8960
	bool "MSM8960 MTP"
	help
	  Support for the Qualcomm MSM8960 MTP device.

config MACH_MSM8960_FLUID
	depends on ARCH_MSM8960
	bool "MSM8960 FLUID"
	help
	  Support for the Qualcomm MSM8960 FLUID device.

config MACH_MSM8960_LIQUID
	depends on ARCH_MSM8960
	bool "MSM8960 LIQUID"
	help
	  Support for the Qualcomm MSM8960 LIQUID device.

config MACH_MSM8930_CDP
	depends on ARCH_MSM8930
	bool "MSM8930 CDP"
	help
	  Support for the Qualcomm MSM8930 CDP device.

config MACH_MSM8930_MTP
	depends on ARCH_MSM8930
	bool "MSM8930 MTP"
	help
	  Support for the Qualcomm MSM8930 MTP device.

config MACH_MSM8930_FLUID
	depends on ARCH_MSM8930
	bool "MSM8930 FLUID"
	help
	  Support for the Qualcomm MSM8930 FLUID device.

config MACH_MSM8627_CDP
	depends on ARCH_MSM8930
	bool "MSM8627 CDP"
	help
	  Support for the Qualcomm MSM8627 CDP device.

config MACH_MSM8627_MTP
	depends on ARCH_MSM8930
	bool "MSM8627 MTP"
	help
	  Support for the Qualcomm MSM8627 MTP device.

config MACH_MSM9615_CDP
	depends on ARCH_MSM9615
	bool "MSM9615 CDP"
	help
	  Support for the Qualcomm MSM9615 CDP device.

config MACH_MSM9615_MTP
	depends on ARCH_MSM9615
	bool "MSM9615 MTP"
	help
	  Support for the Qualcomm MSM9615 MTP device.

config MSM_USE_TSIF1
	depends on ARCH_MSM8X60
	bool "MSM8x60 use TSIF1"
	help
	  Selects TSIF1 core to be used rather than TSIF0.
	  The two TSIF cores share the same DM configuration
	  so they cannot be used simultaneously.

config MACH_APQ8064_CDP
	depends on ARCH_APQ8064
	bool "APQ8064 CDP"
	help
	  Support for the Qualcomm APQ8064 CDP device.

config MACH_FSM8064_EP
	depends on ARCH_APQ8064
	bool "FSM8064 EP"
	help
	  Support for the Qualcomm FSM8064 EP device.
	  This board also known as Femto development platform (FDP)
	  is based on APQ8064 chipset. This board does not support
	  keyboard, display or multimedia.

config MACH_APQ8064_MTP
	depends on ARCH_APQ8064
	bool "APQ8064 MTP"
	help
	  Support for the Qualcomm APQ8064 MTP device.

config MACH_APQ8064_LIQUID
	depends on ARCH_APQ8064
	bool "APQ8064 LIQUID"
	help
	  Support for the Qualcomm APQ8064 LIQUID device.

config MACH_MPQ8064_CDP
	depends on ARCH_APQ8064
	bool "MPQ8064 CDP"
	help
	  Support for the Qualcomm MPQ8064 CDP device.

config MACH_MPQ8064_HRD
	depends on ARCH_APQ8064
	bool "MPQ8064 HRD"
	help
	  Support for the Qualcomm MPQ8064 HRD device.

config MACH_MPQ8064_DTV
	depends on ARCH_APQ8064
	bool "MPQ8064 DTV"
	help
	  Support for the Qualcomm MPQ8064 DTV device.

config MACH_FSM9XXX_SURF
	depends on ARCH_FSM9XXX
	depends on !MSM_STACKED_MEMORY
	default y
	bool "FSM9XXX SURF"
	help
	  Support for the Qualcomm FSM9xxx femtocell
	  chipset based SURF evaluation board and
	  FFA board.

config FACTORY_KERNEL
        default n
        bool "FACTORY KERNEL"
        help
          Support for Samsung FACTORY PATFORM/KERNEL.

config SEC_K_PROJECT
	depends on ARCH_MSM8974PRO
        default n
        bool "Samsung K project"
        help
          Support for Samsung K project.

config MACH_KLTE_EUR
        default n
        bool "Samsung model KLTE_EUR"
        help
          Support for Samsung KLTE_EUR device.

config MACH_KLTE_ATT
        default n
        bool "Samsung model KLTE_ATT"
        help
          Support for Samsung KLTE_ATT device.

config MACH_KLTE_TMO
        default n
        bool "Samsung model KLTE_TMO"
        help
          Support for Samsung KLTE_TMO device.

config MACH_KLTE_VZW
        default n
        bool "Samsung model KLTE_VZW"
        help
          Support for Samsung KLTE_VZW device.

config MACH_KLTE_SPR
        default n
        bool "Samsung model KLTE_SPR"
        help
          Support for Samsung KLTE_SPR device.

config MACH_KLTE_USC
        default n
        bool "Samsung model KLTE_USC"
        help
          Support for Samsung KLTE_USC device.

config MACH_KLTE_KOR
        default n
        bool "Samsung model KLTE_KOR ALL"
        help
          Support for Samsung KLTE_KOR device.

config MACH_KLTE_SKT
        default n
        bool "Samsung model KLTE_SKT"
        help
          Support for Samsung KLTE_SKT device.

config MACH_KLTE_KTT
        default n
        bool "Samsung model KLTE_KTT"
        help
          Support for Samsung KLTE_KTT device.

config MACH_KLTE_LGT
        default n
        bool "Samsung model KLTE_LGT"
        help
          Support for Samsung KLTE_LGT device.                              
          
config MACH_K3GDUOS_CTC
        default n
        bool "Samsung model K3GDUOS_CTC"
        help
          Support for Samsung K3GDUOS_CTC device.                       
          

config MACH_KLTE_CMCC
        default n
        bool "Samsung model KLTE_CMCC"
        help
          Support for Samsung KLTE_CMCC device.

config MACH_KLTE_CTC
        default n
        bool "Samsung model KLTE_CTC"
        help
          Support for Samsung KLTE_CTC device.

config MACH_KLTE_JPN
        default n
        bool "Samsung model KLTE_JPN ALL"
        help
          Support for Samsung KLTE_JPN device.

config MACH_KLTE_DCM
        default n
        bool "Samsung model KLTE_DCM"
        help
          Support for Samsung KLTE_DCM device.

config MACH_KLTE_SBM
        default n
        bool "Samsung model KLTE_SBM"
        help
          Support for Samsung KLTE_SBM device.

config MACH_KLTE_KDI
        default n
        bool "Samsung model KLTE_KDI"
        help
          Support for Samsung KLTE_KDI device.

config SEC_MONDRIAN_PROJECT
	default n
	bool "Samsung MONDRIAN project"
	help
	  Support for Samsung MONDRIAN project.

config MACH_MONDRIAN
	default n
	bool "Samsung model MONDRIAN"
	select SEC_MONDRIAN_PROJECT
	help
	  Support for Samsung MONDRIAN device.

config MACH_MONDRIAN_LTE
	default n
	bool "Samsung model MONDRIAN_LTE"
	help
	  Support for Samsung MONDRIAN_LTE device.
	  
config MACH_MONDRIANATT
	default n
	bool "Samsung model MONDRIANATT"
	help
	  Support for Samsung MONDRIANATT device.	  

config MACH_MONDRIAN_WIFI
	default n
	bool "Samsung model MONDRIAN_WIFI"
	help
	  Support for Samsung MONDRIAN_WIFI device.

config SEC_VIENNA_PROJECT
	default n
	bool "Samsung VIENNA project"
	help
	  Support for Samsung VIENNA project.

config MACH_VIENNA
	default n
	bool "Samsung model VIENNA"
	select SEC_VIENNA_PROJECT
	help
	  Support for Samsung VIENNA device.

config MACH_VIENNA_LTE
	default n
	bool "Samsung model VIENNA_LTE"
	help
	  Support for Samsung VIENNA_LTE device.

config MACH_VIENNAEUR
	default n
	bool "Samsung model VIENNAEUR"
	help
	  Support for Samsung VIENNAEUR device.

config MACH_VIENNAVZW
	default n
	bool "Samsung model VIENNAVZW"
	help
	  Support for Samsung VIENNAVZW device.

config MACH_VIENNAATT
	default n
	bool "Samsung model VIENNAATT"
	help
	  Support for Samsung VIENNAATT device.

config SEC_H_PROJECT
	default n
	bool "Samsung H project"
	help
	  Support for Samsung H project.

config USER_RESET_DEBUG
	bool "KOR reset reason debug feature in user version"
	default n
	help
	  This option enables debugging log for B10 project.
	  This option provides reset history log in user version.
	  This option enable proc/reset_reason support
	  It's only support KOR Model

config MACH_HLTEATT
	default n
	bool "Samsung model HLTEATT"
	select SEC_H_PROJECT
	help
	  Support for Samsung HLTEATT device.

config MACH_HLTEEUR
	default n
	bool "Samsung model HLTEEUR"
	select SEC_H_PROJECT
	help
	  Support for Samsung HLTEEUR device.
	  
config MACH_H3G_CHN_OPEN
	default n
	bool "Samsung model H3G_CHN_OPEN"
	select SEC_H_PROJECT
	help
	  Support for Samsung H3G CHN OPEN device.
	  
config MACH_HLTESPR
	default n
	bool "Samsung model HLTESPR"
	select SEC_H_PROJECT
	help
	  Support for Samsung HLTESPR device.

config MACH_HLTETMO
	default n
	bool "Samsung model HLTETMO"
	select SEC_H_PROJECT
	help
	  Support for Samsung HLTETMO device.

config MACH_HLTEUSC
	default n
	bool "Samsung model HLTEUSC"
	select SEC_H_PROJECT
	help
	  Support for Samsung HLTEUSC device.

config MACH_HLTEVZW
	default n
	bool "Samsung model HLTEVZW"
	select SEC_H_PROJECT
	help
	  Support for Samsung HLTEVZW device.

config SEC_F_PROJECT
	default n
	bool "Samsung F project"
	help
	  Support for Samsung F project.

config SEC_KS01_PROJECT
	default n
	bool "Samsung KS01 project"
	help
	  Support for Samsung KS01 project.

config MACH_H
	default n
	bool "Samsung model H"
	select SEC_H_PROJECT
	help
	  Support for Samsung H device.

config MACH_H_LTE
	default n
	bool "Samsung model H_LTE"
	help
	  Support for Samsung H_LTE device.

config SEC_N2_PROJECT
	default n
	bool "Samsung N2 project"
	help
	  Support for Samsung N2 project.

config MACH_N2
	default n
	bool "Samsung model N2"
	select SEC_N2_PROJECT
	help
	  Support for Samsung N2 device.

config MACH_N2_LTE
	default n
	bool "Samsung model N2_LTE"
	help
	  Support for Samsung N2_LTE device.

config SEC_LT03_PROJECT
	default n
	bool "Samsung LT03 project"
	help
	  Support for Samsung LT03 project.

config MACH_LT03
	default n
	bool "Samsung model LT03"
	select SEC_LT03_PROJECT
	help
	  Support for Samsung LT03 device.

config MACH_LT03_LTE
	default n
	bool "Samsung model LT03_LTE"
	help
	  Support for Samsung LT03_LTE device.

config SEC_HEAT_PROJECT
        default n
        bool "Samsung HEAT project"
        help
          Support for Samsung HEAT project.

config MACH_HEAT_DYN
        default n
        bool "Samsung model HEAT_DYN"
        help
          Support for Samsung HEAT_DYN device.

config SEC_PICASSO_PROJECT
	default n
	bool "Samsung PICASSO project"
	help
	  Support for Samsung PICASSO project.

config MACH_PICASSO
	default n
	bool "Samsung model PICASSO"
	select SEC_PICASSO_PROJECT
	help
	  Support for Samsung PICASSO device.

config MACH_PICASSO_LTE
	default n
	bool "Samsung model PICASSO_LTE"
	help
	  Support for Samsung PICASSO_LTE device.

config SEC_LOCALE_KOR
	default n
	bool "Samsung model KOREA"

config SEC_LOCALE_KOR_H
	default n
	bool "Samsung H model KOREA"

config MACH_HLTESKT
	default n
	bool "Samsung model HLTESKT"
	select SEC_H_PROJECT
	help
	  Support for Samsung HLTESKT device.

config MACH_HLTEKTT
	default n
	bool "Samsung model HLTEKTT"
	select SEC_H_PROJECT
	help
	  Support for Samsung HLTEKTT device.

config MACH_HLTELGT
	default n
	bool "Samsung model HLTELGT"
	select SEC_H_PROJECT
	help
	  Support for Samsung HLTELGT device.

config MACH_FLTESKT
	default n
	bool "Samsung model FLTESKT"
	select SEC_F_PROJECT
	help
	  Support for Samsung FLTESKT device.

config MACH_KS01SKT
	default n
	bool "Samsung model KS01LTESKT"
	select SEC_KS01_PROJECT
	help
	  Support for Samsung KS01LTESKT device.

config MACH_KS01KTT
	default n
	bool "Samsung model KS01LTEKTT"
	select SEC_KS01_PROJECT
	help
	  Support for Samsung KS01LTEKTT device.

config MACH_KS01LGT
	default n
	bool "Samsung model KS01LTELGT"
	select SEC_KS01_PROJECT
	help
	  Support for Samsung KS01LTELGT device.

config SEC_V2_PROJECT
	default n
	bool "Samsung V2 project"
	help
	  Support for Samsung V2 project.

config MACH_V2
	default n
	bool "Samsung model V2"
	select SEC_V2_PROJECT
	help
	  Support for Samsung V2 device.

config MACH_V2_LTE
	default n
	bool "Samsung model V2_LTE"
	help
	  Support for Samsung V2_LTE device.

config SEC_KACTIVE_PROJECT
	depends on ARCH_MSM8974PRO
	default n
	bool "Samsung KACTIVE project"
	help
	  Support for Samsung KACTIVE project.

config MACH_KACTIVELTE_EUR
	default n
	bool "Samsung model KACTIVELTE_EUR"
	select SEC_KACTIVE_PROJECT
	help
	  Support for Samsung KACTIVELTE_EUR device.

config MACH_KACTIVELTE_ATT
	default n
	bool "Samsung model KACTIVELTE_ATT"
	select SEC_KACTIVE_PROJECT
	help
	  Support for Samsung KACTIVELTE_ATT device.

endmenu

config SAMSUNG_PRODUCT_SHIP
	bool "set up for product shipping"
	default n

config MSM_STACKED_MEMORY
	bool "Stacked Memory"
	default y
	help
	  This option is used to indicate the presence of on-die stacked
	  memory.  When present this memory bank is used for a high speed
	  shared memory interface.  When not present regular RAM is used.

config PHYS_OFFSET
	hex
	default "0x40800000" if ARCH_MSM9615
	default "0x80200000" if ARCH_APQ8064
	default "0x80200000" if ARCH_MSM8960
	default "0x80200000" if ARCH_MSM8930
	default "0x00000000" if ARCH_MSM8974
	default "0x00000000" if ARCH_APQ8084
	default "0x00000000" if ARCH_MPQ8092
	default "0x00000000" if ARCH_MSM8226
	default "0x00000000" if ARCH_MSM8610
	default "0x00000000" if ARCH_MSMSAMARIUM
	default "0x10000000" if ARCH_FSM9XXX
	default "0x00000000" if ARCH_FSM9900
	default "0x00200000" if ARCH_MSM9625
	default "0x00000000" if ARCH_MSMKRYPTON
	default "0x00200000" if !MSM_STACKED_MEMORY
	default "0x00000000" if ARCH_QSD8X50 && MSM_SOC_REV_A
	default "0x20000000" if ARCH_QSD8X50
	default "0x40200000" if ARCH_MSM8X60
	default "0x10000000"

config KERNEL_MSM_CONTIG_MEM_REGION
	bool "Enable in-kernel contiguous memory region"
	default y if ARCH_MSM8X60
	depends on ARCH_MSM8X60 || ARCH_MSM8960 || ARCH_MSM8974
	help
	   Enable the in-kernel contiguous memory allocator. Sets up a
	   region of physically contiguous memory. This memory is
	   reserved during initialization, and can be used
	   generically.

config KERNEL_PMEM_SMI_REGION
	bool "Enable in-kernel PMEM region for SMI"
	default y if ARCH_MSM8X60
	depends on (ARCH_QSD8X50 && !PMEM_GPU0) || (ARCH_MSM8X60 && !VCM)
	help
	   Enable the in-kernel PMEM allocator to use SMI memory.

config PMEM_GPU0
	bool "Enable PMEM GPU0 region"
	default y
	depends on ARCH_QSD8X50
	help
	  Enable the PMEM GPU0 device on SMI Memory.

config MSM_AMSS_VERSION
	int
	default 6210 if MSM_AMSS_VERSION_6210
	default 6220 if MSM_AMSS_VERSION_6220
	default 6225 if MSM_AMSS_VERSION_6225

choice
	prompt "AMSS modem firmware version"

	default MSM_AMSS_VERSION_6225

	config MSM_AMSS_VERSION_6210
		bool "6.2.10"

	config MSM_AMSS_VERSION_6220
		bool "6.2.20"

	config MSM_AMSS_VERSION_6225
		bool "6.2.20 + New ADSP"
endchoice

config MSM_HAS_DEBUG_UART_HS
	bool
	help
	  Say Y here if high speed MSM UART is present.

config MSM_HAS_DEBUG_UART_HS_V14
	bool
	select MSM_HAS_DEBUG_UART_HS
	help
	  Say Y here if high speed MSM UART v1.4 is present.

config MSM_DEBUG_UART_PHYS
	hex
	default 0xA9A00000 if (ARCH_MSM7X27 || ARCH_QSD8X50) && DEBUG_MSM_UART1
	default 0xACA00000 if ARCH_MSM7X30 && DEBUG_MSM_UART1
	default 0x94000000 if ARCH_FSM9XXX && DEBUG_MSM_UART1
	default 0xA9B00000 if (ARCH_MSM7X27 || ARCH_QSD8X50) && DEBUG_MSM_UART2
	default 0xACB00000 if ARCH_MSM7X30 && DEBUG_MSM_UART2
	default 0x94100000 if ARCH_FSM9XXX && DEBUG_MSM_UART2
	default 0xA9C00000 if (ARCH_MSM7X27 || ARCH_QSD8X50) && DEBUG_MSM_UART3
	default 0xACC00000 if ARCH_MSM7X30 && DEBUG_MSM_UART3

choice
	prompt "Debug UART"
	depends on DEBUG_LL

	config DEBUG_MSM_UART1
		bool "Kernel low-level debugging messages via MSM UART1"
		depends on ARCH_MSM7X27 || ARCH_MSM7X30 || ARCH_QSD8X50 || ARCH_FSM9XXX
		help
		  Say Y here if you want the debug print routines to direct
		  their output to the first serial port on MSM devices.

	config DEBUG_MSM_UART2
		bool "Kernel low-level debugging messages via MSM UART2"
		depends on ARCH_MSM7X27 || ARCH_MSM7X30 || ARCH_QSD8X50 || ARCH_FSM9XXX
		help
		  Say Y here if you want the debug print routines to direct
		  their output to the second serial port on MSM devices.

	config DEBUG_MSM_UART3
		bool "Kernel low-level debugging messages via MSM UART3"
		depends on ARCH_MSM7X27 || ARCH_MSM7X30 || ARCH_QSD8X50
		help
		  Say Y here if you want the debug print routines to direct
		  their output to the third serial port on MSM devices.

	config DEBUG_MSM8660_UART
		bool "Kernel low-level debugging messages via MSM 8660 UART"
		depends on ARCH_MSM8X60
		select MSM_HAS_DEBUG_UART_HS
		help
		  Say Y here if you want the debug print routines to direct
		  their output to the serial port on MSM 8660 devices.

	config DEBUG_MSM8960_UART
		bool "Kernel low-level debugging messages via MSM 8960 UART"
		depends on ARCH_MSM8960 && DEBUG_LL
		select MSM_HAS_DEBUG_UART_HS
		help
		  Say Y here if you want the debug print routines to direct
		  their output to the serial port on MSM 8960 devices.

	config DEBUG_MSM8930_UART
		bool "Kernel low-level debugging messages via MSM 8930 UART"
		depends on ARCH_MSM8930 && DEBUG_LL
		select MSM_HAS_DEBUG_UART_HS
		help
		Say Y here if you want the debug print routines to direct
		their output to the serial port on MSM 8930 devices.

	config DEBUG_APQ8064_UART
		bool "Kernel low-level debugging messages via APQ 8064 UART"
		depends on ARCH_APQ8064 && DEBUG_LL
		select MSM_HAS_DEBUG_UART_HS
		help
		Say Y here if you want the debug print routines to direct
		their output to the serial port on APQ 8064 devices.

	config DEBUG_MSM8974_UART
		bool "Kernel low-level debugging messages via MSM 8974 UART"
		depends on ARCH_MSM8974
		select MSM_HAS_DEBUG_UART_HS_V14
		help
		  Say Y here if you want the debug print routines to direct
		  their output to the serial port on MSM 8974 devices.

	config DEBUG_MPQ8092_UART
                bool "Kernel low-level debugging messages via MPQ8092 UART"
                depends on ARCH_MPQ8092
                select MSM_HAS_DEBUG_UART_HS_V14
                help
                  Say Y here if you want the debug print routines to direct
                  their output to the serial port on MPQ8092 devices.

	config DEBUG_APQ8084_UART
                bool "Kernel low-level debugging messages via APQ8084 UART"
                depends on ARCH_APQ8084
                select MSM_HAS_DEBUG_UART_HS_V14
                help
                  Say Y here if you want the debug print routines to direct
                  their output to the serial port on APQ8084 devices.

	config DEBUG_MSM9625_UART
                bool "Kernel low-level debugging messages via MSM9625 UART"
                depends on ARCH_MSM9625
                select MSM_HAS_DEBUG_UART_HS_V14
                help
                  Say Y here if you want the debug print routines to direct
                  their output to the serial port on MSM9625 devices.

	config DEBUG_FSM9900_UART
		bool "Kernel low-level debugging messages via FSM9900 UART"
		depends on ARCH_FSM9900
		select MSM_HAS_DEBUG_UART_HS_V14
		help
		  Say Y here if you want the debug print routines to direct
		  their output to the serial port on FSM9900 devices.

	config DEBUG_MSMSAMARIUM_UART
		bool "Kernel low-level debugging messages via MSM SAMARIUM UART"
		depends on ARCH_MSMSAMARIUM
		select MSM_HAS_DEBUG_UART_HS_V14
		help
		  Say Y here if you want the debug print routines to direct
		  their output to the serial port on MSM SAMARIUM devices.

	config DEBUG_MSM8226_UART
		bool "Kernel low-level debugging messages via MSM 8226 UART"
		depends on ARCH_MSM8226
		select MSM_HAS_DEBUG_UART_HS_V14
		help
		  Say Y here if you want the debug print routines to direct
		  their output to the serial port on MSM 8226 devices.
endchoice

choice
	prompt "Default Timer"
	default MSM7X00A_USE_GP_TIMER

	config MSM7X00A_USE_GP_TIMER
		bool "GP Timer"
	help
	  Low resolution timer that allows power collapse from idle.

	config MSM7X00A_USE_DG_TIMER
		bool "DG Timer"
	help
	  High resolution timer.
endchoice

choice
	prompt "Suspend sleep mode"
	default MSM7X00A_SLEEP_MODE_POWER_COLLAPSE_SUSPEND
	help
	  Allows overriding the sleep mode used. Leave at power
	  collapse suspend unless the arm9 image has problems.

	config MSM7X00A_SLEEP_MODE_POWER_COLLAPSE_SUSPEND
		bool "Power collapse suspend"
	help
	  Lowest sleep state. Returns through reset vector.

	config MSM7X00A_SLEEP_MODE_POWER_COLLAPSE
		bool "Power collapse"
	help
	  Sleep state that returns through reset vector.

	config MSM7X00A_SLEEP_MODE_APPS_SLEEP
		bool "Apps Sleep"

	config MSM7X00A_SLEEP_MODE_RAMP_DOWN_AND_WAIT_FOR_INTERRUPT
		bool "Ramp down cpu clock and wait for interrupt"

	config MSM7X00A_SLEEP_WAIT_FOR_INTERRUPT
		bool "Wait for interrupt"
endchoice

config MSM7X00A_SLEEP_MODE
	int
	default 0 if MSM7X00A_SLEEP_MODE_POWER_COLLAPSE_SUSPEND
	default 1 if MSM7X00A_SLEEP_MODE_POWER_COLLAPSE
	default 2 if MSM7X00A_SLEEP_MODE_APPS_SLEEP
	default 3 if MSM7X00A_SLEEP_MODE_RAMP_DOWN_AND_WAIT_FOR_INTERRUPT
	default 4 if MSM7X00A_SLEEP_WAIT_FOR_INTERRUPT

choice
	prompt "Idle sleep mode"
	default MSM7X00A_IDLE_SLEEP_MODE_POWER_COLLAPSE
	help
	  Allows overriding the sleep mode used from idle. Leave at power
	  collapse suspend unless the arm9 image has problems.

	config MSM7X00A_IDLE_SLEEP_MODE_POWER_COLLAPSE_SUSPEND
		bool "Power collapse suspend"
	help
	  Lowest sleep state. Returns through reset vector.

	config MSM7X00A_IDLE_SLEEP_MODE_POWER_COLLAPSE
		bool "Power collapse"
	help
	  Sleep state that returns through reset vector.

	config MSM7X00A_IDLE_SLEEP_MODE_APPS_SLEEP
		bool "Apps Sleep"

	config MSM7X00A_IDLE_SLEEP_MODE_RAMP_DOWN_AND_WAIT_FOR_INTERRUPT
		bool "Ramp down cpu clock and wait for interrupt"

	config MSM7X00A_IDLE_SLEEP_WAIT_FOR_INTERRUPT
		bool "Wait for interrupt"
endchoice

config MSM7X00A_IDLE_SLEEP_MODE
	int
	default 0 if MSM7X00A_IDLE_SLEEP_MODE_POWER_COLLAPSE_SUSPEND
	default 1 if MSM7X00A_IDLE_SLEEP_MODE_POWER_COLLAPSE
	default 2 if MSM7X00A_IDLE_SLEEP_MODE_APPS_SLEEP
	default 3 if MSM7X00A_IDLE_SLEEP_MODE_RAMP_DOWN_AND_WAIT_FOR_INTERRUPT
	default 4 if MSM7X00A_IDLE_SLEEP_WAIT_FOR_INTERRUPT

config MSM7X00A_IDLE_SLEEP_MIN_TIME
	int "Minimum idle time before sleep"
	default 20000000
	help
	  Minimum idle time in nanoseconds before entering low power mode.

config MSM7X00A_IDLE_SPIN_TIME
	int "Idle spin time before cpu ramp down"
	default 80000
	help
	  Spin time in nanoseconds before ramping down cpu clock and entering
	  any low power state.

menuconfig MSM_IDLE_STATS
	bool "Collect idle statistics"
	default y
	help
	  Collect idle statistics and export them in proc/msm_pm_stats.

if MSM_IDLE_STATS

config MSM_IDLE_STATS_FIRST_BUCKET
	int "First bucket time"
	default 62500
	help
	  Upper time limit in nanoseconds of first bucket.

config MSM_IDLE_STATS_BUCKET_SHIFT
	int "Bucket shift"
	default 2

config MSM_IDLE_STATS_BUCKET_COUNT
	int "Bucket count"
	default 10

config MSM_SUSPEND_STATS_FIRST_BUCKET
	int "First bucket time for suspend"
	default 1000000000
	help
	  Upper time limit in nanoseconds of first bucket of the
	  histogram.  This is for collecting statistics on suspend.

endif # MSM_IDLE_STATS

config CPU_HAS_L2_PMU
	bool "L2CC PMU Support"
	help
	 Select this if the L2 cache controller has a Performance Monitoring Unit.

config HTC_HEADSET
	tristate "HTC 2 Wire detection driver"
	default n
	help
	 Provides support for detecting HTC 2 wire devices, such as wired
	 headset, on the trout platform. Can be used with the msm serial
	 debugger, but not with serial console.

config TROUT_BATTCHG
	depends on MACH_TROUT && POWER_SUPPLY
	default y
	bool "Trout battery / charger driver"

config HTC_PWRSINK
	depends on MSM_SMD
	default n
	bool "HTC Power Sink Driver"

config QSD_SVS
	bool "QSD Static Voltage Scaling"
	depends on (MACH_QSD8X50_SURF || MACH_QSD8X50_FFA)
	default y
	select TPS65023
	help
	  Enables static voltage scaling using the TPS65023 PMIC.

config QSD_PMIC_DEFAULT_DCDC1
	int "PMIC default output voltage"
	depends on (MACH_QSD8X50_SURF || MACH_QSD8X50_FFA)
	default 1250
	help
	  This is the PMIC voltage at Linux kernel boot.

config MSM_FIQ_SUPPORT
	default y
	bool "Enable installation of an FIQ handler."

config MSM_SERIAL_DEBUGGER
	select MSM_FIQ_SUPPORT
	select KERNEL_DEBUGGER_CORE
	default n
	bool "FIQ Mode Serial Debugger"
	help
	  The FIQ serial debugger can accept commands even when the
	  kernel is unresponsive due to being stuck with interrupts
	  disabled.  Depends on the kernel debugger core in drivers/misc.

config MSM_SERIAL_DEBUGGER_CONSOLE
	depends on MSM_SERIAL_DEBUGGER
	default n
	bool "Console on FIQ Serial Debugger port"
	help
	  Enables a console so that printk messages are displayed on
	  the debugger serial port as the occur.

config MSM_PROC_COMM
	default y
	bool "Proc-Comm RPC Interface"
	help
	  Enables a lightweight communications interface to the
	  baseband processor.

config MSM_SMD
	bool "MSM Shared Memory Driver (SMD)"
	help
	  Support for the shared memory interface between the apps
	  processor and the baseband processor.  Provides access to
	  the "shared heap", as well as virtual serial channels
	  used to communicate with various services on the baseband
	  processor.

choice
	prompt "MSM Shared memory interface version"
	depends on MSM_SMD
	default MSM_SMD_PKG3 if ARCH_MSM_ARM11
	default MSM_SMD_PKG4 if ARCH_MSM_SCORPION

	config MSM_SMD_PKG3
	  bool
	    prompt "Package 3"

	config MSM_SMD_PKG4
	  bool
	    prompt "Package 4"
endchoice

config MSM_PCIE
	bool "MSM PCIe Controller driver"
	depends on PCI && PCI_MSI
	help
	  Enables the PCIe functionality by configures PCIe core on
	  MSM chipset and by enabling the ARM PCI framework extension.

config MSM_RPC_SDIO_XPRT
	depends on MSM_SDIO_AL
	default y
	bool "MSM SDIO XPRT Layer"
	help
	  SDIO Transport Layer for RPC Rouer

config MSM_RPC_SDIO_DEBUG
	depends on MSM_RPC_SDIO_XPRT
	default y
	bool "MSM SDIO XPRT debug support"
	help
	  Support for debugging SDIO XPRT

config MSM_SMD_DEBUG
	depends on MSM_SMD
	default y
	bool "MSM SMD debug support"
	help
	  Support for debugging the SMD for communication
	  between the ARM9 and ARM11

config MSM_SDIO_AL
	depends on ((ARCH_MSM7X30 || MACH_MSM8X60_FUSN_FFA || MACH_TYPE_MSM8X60_FUSION) && HAS_WAKELOCK)
	default y
	tristate "SDIO-Abstraction-Layer"
	help
	  Support MSM<->MDM Communication over SDIO bus.
	  MDM SDIO-Client should have pipes support.

config MSM_SDIO_DMUX
	bool "SDIO Data Mux Driver"
	depends on MSM_SDIO_AL
	default n
	help
	  Support Muxed Data Channels over SDIO interface.

config MSM_BAM_DMUX
	bool "BAM Data Mux Driver"
	depends on SPS
	default n
	help
	  Support Muxed Data Channels over BAM interface.
	  BAM has a limited number of pipes.  This driver
	  provides a means to support more logical channels
	  via muxing than BAM could without muxing.

config MSM_N_WAY_SMD
	depends on (MSM_SMD && !(ARCH_MSM7X01A))
	default y
	bool "MSM N-WAY SMD support"
	help
	  Supports APPS-QDSP SMD communication along with
	  normal APPS-MODEM SMD communication.

config MSM_N_WAY_SMSM
	depends on (MSM_SMD && !(ARCH_MSM7X01A))
	default y
	bool "MSM N-WAY SMSM support"
	help
	  Supports APPS-QDSP SMSM communication along with
	  normal APPS-MODEM SMSM communication.

config MSM_SMP2P
	bool "SMSM Point-to-Point (SMP2P)"
	depends on MSM_SMD
	help
	  Provide point-to-point remote signaling support.
	  SMP2P enables transferring 32-bit values between
	  the local and a remote system using shared
	  memory and interrupts.  A client can open multiple
	  32-bit values by specifying a unique string and
	  remote processor ID.

config MSM_SMP2P_TEST
	bool "SMSM Point-to-Point Test"
	depends on MSM_SMP2P
	help
	  Enables loopback and unit testing support for
	  SMP2P.  Loopback support is used by other
	  processors to do unit testing.  Unit tests
	  are used to verify the local and remote
	  implementations.

config MSM_RESET_MODEM
	tristate "Reset Modem Driver"
	depends on MSM_SMD
	default y
	help
	  Allows the user to reset the modem through a device node.

config MSM_SMD_LOGGING
	depends on MSM_SMD
	default y
	bool "MSM Shared Memory Logger"
	help
	  This option exposes the shared memory logger at /dev/smem_log
	  and a debugfs node named smem_log.

	  If in doubt, say yes.

config MSM_IPC_LOGGING
	bool "MSM Debug Logging for IPC Drivers"
	help
	  This option allows the debug logging for IPC Drivers.

	  If in doubt, say no.

config MSM_SMD_NMEA
	bool "NMEA GPS Driver"
	depends on MSM_SMD
	default y
	help
	  Enable this to support the NMEA GPS device.

	  If in doubt, say yes.

config MSM_SDIO_TTY
	bool "SDIO TTY Driver"
	depends on MSM_SDIO_AL
	default n
	help
	  Provides a TTY driver SDIO TTY
	  This driver can be used by user space
	  applications for passing data through the
	  SDIO interface.

config MSM_SMD_TTY
	bool "SMD TTY Driver"
	depends on MSM_SMD
	default y
	help
	  Provides TTY interfaces to interact with the modem.

	  If in doubt, say yes.

config MSM_SMD_QMI
	bool "SMD QMI Driver"
	depends on MSM_SMD
	default y
	help
	  Manages network data connections.

	  If in doubt, say yes.

config MSM_SMD_PKT
	bool "SMD Packet Driver"
	depends on MSM_SMD
	default y
	help
	  Provides a binary SMD non-muxed packet port interface.

	  If in doubt, say yes.

config MSM_SDIO_CMUX
	bool "SDIO CMUX Driver"
	depends on MSM_SDIO_AL
	default n
	help
	  Provides a Muxed port interface over SDIO QMI

config MSM_DSPS
	bool "Sensors DSPS driver"
	depends on (MSM_PIL && (ARCH_MSM8X60 || ARCH_MSM8960))
	default n
	help
	  Provides user-space interface to the sensors manager
	  to turn on/off the Sensors Processor system clocks.
	  It is the DSPS responsibility to turn on/off the sensors
	  themself.
	  The number of clocks and their name may vary between targets.
	  It also triggers the PIL to load the DSPS firmware.

config MSM_SDIO_CTL
	bool "SDIO CTL Driver"
	depends on MSM_SDIO_CMUX
	default n
	help
	  Provides a binary SDIO control port interface.

config MSM_ONCRPCROUTER
	depends on MSM_SMD
	default n
	bool "MSM ONCRPC router support"
	help
	  Support for the MSM ONCRPC router for communication between
	  the ARM9 and ARM11

config MSM_IPC_ROUTER
	depends on NET
	default n
	bool "MSM IPC Router support"
	help
	  Support for the MSM IPC Router for communication between
	  the APPs and the MODEM

config MSM_IPC_ROUTER_SMD_XPRT
	depends on MSM_SMD
	depends on MSM_IPC_ROUTER
	default n
	bool "MSM SMD XPRT Layer"
	help
	  SMD Transport Layer for IPC Router

config MSM_IPC_ROUTER_HSIC_XPRT
	depends on USB_QCOM_IPC_BRIDGE
	depends on MSM_IPC_ROUTER
	bool "MSM HSIC XPRT Layer"
	help
	  HSIC Transport Layer that enables off-chip communication of
	  IPC Router. When the HSIC endpoint becomes available, this layer
	  registers the transport with IPC Router and enable message
	  exchange.

config MSM_IPC_ROUTER_SECURITY
	depends on MSM_IPC_ROUTER
	bool "MSM IPC Router Security support"
	help
	  This feature of IPC Router will enforce security rules
	  configured by a security script from the user-space. IPC Router
	  once configured with the security rules will ensure that the
	  sender of the message to a service belongs to the relevant
	  Linux group as configured by the security script.

config MSM_QMI_INTERFACE
	depends on MSM_IPC_ROUTER
	depends on QMI_ENCDEC
	default n
	bool "MSM QMI Interface Library"
	help
	  Library to send and receive QMI messages over IPC Router.
	  This library provides interface functions to the kernel drivers
	  to perform QMI message marshaling and transport them over IPC
	  Router.

config MSM_TEST_QMI_CLIENT
	depends on MSM_QMI_INTERFACE
	bool "MSM TEST QMI CLIENT"
	help
	  The sample QMI client provides a test code for QMI usage. The
	  test_service client driver uses QMI interface library to send
	  and receive QMI messages over IPC Router. The test code sends
	  a synchronous QMI request to the test_service and handles the
	  QMI responses.

config MSM_ONCRPCROUTER_DEBUG
	depends on MSM_ONCRPCROUTER
	default y
	bool "MSM debug ONCRPC router support"
	help
	  Support for debugging the ONCRPC router for communication
	  between the ARM9 and ARM11

config MSM_RPC_LOOPBACK_XPRT
	depends on MSM_ONCRPCROUTER
	default n
	bool "MSM RPC local routing support"
	help
	  Support for routing RPC messages between APPS clients
	  and APPS servers.  Helps in testing APPS RPC framework.

config MSM_RPCSERVER_TIME_REMOTE
	depends on MSM_ONCRPCROUTER && RTC_HCTOSYS
	default y
	bool "Time remote RPC server"
	help
	  The time remote server receives notification of time bases and
	  reports these events to registered callback functions.

config MSM_RPCSERVER_WATCHDOG
	depends on MSM_ONCRPCROUTER
	default y
	bool "Watchdog RPC server"
	help
	  The dog_keepalive server handles watchdog events.

config MSM_RPC_WATCHDOG
	depends on MSM_ONCRPCROUTER
	default n
	bool "Watchdog RPC client"
	help
	  The dog_keepalive client module.

config MSM_RPC_PING
	depends on MSM_ONCRPCROUTER && DEBUG_FS
	default m
	bool "MSM rpc ping"
	help
	  Implements MSM rpc ping test module.

config MSM_RPC_PROC_COMM_TEST
	depends on DEBUG_FS && MSM_PROC_COMM
	default m
	bool "MSM rpc proc comm test"
	help
	  Implements MSM rpc proc comm test module.

config MSM_RPC_OEM_RAPI
	depends on MSM_ONCRPCROUTER
	default m
	bool "MSM oem rapi"
	help
	  Implements MSM oem rapi client module.

config MSM_RPCSERVER_HANDSET
	depends on MSM_ONCRPCROUTER
	default y
	bool "Handset events RPC server"
	help
	  Support for receiving handset events like headset detect,
	  headset switch and clamshell state.

config MSM_RMT_STORAGE_CLIENT
	depends on (ARCH_MSM && MSM_ONCRPCROUTER)
	default n
	bool "Remote Storage RPC client"
	help
	  Provide RPC mechanism for remote processors to access storage
	  device on apps processor.

config MSM_RMT_STORAGE_CLIENT_STATS
	depends on (MSM_RMT_STORAGE_CLIENT && DEBUG_FS)
	default n
	bool "Remote storage RPC client performance statistics"
	help
	  Collects performance statistics and shows this information
	  through a debugfs file rmt_storage_stats.

config MSM_SDIO_SMEM
        depends on MSM_SDIO_AL
        default n
        bool "SDIO SMEM for remote storage"
        help
          Copies data from remote MDM9K memory to local MSM8x60
	  memory. Used by remote storage client to shadow
	  MDM9K filesystem.

config MSM_DALRPC
	bool "DAL RPC support"
	default n
	help
	  Supports RPC calls to DAL devices on remote processor cores.

config MSM_DALRPC_TEST
	tristate "DAL RPC test module"
	depends on (MSM_DALRPC && DEBUG_FS)
	default m
	help
	  Exercises DAL RPC calls to QDSP6.

if CPU_FREQ_MSM

config MSM_CPU_FREQ_SET_MIN_MAX
	bool "Set Min/Max CPU frequencies."
	default n
	help
	  Allow setting min and max CPU frequencies. Sysfs can be used
	  to override these values.

config MSM_CPU_FREQ_MAX
	int "Max CPU Frequency"
	depends on MSM_CPU_FREQ_SET_MIN_MAX
	default 384000

config MSM_CPU_FREQ_MIN
	int "Min CPU Frequency"
	depends on MSM_CPU_FREQ_SET_MIN_MAX
	default 245760

endif # CPU_FREQ_MSM

config MSM_AVS_HW
	bool "Enable Adaptive Voltage Scaling (AVS)"
	default n
	help
	  Enable AVS hardware to fine tune voltage at each frequency. The
	  AVS hardware blocks associated with each Qualcomm ARMv7 cores can
	  fine tune the voltages based on the feedback from the ring
	  oscillators.

config MSM_HW3D
	tristate "MSM Hardware 3D Register Driver"
	help
	  Provides access to registers needed by the userspace OpenGL|ES
	  library.

config MSM_ADSP
	depends on (ARCH_MSM7X01A || ARCH_MSM7X25 || ARCH_MSM7X27)
	tristate "MSM ADSP driver"
	default y
	help
	  Provides access to registers needed by the userspace aDSP library.

config ADSP_RPC_VER
	hex
	default 0x30002 if (ARCH_MSM7X27 || (ARCH_MSM7X25 && AMSS_7X25_VERSION_2009))
	default 0x30001 if (ARCH_MSM7X01A || (ARCH_MSM7X25 && AMSS_7X25_VERSION_2008))
	depends on MSM_ADSP
	help
	 Select proper ADSP RPC version
choice
	prompt "ADSP RPC version"

	default AMSS_7X25_VERSION_2009

	config AMSS_7X25_VERSION_2009
		bool "2.0.09"

	config AMSS_7X25_VERSION_2008
		bool "2.0.08"
endchoice

config MSM7KV2_AUDIO
	bool "MSM7K v2 audio"
	depends on ARCH_MSM7X30
	default y
	help
	  Enables QDSP5V2-based audio drivers for audio playbacks and
	  voice call.

config MSM_ADSP_REPORT_EVENTS
	bool "Report modem events from the DSP"
	default y
	depends on (MSM_ADSP || MSM7KV2_AUDIO)
	help
	  Normally, only messages from the aDSP are reported to userspace.
	  With this option, we report events from the aDSP as well.

config MSM_QDSP6
	tristate "QDSP6 support"
	depends on ARCH_QSD8X50
	default y
	help
	  Enable support for qdsp6. This provides audio and video functionality.

config MSM8X60_AUDIO
	tristate "MSM8X60 audio support"
	depends on ARCH_MSM8X60
	default y
	help
	  Enable support for qdsp6v2. This provides audio functionality.

config MSM8X60_FTM_AUDIO_DEVICES
	bool "MSM8X60 audio factory test mode support"
	depends on MSM8X60_AUDIO
	help
	  Enable support audio factory test mode devices.  This is used
	  in a production line environment.

config RTAC
	bool "MSM8K real-time audio calibration support"
	default y
	help
	  Enable support for rtac. This enables calibration during
	  audio operation

config MSM7X27A_AUDIO
	bool "MSM7X27A audio support"
	depends on ARCH_MSM7X27A && MSM_ADSP
	default n
	help
	  Enable support for 7x27a. This provides audio functionality.

config MSM_PROC_COMM_REGULATOR
	bool
	depends on MSM_PROC_COMM && REGULATOR
	help
	  Enable regulator framework support for regulators managed by PMLIB
	  on the modem, and controlled through proccomm calls.

config MSM_VREG_SWITCH_INVERTED
	bool "Reverse vreg switch polarity"
	default n
	help
	  Reverses the enable and disable for vreg switch.

config MSM_DMA_TEST
	tristate "MSM DMA test module"
	default m
	help
	  Intended to be compiled as a module.  Provides a device node
	  and ioctls for testing the MSM dma system.

config WIFI_CONTROL_FUNC
	bool "Enable WiFi control function abstraction"
	help
	  Enables Power/Reset/Carddetect function abstraction

config WIFI_MEM_PREALLOC
	depends on WIFI_CONTROL_FUNC
	bool "Preallocate memory for WiFi buffers"
	help
	  Preallocates memory buffers for WiFi driver

config QSD_AUDIO
	bool "QSD audio"
	depends on ARCH_MSM_SCORPION && MSM_DALRPC && !MSM_SMP
	default y
	help
	  Provides PCM, MP3, and AAC audio playback.

config AUDIO_AAC_PLUS
	depends on (MSM_ADSP || QSD_AUDIO || MSM7KV2_AUDIO)
	bool "AAC+ Audio"
	default y
	help
	  Provides AAC+ decoding

config AUDIO_ENHANCED_AAC_PLUS
	depends on AUDIO_AAC_PLUS
	bool "Enhanced AAC+ Audio"
	default y
	help
	  Provides Enhanced AAC+ decoding

config SURF_FFA_GPIO_KEYPAD
	bool "MSM SURF/FFA GPIO keypad"
	depends on INPUT_GPIO = "y"
	default y
	help
	  Select if the GPIO keypad is attached.

config MSM_SLEEP_TIME_OVERRIDE
	bool "Allow overriding suspend/sleep time with PM module parameter"
	default y
	help
	  Enable the module parameter sleep_time_override. Specified
	  in units of seconds, it overwrites the normal sleep time of
	  suspend. The feature is required for automated power management
	  testing.

config MSM_MEMORY_LOW_POWER_MODE
	bool "Control the low power modes of memory"
	default n
	help
	  The application processor controls whether memory should enter
	  which low power mode.

choice
	prompt "Default Memory Low Power Mode during Idle"
	depends on MSM_MEMORY_LOW_POWER_MODE
	default MSM_MEMORY_LOW_POWER_MODE_IDLE_ACTIVE
	help
	  Selects the default low power mode of the memory during idle
	  sleep.

	config MSM_MEMORY_LOW_POWER_MODE_IDLE_ACTIVE
		bool "Memory active"

	config MSM_MEMORY_LOW_POWER_MODE_IDLE_RETENTION
		bool "Memory in retention"

	config MSM_MEMORY_LOW_POWER_MODE_IDLE_DEEP_POWER_DOWN
		bool "Memory in deep power down"
endchoice

choice
	prompt "Default Memory Low Power Mode during Suspend"
	depends on MSM_MEMORY_LOW_POWER_MODE
	default MSM_MEMORY_LOW_POWER_MODE_SUSPEND_ACTIVE
	help
	  Selects the default low power mode of the memory during suspend
	  sleep.

	config MSM_MEMORY_LOW_POWER_MODE_SUSPEND_ACTIVE
		bool "Memory active"

	config MSM_MEMORY_LOW_POWER_MODE_SUSPEND_RETENTION
		bool "Memory in retention"

	config MSM_MEMORY_LOW_POWER_MODE_SUSPEND_DEEP_POWER_DOWN
		bool "Memory in deep power down"
endchoice

choice
	prompt "Power management timeout action"
	default MSM_PM_TIMEOUT_HALT
	help
	  Selects the Application Processor's action when Power Management
	  times out waiting for Modem's handshake.

	config MSM_PM_TIMEOUT_HALT
		bool "Halt the Application Processor"

	config MSM_PM_TIMEOUT_RESET_MODEM
		bool "Reset the Modem Processor"

	config MSM_PM_TIMEOUT_RESET_CHIP
		bool "Reset the entire chip"
endchoice

config MSM_IDLE_WAIT_ON_MODEM
	int "Wait for Modem to become ready for idle power collapse"
	default 0
	help
	  If Modem is not ready to handle Application Processor's request
	  for idle power collapse, wait the number of microseconds in case
	  Modem becomes ready soon.

config MSM_RPM_REGULATOR
	bool "RPM regulator driver"
	depends on MSM_RPM && REGULATOR
	help
	  Compile in support for the RPM regulator driver, used for setting
	  voltages and other parameters of the various power rails supplied
	  by some Qualcomm PMICs.

config MSM_RPM_REGULATOR_SMD
	bool "SMD RPM regulator driver"
	depends on REGULATOR
	depends on OF
	depends on MSM_RPM_SMD
	help
	  Compile in support for the SMD RPM regulator driver which is used for
	  setting voltages and other parameters of the various power rails
	  supplied by some Qualcomm PMICs.  The SMD RPM regulator driver should
	  be used on systems which contain an RPM which communicates with the
	  application processor over SMD.

config MSM_SPM_REGULATOR
	bool "SPM regulator driver"
	depends on REGULATOR && SPMI && OF_SPMI
	help
	  Enable support for the SPM regulator driver which is used for
	  setting voltages of processor supply regulators via the SPM module
	  found inside of the MSM chips.  The SPM regulator driver can be used
	  on MSM systems where the APSS processor cores are supplied by their
	  own PMIC regulator.

config MSM_SMCMOD
	tristate "Secure Monitor Call (SMC) Module"
	default n
	depends on (ION && ION_MSM && MSM_SCM)
	help
	  Enable support for smcmod driver. This driver provides a mechanism
	  to execute the Secure Monitor Call (SMC) to switch from non-secure
	  to secure execution in the fsm9xxx and msm8x26 targets. This module
	  utilizes Ion for buffer management.

config MSM_SUBSYSTEM_RESTART
	bool "MSM Subsystem Restart"
	help
	  This option enables the MSM subsystem restart framework.

	  The MSM subsystem restart framework provides support to boot,
	  shutdown, and restart subsystems with a reference counted API.
	  It also notifies userspace of transitions between these states via
	  sysfs.

config MSM_SYSMON_COMM
	bool "MSM System Monitor communication support"
	depends on MSM_SMD && MSM_SUBSYSTEM_RESTART
	help
	  This option adds support for MSM System Monitor library, which
	  provides an API that may be used for notifying subsystems within
	  the SoC about other subsystems' power-up/down state-changes.

config MSM_PIL
	bool "Peripheral image loading"
	select FW_LOADER
	default n
	help
	  Some peripherals need to be loaded into memory before they can be
	  brought out of reset.

	  Say yes to support these devices.

config MSM_PIL_MODEM
	tristate "Modem (ARM11) Boot Support"
	depends on MSM_PIL && MSM_SUBSYSTEM_RESTART
	help
	  Support for booting and shutting down ARM11 Modem processors.

config MSM_PIL_QDSP6V3
	tristate "QDSP6v3 (Hexagon) Boot Support"
	depends on MSM_PIL && MSM_SUBSYSTEM_RESTART
	help
	  Support for booting and shutting down QDSP6v3 processors (hexagon).
	  The QDSP6 is a low power DSP used in audio software applications.

config MSM_PIL_LPASS_QDSP6V4
	tristate "LPASS QDSP6v4 (Hexagon) Boot Support"
	depends on MSM_SUBSYSTEM_RESTART
	help
	  Support for booting and shutting down QDSP6v4 processors (hexagon)
	  in low power audio subsystems. If you would like to record or
	  play audio then say Y here.

	  If unsure, say N.

config MSM_PIL_MODEM_QDSP6V4
	tristate "Modem QDSP6v4 (Hexagon) Boot Support"
	depends on MSM_SUBSYSTEM_RESTART
	help
	  Support for booting and shutting down QDSP6v4 processors (hexagon)
	  in modem subsystems. If you would like to make or receive phone
	  calls then say Y here.

	  If unsure, say N.

config MSM_PIL_LPASS_QDSP6V5
	tristate "LPASS QDSP6v5 (Hexagon) Boot Support"
	depends on MSM_PIL && MSM_SUBSYSTEM_RESTART
	help
	  Support for booting and shutting down QDSP6v5 (Hexagon) processors
	  in low power audio subsystems. This driver also monitors the ADSP
	  SMSM status bits and the ADSP's watchdog interrupt and restarts the
	  ADSP if the processor encounters a fatal error.

config MSM_PIL_MSS_QDSP6V5
	tristate "MSS QDSP6v5 (Hexagon) Boot Support"
	depends on MSM_PIL && MSM_SUBSYSTEM_RESTART
	help
	  Support for booting and shutting down QDSP6v5 (Hexagon) processors
	  in modem subsystems. If you would like to make or receive phone
	  calls then say Y here.

	  If unsure, say N.

config MSM_PIL_RIVA
	tristate "RIVA (WCNSS) Boot Support"
	depends on MSM_PIL && MSM_SUBSYSTEM_RESTART
	help
	  Support for booting and shutting down the RIVA processor (WCNSS).
	  Riva is the wireless subsystem processor used in bluetooth, wireless
	  LAN, and FM software applications.

config MSM_PIL_TZAPPS
	tristate "TZApps Boot Support"
	depends on MSM_PIL && MSM_SUBSYSTEM_RESTART
	help
	  Support for booting and shutting down TZApps.

	  TZApps is an image that runs in the secure processor state. It is
	  used to decrypt data and perform secure operations on the behalf of
	  the kernel.

config MSM_PIL_DSPS
	tristate "DSPS Boot Support"
	depends on MSM_PIL && MSM_SUBSYSTEM_RESTART
	help
	  Support for booting and shutting down ARM7 DSPS processors.

	  DSPS is a sensors offloading processor used for applications such
	  as rotation detection, temperature, etc.

config MSM_PIL_VIDC
	tristate "Video Core Secure Boot Support"
	depends on MSM_PIL && MSM_SUBSYSTEM_RESTART
	help
	  Support for authenticating the video core image.

config MSM_PIL_VENUS
	tristate "VENUS (Video) Boot Support"
	depends on MSM_PIL && MSM_SUBSYSTEM_RESTART
	help
	  Support for booting and shutting down the VENUS processor (Video).
	  Venus is the Video subsystem processor used for video codecs.

config MSM_PIL_GSS
	tristate "GSS (Cortex A5) Boot Support"
	depends on MSM_PIL && MSM_SUBSYSTEM_RESTART
	help
	  Support for booting and shutting down Cortex A5 processors which run
	  GPS subsystem firmware.

config MSM_PIL_PRONTO
	tristate "PRONTO (WCNSS) Boot Support"
	depends on MSM_PIL && MSM_SUBSYSTEM_RESTART
	help
	  Support for booting and shutting down the PRONTO processor (WCNSS).
	  PRONTO is the wireless subsystem processor used in bluetooth, wireless
	  LAN, and FM software applications.

config MSM_SCM
	bool "Secure Channel Manager (SCM) support"
	default n

config SCORPION_Uni_45nm_BUG
	bool "Scorpion Uni 45nm(SC45U): Workaround for ICIMVAU and BPIMVA"
	depends on ARCH_MSM7X30 || (ARCH_QSD8X50 && MSM_SOC_REV_A)
	default y
	help
	  Invalidating the Instruction Cache by Modified Virtual Address to PoU and
	  invalidating the Branch Predictor Array by Modified Virtual Address can
	  create invalid entries in the TLB with the wrong ASID values on Scorpion
	  Uniprocessor 45nm (SC45U) cores. This option enables the recommended software
	  workaround for Scorpion Uniprocessor 45nm cores.

	  This bug is not applicable to any ScorpionMP or Scorpion Uni 65nm(SC65U) cores.

config MSM_BUSPM_DEV
	tristate "MSM Bus Performance Monitor Kernel Module"
	depends on MSM_BUS_SCALING
	default n
	help
	  This kernel module is used to mmap() hardware registers for the
	  performance monitors, counters, etc. The module can also be used to
	  allocate physical memory which is used by bus performance hardware to
	  dump performance data.

config MSM_TZ_LOG
	tristate "MSM Trust Zone (TZ) Log Driver"
	depends on DEBUG_FS
	help
	  This option enables a driver with a debugfs interface for messages
	  produced by the Secure code (Trust zone). These messages provide
	  diagnostic information about TZ operation.

config MSM_RPM_LOG
	tristate "MSM Resource Power Manager Log Driver"
	depends on DEBUG_FS
	depends on MSM_RPM || MSM_RPM_SMD
	default n
	help
	  This option enables a driver which can read from a circular buffer
	  of messages produced by the RPM. These messages provide diagnostic
	  information about RPM operation. The driver outputs the messages
	  via a debugfs node.

config MSM_RPM_STATS_LOG
	tristate "MSM Resource Power Manager Stat Driver"
	depends on DEBUG_FS
	depends on MSM_RPM || MSM_RPM_SMD
	default n
	  help
	  This option enables a driver which reads RPM messages from a shared
	  memory location. These messages provide statistical information about
	  the low power modes that RPM enters. The drivers outputs the message
	  via a debugfs node.

config MSM_RPM_RBCPR_STATS_LOG
        tristate "MSM Resource Power Manager RPBCPR Stat Driver"
        depends on DEBUG_FS
        depends on MSM_RPM
          help
          This option enables a driver which reads RPM messages from a shared
          memory location. These messages provide statistical information about
          RBCPR (Rapid Bridge Core Power Reduction) information . The drivers
          outputs the message via a debugfs node.

config MSM_RPM_RBCPR_STATS_V2_LOG
        tristate "MSM Resource Power Manager RPBCPR Stat Driver"
        depends on DEBUG_FS
          help
          This option enables v2 of the rpmrbcpr_stats driver which reads RPM
          memory for statistics pertaining to RPM's RBCPR(Rapid Bridge Core
          Power Reduction) driver. The drivers outputs the message via a
          debugfs node.

config MSM_DIRECT_SCLK_ACCESS
	bool "Direct access to the SCLK timer"
	default n

config IOMMU_API
       bool

config MSM_GPIOMUX
	bool

config MSM_SECURE_IO
	bool

config MSM_NATIVE_RESTART
	bool

config MSM_MODEM_RESTART
	bool

config MSM_PM2
	depends on PM
	bool

config MSM_PM
	depends on PM
	bool

config MSM_EVENT_TIMER
	bool "Event timer"
	help
		This option enables a modules that manages a list of event timers that
		need to be monitored by the PM. The enables the PM code to monitor
		events that require the core to be awake and ready to handle the
		event.

config MSM_NOPM
	default y if !PM
	bool

config MSM_BUS_SCALING
	bool "Bus scaling driver"
	default n

config MSM_BUS_RPM_MULTI_TIER_ENABLED
	bool "RPM Multi-tiering Configuration"
	depends on MSM_BUS_SCALING

config MSM_WATCHDOG
	bool "MSM Watchdog Support"
	depends on ARCH_MSM8X60 || ARCH_MSM8960 || ARCH_MSM9615 || ARCH_FSM9XXX
	help
		This enables the watchdog as is present on 8x60. Currently we use
		core 0's watchdog, and reset the entire SoC if it times out. It does
		not run during the bootup process, so it will not catch any early
		lockups.

config MSM_WATCHDOG_V2
	bool "MSM Watchdog Support"
	help
		This enables the watchdog module. It causes kernel panic if the
		watchdog times out. It allows for detection of cpu hangs and
		deadlocks. It does not run during the bootup process, so it will
		not catch any early lockups.

config MSM_MEMORY_DUMP
	bool "MSM Memory Dump Support"
	help
		This enables memory dump feature. It allows various client
		subsystems to register respective dump regions. At the time
		of deadlocks or cpu hangs these dump regions are captured to
		give a snapshot of the system at the time of the crash.

config MSM_DLOAD_MODE
	bool "Enable download mode on crashes"
	default n
	help
		This makes the SoC enter download mode when it resets
		due to a kernel panic. Note that this doesn't by itself
		make the kernel reboot on a kernel panic - that must be
		enabled via another mechanism.

config MSM_JTAG
	bool "Debug and ETM trace support across power collapse"
	help
	  Enables support for debugging (specifically breakpoints) and ETM
	  processor tracing across power collapse both for JTag and OS hosted
	  software running on the target. Enabling this will ensure debug
	  and ETM registers are saved and restored across power collapse.

	  If unsure, say 'N' here to avoid potential power, performance and
	  memory penalty.

config MSM_JTAG_MM
	bool "Debug and ETM trace support across power collapse using memory mapped access"
	help
	  Enables support for debugging (specifically breakpoints) and ETM
	  processor tracing across power collapse both for JTag and OS hosted
	  software running on the target. Enabling this will ensure debug
	  and ETM registers are saved and restored across power collapse.

	  Required on targets on which cp14 access to debug and ETM registers is
	  not permitted and so memory mapped access is necessary.

	  If unsure, say 'N' here to avoid potential power, performance and
	  memory penalty.

config MSM_ETM
	tristate "Enable MSM ETM and ETB"
	depends on ARCH_MSM8X60
	select MSM_JTAG
	help
	  Enables embedded trace collection on MSM8660

config MSM_SLEEP_STATS_DEVICE
	bool "Enable exporting of MSM sleep device stats to userspace"

config MSM_RUN_QUEUE_STATS
	bool "Enable collection and exporting of MSM Run Queue stats to userspace"
	default n
	help
	 This option enalbes statistics collection on Run Queue. A daemon
         in user mode, called MPDecision will be using this data to decide
         on when to switch off/on the other cores.

config MSM_STANDALONE_POWER_COLLAPSE
       bool "Enable standalone power collapse"
       default n

config MSM_GSBI9_UART
	bool "Enable GSBI9 UART device"
	default n
	help
	  This enables GSBI9 configured into UART.

config MSM_SHARED_GPIO_FOR_UART2DM
	bool "Use shared GPIOs into UART mode"
	depends on (ARCH_MSM7X27A && !MMC_MSM_SDC3_8_BIT_SUPPORT && !MMC_MSM_SDC4_SUPPORT)
	help
	  This option configures GPIO muxed with SDC4/MMC3
	  8-bit mode into UART mode. It is used for serial
	  console on UART2DM. Say Y if you want to have
	  serial console on UART2DM.

config MSM_SHOW_RESUME_IRQ
	bool "Enable logging of interrupts that could have caused resume"
	depends on (ARM_GIC || PMIC8058)
	default y if PMIC8058
	default n
	help
		This option logs wake up interrupts that have triggered just before
		the resume loop unrolls. Say Y if you want to debug why the system
		resumed.

config BT_MSM_PINTEST
	tristate "MSM Bluetooth Pin Connectivity Test"
	depends on ((ARCH_MSM8X60 || ARCH_MSM7X27A) && DEBUG_FS)
        default n
	help
	  Bluetooth MSM Pin Connectivity test module.
	  This driver provides support for verifying the MSM to BT pin
	  connectivity.

config BT_BCM4335
	bool "Enable BCM4335 driver"
	default n
	help
	  Adds BCM4335 RFKILL driver for Broadcom BCM4335 chipset.
	  default is n.

config BT_BCM4339
	bool "Enable BCM4339 driver"
	default n
	help
	  Adds BCM4339 RFKILL driver for Broadcom BCM4339 chipset.
	  default is n.

config BT_BCM4354
	bool "Enable BCM4354 driver"
	default n
	help
	  Adds BCM4354 RFKILL driver for Broadcom BCM4354 chipset.
	  default is n.

config MSM_FAKE_BATTERY
		depends on POWER_SUPPLY
		default n
		bool "MSM Fake Battery"
		help
		 Enables MSM fake battery driver.

config MSM_QDSP6_APR
	bool "Audio QDSP6 APR support"
	depends on MSM_SMD
	default n
	help
	  Enable APR IPC protocol support between
	  application processor and QDSP6. APR is
	  used by audio driver to configure QDSP6's
	  ASM, ADM and AFE.

config MSM_QDSP6_APRV2
	bool "Audio QDSP6 APRv2 support"
	depends on MSM_SMD
	default n
	help
	  Enable APRv2 IPC protocol support between
	  application processor and QDSP6. APR is
	  used by audio driver to configure QDSP6's
	  ASM, ADM and AFE.

config MSM_QDSP6_CODECS
	bool "Audio Codecs on QDSP6 APR "
	depends on MSM_SMD
	default n
	help
	  Enable Audio codecs with APR IPC protocol support between
	  application processor and QDSP6. APR is
	  used by audio driver to configure QDSP6's
	  ASM, ADM and AFE.

config MSM_QDSP6V2_CODECS
	bool "Audio QDSP6V2 APR support"
	depends on MSM_SMD
	help
	  Enable Audio codecs with APR IPC protocol support between
	  application processor and QDSP6 for B-family. APR is
	  used by audio driver to configure QDSP6's
	  ASM, ADM and AFE.

config MSM_AUDIO_QDSP6
        bool "QDSP6 HW Audio support"
        select SND_SOC_MSM_QDSP6_INTF
        default n
        help
          Enable HW audio support in QDSP6.
          QDSP6 can support HW encoder & decoder and audio processing

config MSM_AUDIO_QDSP6V2
        bool "QDSP6V2 HW Audio support"
        select SND_SOC_MSM_QDSP6V2_INTF
        help
          Enable HW audio support in QDSP6V2.
          QDSP6V2 can support HW encoder & decoder and
          audio processing. It will enable support for
          AAC, AMRNB, AMRWB, EVRC, MP3, QCELP among
          others.

config MSM_ADSP_LOADER
        tristate "ADSP loader support"
        select SND_SOC_MSM_APRV2_INTF
	depends on MSM_AUDIO_QDSP6V2
        help
          Enable ADSP image loader.
	  The ADSP loader brings ADSP out of reset
	  for the platforms that use APRv2.
	  Say M if you want to enable this module.

config MSM_ULTRASOUND_A
	bool "QDSP6 HW Ultrasound support"
	help
          Enable HW ultrasound support in QDSP6.
          QDSP6 can support HW encoder & decoder and
          ultrasound processing. It will enable
          ultrasound data paths between
          HW and services, calculating input events
          upon the  ultrasound data.

config MSM_ULTRASOUND_B
	bool "QDSP6V2 HW Ultrasound support"
	help
	  Enable HW Ultrasound support in QDSP6V2.
	  QDSP6V2 can support HW encoder & decoder and
	  ultrasound processing. It will enable
	  ultrasound data paths between
	  HW and services, calculating input events
	  upon the ultrasound data.

config MSM_RPC_VIBRATOR
	bool "RPC based MSM Vibrator Support"
	depends on MSM_ONCRPCROUTER
	help
	  Enable the vibrator support on MSM over RPC. The vibrator
	  is connected on the PMIC. Say Y if you want to enable this
	  feature.

config PM8XXX_RPC_VIBRATOR
	bool "RPC based Vibrator on PM8xxx PMICs"
	depends on MSM_RPC_VIBRATOR
	help
	  Enable the vibrator support on MSM over RPC. The vibrator
	  is connected on the PM8XXX PMIC. Say Y if you want to enable
	  this feature.

config MSM_SPM_V1
	bool "Driver support for SPM Version 1"
	help
	  Enables the support for Version 1 of the SPM driver. SPM hardware is
	  used to manage the processor power during sleep. The driver allows
	  configuring SPM to allow different power modes.

config MSM_SPM_V2
	bool "Driver support for SPM Version 2"
	help
	  Enables the support for Version 2 of the SPM driver. SPM hardware is
	  used to manage the processor power during sleep. The driver allows
	  configuring SPM to allow different power modes.

config MSM_L2_SPM
	bool "SPM support for L2 cache"
	depends on MSM_SPM_V2
	help
	  Enable SPM driver support for L2 cache. Some MSM chipsets allow
	  control of L2 cache low power mode with a Subsystem Power manager.
	  Enabling this driver allows configuring L2 SPM for low power modes
	  on supported chipsets.

config MSM_MULTIMEDIA_USE_ION
	bool "Multimedia suport using Ion"
	depends on ION_MSM
	help
	  Enable support for multimedia drivers using Ion for buffer management
	  instead of pmem. Selecting this may also involve userspace
	  dependencies as well.

config MSM_OCMEM
	bool "MSM On-Chip memory driver (OCMEM)"
	help
	  Enable support for On-Chip Memory available on certain MSM chipsets.
	  OCMEM is a low latency, high performance pool shared by subsystems.

config MSM_OCMEM_LOCAL_POWER_CTRL
	bool "OCMEM Local Power Control"
	depends on MSM_OCMEM
	help
	  Enable direct power management of the OCMEM core by the
	  OCMEM driver. By default power management is delegated to
	  the RPM. Selecting this option causes the OCMEM driver to
	  directly handle the various macro power transitions.

config MSM_OCMEM_DEBUG
	bool "OCMEM Debug Support"
	depends on MSM_OCMEM
	help
	  Enable debug options for On-chip Memory (OCMEM) driver.
	  Various debug options include memory, power and latency.
	  Choosing one of these options allows debugging of each
	  individual subsystem separately.

config MSM_OCMEM_NONSECURE
	bool "OCMEM Non Secure Mode"
	depends on MSM_OCMEM_DEBUG
	help
	  Disable OCMEM interaction with secure processor.
	  By default OCMEM is secured and accesses for each master
	  is requested by the OCMEM driver. Selecting this option
	  causes the OCMEM memory to be in non-secure state unless
	  its locked down by the secure processor.

config MSM_OCMEM_POWER_DEBUG
	bool "OCMEM Power Debug Support"
	depends on MSM_OCMEM_DEBUG
	help
	  Enable debug support for OCMEM power management.
	  This adds support for verifying all power management
	  related operations of OCMEM. Both local power management
	  and RPM assisted power management operations are supported.

config MSM_OCMEM_DEBUG_ALWAYS_ON
	bool "Keep OCMEM always turned ON"
	depends on MSM_OCMEM_DEBUG
	help
	  Always vote for all OCMEM clocks and keep all OCMEM
	  macros turned ON and never allow them to be turned OFF.
	  Both local power management and RPM assisted power modes
	  are supported for individual macro power control operations.

config MSM_OCMEM_POWER_DISABLE
	bool "OCMEM Disable Power Control"
	depends on MSM_OCMEM
	help
	  Disable all OCMEM power management.
	  Skip all OCMEM power operations that turn ON or
	  turn OFF the macros. Both local power management and
	  RPM assisted power management operations are skipped.
	  Enable this configuration if OCMEM is being exclusively
	  used as GMEM or OCIMEM.

config SENSORS_ADSP
	bool "Enable Sensors Driver Support for ADSP"
	help
	  Add support for sensors ADSP driver.
	  This driver is used for exercising different sensors use cases,
	  such as for lower-power OCMEM use cases, and for time syncing
	  with ADSP clock.

config MSM_RTB
	bool "Register tracing"
	help
	  Add support for logging different events to a small uncached
	  region. This is designed to aid in debugging reset cases where the
	  caches may not be flushed before the target resets.

config MSM_RTB_SEPARATE_CPUS
	bool "Separate entries for each cpu"
	depends on MSM_RTB
	depends on SMP
	help
	  Under some circumstances, it may be beneficial to give dedicated space
	  for each cpu to log accesses. Selecting this option will log each cpu
	  separately. This will guarantee that the last acesses for each cpu
	  will be logged but there will be fewer entries per cpu

config MSM_EBI_ERP
	bool "External Bus Interface (EBI) error reporting"
	help
	  Say 'Y' here to enable reporting of external bus interface errors to
	  the kernel log. Information such as the offending address and
	  transaction type will be logged. This may be useful for debugging
	  seemingly broken memory accesses.

	  For production builds, you should probably say 'N' here.

config MSM_CACHE_ERP
	bool "Cache / CPU error reporting"
	depends on ARCH_MSM_KRAIT
	help
	  Say 'Y' here to enable reporting of cache and TLB errors to the kernel
	  log. Enabling this feature can be used as a system debugging technique
	  if cache corruption is suspected. Cache error statistics will also be
	  reported in /proc/cpu/msm_cache_erp.

	  For production builds, you should probably say 'N' here.

config MSM_L1_ERR_PANIC
	bool "Panic on L1 cache errors"
	depends on MSM_CACHE_ERP
	help
	  To cause the kernel to panic whenever an L1 cache error is detected, say
	  'Y' here. This may be useful as a debugging technique if general system
	  instability is suspected.

	  For production builds, you should probably say 'N' here.

config MSM_L1_RECOV_ERR_PANIC
	bool "Panic on recoverable L1 cache errors"
	depends on MSM_CACHE_ERP && MSM_L1_ERR_PANIC
	help
	  Certain CPU designs may be able to automatically recover from certain
	  kinds of L1 cache errors, even though the L1 cache itself may not
	  support error correction. These errors should not result in any kind
	  of corruption, but their presence is nevertheless an indication of
	  poor system health. To cause the kernel to panic whenever a
	  recoverable L1 cache error is detected, say 'Y' here. This may be
	  useful as a debugging technique if general system instability is
	  suspected.

	  For production builds, you should definitely say 'N' here.

config MSM_L1_ERR_LOG
	bool "Log CPU ERP events to system memory"
	depends on MSM_CACHE_ERP
	help
	  Enable logging CPU ERP events to an area of memory that will be
	  preserved across a system reset. This may be useful for detecting and
	  troubleshooting ERP-related system crashes in the field.

	  For production builds, you may want to say 'Y' here.

config MSM_L2_ERP_PRINT_ACCESS_ERRORS
	bool "Report L2 master port slave/decode errors in kernel log"
	depends on MSM_CACHE_ERP
	help
	  Master port errors can occur when a memory request is not properly
	  handled by the destination slave. This can occur if the destination
	  register does not exist or is inaccessible due to security
	  restrictions or (in some cases) clock configuration. Enabling this
	  option will cause a backtrace to be printed to the kernel log whenever
	  such an error is encountered. Note that the error is reported as an
	  interrupt rather than as an exception, meaning that the backtrace may
	  have some skid. This option may help with debugging, though production
	  builds should probably say 'N' here.

config MSM_L2_ERP_PORT_PANIC
	bool "Panic on L2 master port errors"
	depends on MSM_CACHE_ERP && MSM_L2_ERP_PRINT_ACCESS_ERRORS
	help
	  Master port errors can occur when a memory request is not properly
	  handled by the destination slave. Enable this option to catch drivers
	  which attempt to access bad areas of the address space, or access
	  hardware registers in an improper state (such as certain clocks not
	  being on). This option may help with debugging, though production
	  builds should probably say 'N' here.

config MSM_L2_ERP_1BIT_PANIC
	bool "Panic on recoverable L2 soft errors"
	depends on MSM_CACHE_ERP
	help
	  Enable this option to cause a kernel panic whenever the L2 cache
	  encounters a single-bit (correctable) soft error. This option should
	  only be enabled when doing low-level debugging where cache corruption
	  is suspected.

	  For production builds, you should definitely say 'N' here.

config MSM_L2_ERP_2BIT_PANIC
	bool "Panic on unrecoverable L2 soft errors"
	depends on MSM_CACHE_ERP
	help
	  Enable this option to cause a kernel panic whenever the L2 cache
	  encounters a double-bit (non-correctable) soft error. Debug builds
	  will likely benefit from having this option enabled to catch cache
	  problems as soon as possible.

	  For production builds, it may be acceptable to say 'N' here, since
	  an uncorrectable error might not necessarily cause further problems.

config SEC_SSR_DEBUG_LEVEL_CHK
        bool "SSR DEBUG LEVEL check"
        help
          To check the level of debug for SSR.

config MSM_DCVS
	bool "Use MSM DCVS for CPU/GPU Frequency control"
	depends on MSM_SCM
	help
	  Enable support for MSM DCVS to control all CPU and GPU core frequencies.
	  The DCVS manager allows idle driver to feed the idle information to the
	  algorithm and the algorithm returns a frequency for the core which is
	  passed to the frequency change driver.

config MSM_CPR
	tristate "Use MSM CPR in S/W mode"
	help
	  Enable CPR (core power reduction) in S/W mode, where the processor
	  get's the notification from CPR block and programs the PMIC.

config MSM_VP_REGULATOR
	tristate "Use MSM PMIC8029 C2 regulator"
	depends on ARCH_MSM8625
	help
	  Enable MSM PMIC8029 C2 regulator support using APC_PLEVEL access
	  for MSMs like 8625.

config HAVE_ARCH_HAS_CURRENT_TIMER
	bool

config MSM_CACHE_DUMP
	bool "Cache dumping support"
	help
	  Add infrastructure to dump the L1 and L2 caches to an allocated buffer.
	  This allows for analysis of the caches in case cache corruption is
	  suspected.

config MSM_CACHE_DUMP_ON_PANIC
	bool "Dump caches on panic"
	depends on MSM_CACHE_DUMP
	help
	  By default, the caches are flushed on panic. This means that trying to
	  look at them in a RAM dump will give useless data. Select this if you
	  want to dump the L1 and L2 caches on panic before any flush occurs.
	  If unsure, say N

config MSM_HSIC_SYSMON
	tristate "MSM HSIC system monitor driver"
	depends on USB
	help
	  Add support for bridging with the system monitor interface of MDM
	  over HSIC. This driver allows the local system monitor to
	  communicate with the remote system monitor interface.

config MSM_HSIC_SYSMON_TEST
	tristate "MSM HSIC system monitor bridge test"
	depends on USB && MSM_HSIC_SYSMON && DEBUG_FS
	help
	  Enable the test hook for the Qualcomm system monitor HSIC driver.
	  This will create a debugfs file entry named "hsic_sysmon_test" which
	  can be read and written to send character data to the sysmon port of
	  the modem over USB.

config MSM_RPC_PMIC
	tristate "MSM RPC PMIC driver"
	depends on MSM_ONCRPCROUTER
	help
	 This driver supports the PMIC functionality over RPC for those MSM's
	 which do not have a direct access to PMIC. It supports ability to
	 configure MPP, GPIO and all the other supported peripherals of the
	 PMIC.

config MSM_RPC_USB
	tristate "MSM RPC USB driver"
	depends on MSM_ONCRPCROUTER
	help
	 This driver supports the USB configuration support over the RPC
	 interface. It support the HS USB module connected to the MSM
	 and FS USB which is connected over the PMIC. This support is
	 required for MSMs on which the APPS does not have a direct access
	 to the PMIC.

config MSM_RPC_PMAPP
	tristate "MSM RPC PMIC APP driver"
	depends on MSM_ONCRPCROUTER
	help
	 This driver supports the configuration of various PMIC APP modules
	 such as display backlight, vreg pin-ctrl, smps clock over the RPC
	 interface. This support is required for MSMs on which the APPS
	 does not have a direct access to the PMIC.

config MSM_ENABLE_WDOG_DEBUG_CONTROL
	bool "Enable control of watchdog debug and boot partition select"
	help
	  Enables support for controlling watchdog debug and boot partition
	  select. This is currently used to bypass debug image for PS_HOLD reset
	  by disabling watchdog debug and boot partition select. This allows
	  for a clean MSM reset for reboot scenarios.

config MSM_FIQ
	bool "Enable FIQ for debugging"
	depends on ARCH_MSM8625
	select FIQ
	select GIC_SECURE
	help
	  Enable any line to be used as an FIQ. This will help debugging
	  if apps is not responding and holding lock with irqs disabled.
	  Modem will then generate an raise a FIQ on this line before sending
	  SMSM reset.

config MSM_USE_USER_ACCESSIBLE_TIMERS
	bool "Enables mapping an MSM timer counter page to user space."
	depends on ARM_USE_USER_ACCESSIBLE_TIMERS
	help
	  Enables MSM-specific user accessible timers via a shared
	  memory page containing the cycle counter.

config USE_DEV_CTRL_VOLUME
	bool "Use Device Control Volume"
	help
	  Use Device Control Volume as opposed to ALSA volume control.

config MSM_CPU_PWRCTL
	bool "Ensures that krait droop detectors are always off"
	help
	  Droop detector mechanism can adversely affect krait plls during
	  stand alone power collapse operation. Selecting this option
	  ensures that they are always off.

config SEC_THERMISTOR
        bool "Use external thermistor near AP for checking temprature"
        default n
        help
        Use thermistor driver for checking temperature near AP chip.

config MSM_UARTDM_Core_v14
	bool "Use MSM BLSP based HSUART Core v1.4"
	depends on SERIAL_MSM_HS
	help
		Select if BLSP based UART Core v.14 or higher is present.

config MSM_BOOT_STATS
	bool "Use MSM boot stats reporting"
	help
	 Use this to report msm boot stats such as bootloader throughput,
	 display init, total boot time.
	 This figures are reported in mpm sleep clock cycles and have a
	 resolution of 31 bits as 1 bit is used as an overflow check.

config MSM_XPU_ERR_FATAL
	bool "Configure XPU violations as fatal errors"
	help
	 Select if XPU violations have to be configured as fatal errors.

config MSM_CPR_REGULATOR
	bool "RBCPR regulator driver for APC"
	depends on REGULATOR
	depends on OF
	help
	  Compile in RBCPR (RapidBridge Core Power Reduction) driver to support
	  corner vote for APC power rail. The driver takes PTE process voltage
	  suggestions in efuse as initial settings. It converts corner vote
	  to voltage value before writing to a voltage regulator API, such as
	  that provided by spm-regulator driver.

config WALL_CLK
	tristate "Wall Clock hardware block simulation"
	depends on ARCH_APQ8064
	help
	 This driver simulates the wall-clock hardware block on fsm8064_ep
	 femto emulation platform. This block will be used to provide
	 clock information to the LTE Layer 2 module running on the hexagon
	 processor.

config WALL_CLK_SYSFS
	tristate "Wall Clock SysFS Support"
	depends on SYSFS && WALL_CLK
	help
	 Support the wallclk directory in sysfs filesystem to enable the
	 wall clock simulation and read the current SFN.

config I2C_ACTUATOR
	bool "support autofocus on camera without using cci"
 	depends on MSMB_CAMERA
 	help
	actuator for camera.

config TIMA_RKP
       bool "Enable RKP (Realtime Kernel Protection) TIMA feature"
       default n

config TIMA_RKP_L1_TABLES
       bool
       depends on TIMA_RKP
       default y
       help
         TIMA taking over management of L1 tables.

config TIMA_RKP_L2_TABLES
       bool
       depends on TIMA_RKP
       default y
       help
         TIMA taking over management L2 tables too.

config TIMA_RKP_L2_GROUP
	bool
	depends on TIMA_RKP_L2_TABLES
	default y
	help
	 TIMA grouping page table writes

config TIMA_RKP_LAZY_MMU
	bool
	depends on TIMA_RKP_L2_TABLES
	default y
	help
	 TIMA lazy MMU for L2 pages

config	TIMA_RKP_DMA_MVA_TO_SETWAY
	bool
	depends on TIMA_RKP
	default n
	help
	 Flush cache by set-way for dma?

config TIMA_RKP_DEBUG
       bool
       depends on TIMA_RKP
       default n
       help
         TIMA debug infrastructure.

config TIMA_LKMAUTH
       bool "Enable LKM authentication TIMA feature"
       default n
       help
         TIMA authenticates loaded kernel modules. Disable it if you don't
         want TIMA enabled.

config TIMA_LKMAUTH_CODE_PROT
       bool
       depends on TIMA_LKMAUTH
       default y
       help
         When enabled, this feature will mark all Executable sections in an
         LKM as RO

config TIMA_TEST_INFRA
       tristate "Testing infrastructure for TIMA"
       default n
       help
         Kernel bits of the TIMA test infrastructure

config TIMA_UEVENT
       bool "Uevent message propagation for TIMA"
       default n
       help
         Uevent messages for TIMA PKM/LKM

config TIMA_LOG
       bool "Log dumping support for TIMA"
       default n
       help
         TIMA Log dumping support


config KRAIT_REGULATOR
	bool "Support Kraits powered via ganged regulators in the pmic"
	help
	 Certain MSMs have the Krait CPUs powered via a single supply
	 line from the PMIC. This supply line is powered by multiple
	 regulators running in ganged mode inside the PMIC. Enable
	 this option to support such configurations.
endif
