if ARCH_MSM

menu "MSM SoC Type"

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

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

config ARCH_MSM7X27
	bool "MSM7x27"
	select ARCH_MSM_ARM11 if MSM_SOC_REV_NONE
	select ARCH_HAS_BARRIERS if MSM_SOC_REV_NONE
	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 MSM_REMOTE_SPINLOCK_SWP if MSM_SOC_REV_NONE
	select MSM_GPIOMUX
	select REGULATOR
	select MSM_PROC_COMM_REGULATOR

config ARCH_MSM7X30
	bool "MSM7x30"
	select ARCH_MSM_SCORPION
	select MSM_VIC
	select CPU_V7
	select MSM_REMOTE_SPINLOCK_DEKKERS
	select ARCH_HAS_HOLES_MEMORYMODEL
	select MIGRATION
	select MSM_GPIOMUX
	select RESERVE_FIRST_PAGE
	select MSM_DALRPC
	select MSM_SPM_V1

config ARCH_QSD8X50
	bool "QSD8X50"
	select ARCH_MSM_SCORPION
	select MSM_VIC
	select CPU_V7
	select MSM_REMOTE_SPINLOCK_LDREX
	select CPU_USE_DOMAINS
	select EMULATE_DOMAIN_MANAGER_V7
	select MSM_GPIOMUX
	select MSM_DALRPC

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_V2_TLMM
	select MSM_PIL
	select MSM_SCM
	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_NATIVE_RESTART
	select CPU_HAS_L2_PMU
	select MSM_SPM_V1

config ARCH_MSM8X60_LTE
	bool "MSM8X60_LTE"
	depends on ARCH_MSM8X60
	default n

config ARCH_MSM8960
	bool "MSM8960"
	select ARCH_MSM_KRAITMP
	select ARM_GIC
	select CPU_V7
	select MSM_V2_TLMM
	select MSM_GPIOMUX
	select MSM_SCM if SMP
	select MSM_DIRECT_SCLK_ACCESS
	select REGULATOR
	select MSM_RPM
	select MSM_XO
	select MSM_QDSP6_APR
	select MSM_PIL
	select MSM_AUDIO_QDSP6 if SND_SOC
	select CPU_HAS_L2_PMU
	select MSM_SPM_V2
	select HAS_QDSS
	select MSM_L2_SPM
	select MSM_NATIVE_RESTART
        select DONT_MAP_HOLE_AFTER_MEMBANK0
	select MSM_REMOTE_SPINLOCK_SFPB
	select ARCH_POPULATES_NODE_MAP
	select ARCH_SPARSEMEM_ENABLE
	select ARCH_HAS_HOLES_MEMORYMODEL
	select MEMORY_HOTPLUG
	select MEMORY_HOTREMOVE
	select MIGRATION
	select ARCH_MEMORY_PROBE
	select ARCH_MEMORY_REMOVE

config ARCH_APQ8064
	bool "APQ8064"
	select ARCH_MSM_KRAITMP
	select MACH_APQ8064_SIM if !MACH_APQ8064_RUMI3
	select MSM_V2_TLMM
	select ARM_GIC
	select CPU_V7
	select MSM_SCM if SMP
	select MSM_GPIOMUX
	select MSM_REMOTE_SPINLOCK_SFPB

config ARCH_MSMCOPPER
	bool "MSM Copper"
	select ARCH_MSM_KRAITMP
	select MSM_V2_TLMM
	select ARM_GIC
	select CPU_V7
	select MSM_SCM if SMP
	select MSM_GPIOMUX

config ARCH_FSM9XXX
	bool "FSM9XXX"
	select ARCH_MSM_SCORPION
	select MSM_VIC
	select CPU_V7
	select MSM_REMOTE_SPINLOCK_LDREX
	select FSM9XXX_TLMM

config ARCH_MSM9615
	bool "MSM9615"
	select ARM_GIC
	select ARCH_MSM_CORTEX_A5
	select CPU_V7
	select MSM_V2_TLMM
	select MSM_GPIOMUX
	select MSM_RPM
	select MSM_SPM_V2
	select MSM_NATIVE_RESTART
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_SMP
	bool

config  ARCH_MSM_SCORPIONMP
	select ARCH_MSM_SCORPION
	select MSM_SMP
	bool

config  ARCH_MSM_KRAITMP
	select ARCH_MSM_KRAIT
	select MSM_SMP
	bool

config  ARCH_MSM_CORTEX_A5
	bool
	select PERF_EVENTS if !ARCH_MSM9615
	select HAVE_HW_BREAKPOINT if !ARCH_MSM9615
	select HAVE_HW_BRKPT_RESERVED_RW_ACCESS

config ARCH_MSM7X27A
	bool
	select MSM_DALRPC
	select MSM_PROC_COMM_REGULATOR

config  MSM_VIC
	bool

config MSM_RPM
	bool "Resource Power Manager"
	select MSM_MPM

config MSM_MPM
	bool "Modem Power Manager"

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 PERFLOCK
        depends on CPU_FREQ
        depends on ARCH_MSM8960 || ARCH_MSM8X60 || ARCH_QSD8X50 || ARCH_MSM7X30 || ARCH_MSM7X00A || ARCH_MSM7X27A || ARCH_MSM7X25
        default n
        bool "HTC Performance Lock"

config PERFLOCK_BOOT_LOCK
        depends on PERFLOCK
        depends on ARCH_MSM8960 || ARCH_MSM8X60 || ARCH_QSD8X50 || ARCH_MSM7X30 || ARCH_MSM7X00A || ARCH_MSM7X27A || ARCH_MSM7X25
        default n
        bool "Boot Time Performance Lock"

config PERFLOCK_SCREEN_POLICY
        depends on PERFLOCK
        depends on ARCH_MSM8960 || ARCH_MSM8X60 || ARCH_QSD8X50 || ARCH_MSM7X00A || ARCH_MSM7X27A || ARCH_MSM7X25 || ARCH_MSM7X30
        default n
        bool "Change Cpufreq Policy while Screen ON/OFF"

config PERFLOCK_SCREEN_ON_MIN
        depends on PERFLOCK_SCREEN_POLICY
        int "Minimum speed while screen on"
        default MSM_CPU_FREQ_ONDEMAND_MIN

config PERFLOCK_SCREEN_ON_MAX
        depends on PERFLOCK_SCREEN_POLICY
        int "Maximum speed while screen on"
        default MSM_CPU_FREQ_ONDEMAND_MAX

config PERFLOCK_SCREEN_OFF_MIN
        depends on PERFLOCK_SCREEN_POLICY
        int "Minimum speed while screen off"
        default MSM_CPU_FREQ_ONDEMAND_MIN

config PERFLOCK_SCREEN_OFF_MAX
        depends on PERFLOCK_SCREEN_POLICY
        int "Maximum speed while screen off"
        default MSM_CPU_FREQ_ONDEMAND_MIN

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 n
        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 n
        bool "MSM7x27A SURF"
        help
          Support for the Qualcomm MSM7x27A SURF.

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

config MACH_PICO
		depends on ARCH_MSM7X27A
		depends on !MSM_STACKED_MEMORY
		default n
		bool "Pico"
		help
			Support for Pico (PDA phone).

config MACH_GOLFU
		depends on ARCH_MSM7X27A
		depends on !MSM_STACKED_MEMORY
		default n
		bool "Golfu"
		help
			Support for Golfu (PDA phone).

config MACH_PRIMODD
		depends on ARCH_MSM7X27A
		depends on !MSM_STACKED_MEMORY
		default n
		select FB_MSM_MIPI_VIDEO_ONLY
		bool "Primodd_ct"
		help
			Support for Primodd_ct (PDA phone).

config MACH_PRIMODS
		depends on ARCH_MSM7X27A
		depends on !MSM_STACKED_MEMORY
		default n
		select FB_MSM_MIPI_VIDEO_ONLY
		bool "Primods"
		help
			Support for Primods (PDA phone).

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 Refrence Design.

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 ARCH_MSM7X30_SMD
       bool "Support QCT 7X30 SMD function"
       default n
       help
         For QCT SMD function, we need 7x30 rpcrouter and smd drivers.

config MACH_RUNNYMEDE
       depends on ARCH_MSM7X30
       default n
       bool "Runnymede"
       help
         Support for the Qualcomm Runnymede board.

config MACH_FLYER
       depends on ARCH_MSM7X30
       default n
       bool "Flyer"
       help
         Support for the Qualcomm Flyer board.

config MACH_VIVO
       depends on ARCH_MSM7X30
       default n
       bool "Vivo"
       help
         Support for the Qualcomm Vivo board.

config MACH_VIVOW
       depends on ARCH_MSM7X30
       default n
       bool "Vivow"
       help
         Support for the Qualcomm Vivow board.

config MACH_VIVOW_CT
       depends on ARCH_MSM7X30
       default n
       bool "Vivow_ct"
       help
         Support for the Qualcomm Vivow_ct board.

config MACH_BLISSC
       depends on ARCH_MSM7X30
       default n
       bool "Blissc"
       help
         Support for the Qualcomm Blissc board.

config MACH_BLISS
       depends on ARCH_MSM7X30
       default n
       bool "Bliss"
       help
         Support for the Qualcomm Bliss board.

config MACH_SPADE
       depends on ARCH_MSM7X30
       default n
       bool "Spade"
       help
         Support for the Qualcomm Spade board.

config MACH_SAGA
       depends on ARCH_MSM7X30
       default n
       bool "Saga"
       help
         Support for the Qualcomm Saga board.

config MACH_MECHA
       depends on ARCH_MSM7X30
       default n
       bool "Mecha"
       help
         Support for the Qualcomm Mecha board.

config MACH_KINGDOM
       depends on ARCH_MSM7X30
       default n
       bool "Kingdom"
       help
         Support for the Qualcomm Kingdom board.

config MACH_PRIMOU
       depends on ARCH_MSM7X30
       default n
       bool "Primou"
       help
         Support for the Qualcomm Primou board.

config MACH_PRIMOC
       depends on ARCH_MSM7X30
       default n
       bool "Primoc"
       help
         Support for the Qualcomm Primoc board.

config MACH_PRIMOTD
       depends on ARCH_MSM7X30
       default n
       bool "Primotd"
       select DONT_MAP_HOLE_AFTER_MEMBANK0
       help
         Support for the Qualcomm Primotd board.

config MACH_GOLFC
       depends on ARCH_MSM7X30
       default n
       bool "Golfc"
       help
         Support for the Qualcomm Golfc board.

config MACH_VIVOW_EVM
       depends on ARCH_MSM7X30
       default n
       bool "VivoW EVM"
       help
         Support for the VivoW EVM (Maxim PMIC) 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_RUMI3
	depends on ARCH_MSM8X60
	default n
	bool "MSM8x60 RUMI3"
	help
	  Support for the Qualcomm MSM8x60 RUMI3 emulator.

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

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_PYRAMID
	depends on ARCH_MSM8X60
	default n
	bool "Pyramid"
	help
	  Support for the Pyramid device.

config MACH_SHOOTER
	depends on ARCH_MSM8X60
	default n
	bool "shooter"
	help
	  Support for the Shooter device.

config MACH_SHOOTER_U
        depends on ARCH_MSM8X60
        default n
        bool "Shooter_U"
        select SMP_PARALLEL_START
        help
          Support for the Shooter_U device.

config MACH_SHOOTER_K
	depends on ARCH_MSM8X60
	default n
	bool "shooter_k"
	help
	  Support for the Shooter_K device.

config MACH_SHOOTER_CT
        depends on ARCH_MSM8X60
        default n
        bool "shooter_ct"
        help
          Support for the Shooter_CT device.

config MACH_RIDER
        depends on ARCH_MSM8X60
        default n
        bool "RIDER"
        select SMP_PARALLEL_START
        help
          Support for the RIDER device.

config MACH_VILLEC2
        depends on ARCH_MSM8X60
        default n
        bool "VILLEC2"
        select SMP_PARALLEL_START
        help
         Support for the VILLEC2 device.

config MACH_VERDI_LTE
	depends on ARCH_MSM8X60
	default n
	bool "Verdi_lte"
	help
	  Support for the Verdi_lte device.

config MACH_HOLIDAY
	depends on ARCH_MSM8X60
	default n
	bool "Holiday"
	help
	  Support for the Holiday device.

config MACH_VIGOR
	depends on ARCH_MSM8X60
	default n
	bool "Vigor"
	help
	  Support for the Vigor device.

config MACH_RUBY
	depends on ARCH_MSM8X60
	default n
	bool "Ruby"
	help
	  Support for the Ruby device.

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

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

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_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_SIM
	depends on ARCH_APQ8064
	bool "APQ8064 Simulator"
	help
	  Support for the Qualcomm APQ8064 simulator.

config MACH_APQ8064_RUMI3
	depends on ARCH_APQ8064
	bool "APQ8064 RUMI3"
	help
	  Support for the Qualcomm APQ8064 RUMI3 emulator.

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 MACH_VILLE
        depends on ARCH_MSM8960
        bool "Ville"
        help
          Support for the HTC Ville.

config MACH_TAHITI
	depends on ARCH_MSM8960
	bool "Tahiti"
	help
	  Support for the HTC Tahiti.

config MACH_FIGHTER
	depends on ARCH_MSM8960
	bool "Fighter"
	help
	  Support for the HTC Fighter

config MACH_JET
	depends on ARCH_MSM8960
	bool "Jet"
	help
	  Support for the HTC Jet

config MACH_ELITE
	depends on ARCH_MSM8960
	bool "Elite"
	help
	  Support for the HTC Elite

config MACH_KNIGHT
	depends on ARCH_MSM8960
	bool "Knight"
	help
	  Support for the HTC Knight

config MACH_RUNNYMEDE
	depends on ARCH_MSM7X30
	bool "Runnymede"
	select ARCH_SPARSEMEM_ENABLE
	select MEMORY_HOTPLUG
	select MEMORY_HOTREMOVE
	select ARCH_ENABLE_MEMORY_HOTPLUG
	select ARCH_ENABLE_MEMORY_HOTREMOVE
	select ARCH_MEMORY_PROBE
	select ARCH_MEMORY_REMOVE
	help
	  Support for the HTC Runnymede
endmenu

config MSM_MDP40
	bool
	depends on ARCH_MSM7X30 || ARCH_MSM8X60
	default y

config FB_MSM_MIPI_VIDEO_ONLY
	depends on ARCH_MSM7X27A
	default n
	bool
	help
	  Use for VIDEO mode only panel

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 "Kernel physical start address"
	default "0x40800000" if ARCH_MSM9615
	default "0x80200000" if ARCH_APQ8064
	default "0x80400000" if ARCH_MSM8960
	default "0x80200000" if ARCH_MSMCOPPER
	default "0x10000000" if ARCH_FSM9XXX
	default "0x00200000" if !MSM_STACKED_MEMORY
	default "0x00000000" if ARCH_QSD8X50 && MSM_SOC_REV_A
	default "0x20000000" if ARCH_QSD8X50
	default "0x48000000" if ARCH_MSM8X60
	default "0x10000000"

config KERNEL_PMEM_EBI_REGION
	bool "Enable in-kernel PMEM region for EBI"
	default y if ARCH_MSM8X60
	depends on ANDROID_PMEM && (ARCH_MSM8X60 || ARCH_MSM8960)
	help
	   Enable the in-kernel PMEM allocator to use EBI memory.

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

config PANEL_SELF_REFRESH
	depends on (MACH_SPADE || MACH_MECHA)
	default n
	bool "Panel Self-refresh"
	help
	    Support for the board Spade/Mecha Panel Self-refresh.

config PMEM_GPU0
	bool "Enable PMEM GPU0 region"
	default y
	depends on ARCH_QSD8X50 && ANDROID_PMEM
	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
	default 6350 if MSM_AMSS_VERSION_6350
	default 6355 if MSM_AMSS_VERSION_6355
	default 1355 if MSM_AMSS_VERSION_1355
	default 4725 if MSM_AMSS_VERSION_4725
	default 4735 if MSM_AMSS_VERSION_4735
	default 4410 if MSM_AMSS_VERSION_4410
	default 3200 if MSM_AMSS_VERSION_3200
	default 1170 if MSM_AMSS_VERSION_1170
	default 1200 if MSM_AMSS_VERSION_1200

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"

	config MSM_AMSS_VERSION_6350
		bool "6.3.50"

	config MSM_AMSS_VERSION_6355
		bool "6.3.55"

	config MSM_AMSS_VERSION_1355
		bool "1.3.55"

	config MSM_AMSS_VERSION_4725
		bool "4.7.25"

	config MSM_AMSS_VERSION_4735
		bool "4.7.25 + SBA 3001"

	config MSM_AMSS_VERSION_4410
		bool "4.4.10"

	config MSM_AMSS_VERSION_3200
		bool "3.2.00"

	config MSM_AMSS_VERSION_1170
		bool "1.1.70"

	config MSM_AMSS_VERSION_1200
		bool "1.2.00"

endchoice

config MSM_DEBUG_UART
	int
	default 1 if MSM_DEBUG_UART1
	default 2 if MSM_DEBUG_UART2
	default 3 if MSM_DEBUG_UART3
	default 8 if MSM_DEBUG_UART8
	default 11 if MSM_DEBUG_UART11

choice
	prompt "Debug UART"

	default MSM_DEBUG_UART_NONE

	config MSM_DEBUG_UART_NONE
		bool "None"

	config MSM_DEBUG_UART1
		bool "UART1"

	config MSM_DEBUG_UART2
		bool "UART2"

	config MSM_DEBUG_UART3
		bool "UART3"

	config MSM_DEBUG_UART8
		bool "UART8"

	config MSM_DEBUG_UART11
		bool "UART11"
endchoice

config HTC_BATT_CORE
	depends on POWER_SUPPLY
	default n
	bool "HTC battery core driver"

config HTC_BATT8x60
	depends on HTC_BATT_CORE
	default n
	bool "HTC battery driver for 8x60"

config HTC_BATT_8960
	depends on HTC_BATT_CORE
	default n
	bool "HTC battery driver for 8960"

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_BATTCHG
        depends on MSM_ONCRPCROUTER && POWER_SUPPLY
        default n
        bool "HTC battery / charger driver"

config HTC_BATTCHG_MAX8957
	depends on MSM_ONCRPCROUTER && POWER_SUPPLY
	default n
	bool "HTC battery / charger driver for PMIC MAX8957"

config HTC_BATTCHG_SMEM
        depends on (HTC_BATTCHG || HTC_BATTCHG_MAX8957)
        default n
        bool "Read Battery Info via SMEM"

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

config BUILD_OMA_DM
	bool "Build in OMA-DM fixes"
	default n
	help
	  For OMA-DM we need to do some additional fixes.

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_SMD0_WQ
	bool "SMD0 TTY Workqueue"
	depends on (MSM_SMD)
	default y
	help
	Independent tty workqueue for SMD0


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 || ARCH_MSM8X60_LTE || 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_RESET_MODEM
	tristate "Reset Modem Driver"
	depends on MSM_SMD
	default m
	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_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_AL
	default y
	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_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"
	depends on ARCH_MSM_SCORPION || ARCH_MSM_KRAIT || ARCH_MSM7X27A
	default y
	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_CPU_FREQ_ONDEMAND_MAX
        int "Max"
        default 384000

config MSM_CPU_FREQ_ONDEMAND_MIN
        int "Min"
        default 245760

config MSM_CPU_AVS
	bool "Enable software controlled Adaptive Voltage Scaling (AVS)"
	depends on (ARCH_MSM_SCORPION && QSD_SVS)
	depends on ARCH_QSD8X50
	default n
	select MSM_AVS_HW
	help
	  This enables the s/w control of Adaptive Voltage Scaling feature
	  in Qualcomm ARMv7 CPUs. It adjusts the voltage for each frequency
	  based on feedback from three ring oscillators in the CPU.

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"
	depends on ANDROID_PMEM
	default y
	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"
	depends on ANDROID_PMEM
	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 && ANDROID_PMEM)
	default n
	help
	  Enables QDSP5V2-based audio drivers for audio playbacks and
	  voice call.

config MSM7KV2_1X_AUDIO
	bool "MSM7K 1x v2 audio"
	depends on (ARCH_MSM7X30 && ANDROID_PMEM)
	default n
	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 && ANDROID_PMEM
	default y
	help
	  Enable support for qdsp6. This provides audio and video functionality.

config MSM8X60_AUDIO
	tristate "MSM8X60 audio support"
	depends on ARCH_MSM8X60 && ANDROID_PMEM
	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 HTC_OFFMODE_ALARM
	bool "Enables HTC offmode alarm."
	default n
	help
	support HTC offmode alarm.

config HTC_QUICKBOOT_OFFMODE_ALARM
	bool "Support HTC quickboot offmode alarm."
	default n
	help
	support HTC quickboot offmode alarm.

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 WIFI_NVS_PROC_CREATE
	bool "Store nvs data into /proc/calibration"
	help
	  store nvs data into /proc/calibration

config ARCH_MSM_FLASHLIGHT
	bool "Flashlight Driver"
	depends on ARCH_MSM
	help
	  The flashlight driver is for MSM series.

config QSD_AUDIO
	bool "QSD audio"
	depends on ARCH_MSM_SCORPION && MSM_DALRPC && ANDROID_PMEM && !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 HTC_OFFMODE_ALARM
	bool "Enables HTC offmode alarm."
	default n
	help
		support HTC offmode alarm.

config HTC_QUICKBOOT_OFFMODE_ALARM
        bool "Support HTC quickboot offmode alarm."
        default n
        help
                support HTC quickboot offmode alarm.

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 MICROP_COMMON
	tristate "MICROP COMMON Driver"
	depends on I2C
	help
	  HTC Microp-P support.

config HTC_HEADSET_MGR
	tristate "HTC headset manager driver"
	default n
	help
	  Provides support of HTC headset manager.

config HTC_HEADSET_H2W
	tristate "HTC 2 Wire headset driver"
	depends on HTC_HEADSET_MGR
	default n
	help
	  Provides support of HTC 2 Wire headset.

config HTC_HEADSET_GPIO
	tristate "HTC GPIO headset detection driver"
	depends on HTC_HEADSET_MGR
	default n
	help
	  Provides support of HTC GPIO headset detection.

config HTC_HEADSET_MICROP
	tristate "HTC Micro-P headset detection driver"
	depends on HTC_HEADSET_MGR && MICROP_COMMON
	default n
	help
	  Provides support of HTC Micro-P headset detection.

config HTC_HEADSET_PMIC
	tristate "HTC PMIC headset detection driver"
	depends on HTC_HEADSET_MGR
	default n
	help
	  Provides support of HTC PMIC headset detection.

config HTC_HEADSET_MAX8957
	tristate "HTC PMIC headset detection driver for Maxim MAX8957"
	depends on HTC_HEADSET_MGR
	default n
	help
	  Provides support of HTC PMIC headset detection.

config HTC_HEADSET_MISC
	tristate "HTC MISC headset detection driver"
	depends on HTC_HEADSET_MGR
	default n
	help
	  Provides support of HTC MISC headset detection.

config HTC_HEADSET_8X60
	tristate "HTC 8X60 headset detection driver"
	depends on HTC_HEADSET_MGR
	default n
	help
	  Provides support of HTC 8X60 headset detection.

config HTC_ONMODE_CHARGING
	bool "On Mode Charging Icon Support"
	default n
	help
		support on mode charing icon

config SMD_OFFSET_TCXO_STAT
	depends on MSM_SMD
	hex "SMD offset of total TCXO-off time"
	default 0x0
	help
          TCXO off time is in tick of sleep clock, 1/32768.

config SMD_OFFSET_NEGATE_CLIENT_STAT
        depends on MSM_SMD
	hex "SMD offset of negate clinet stat"
        default 0x0
        help
          TCXO shutdown retry conuter and negate tcxoc client counters.

config MSM_PIL
	bool "Peripheral image loading"
	select FW_LOADER
	depends on (ARCH_MSM8X60 || ARCH_MSM8960)
	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_SCM
	bool "Secure Channel Manager (SCM) support"
	default n

config MSM_SUBSYSTEM_RESTART
	bool "MSM Subsystem Restart Driver"
	depends on (ARCH_MSM8X60 || ARCH_MSM8960 || ARCH_MSM9615)
	default n
	help
	  This option enables the MSM subsystem restart driver, which provides
	  a framework to handle subsystem crashes.

config MSM_SYSMON_COMM
	bool "MSM System Monitor communication support"
	depends on MSM_SMD && MSM_SUBSYSTEM_RESTART
	default y
	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_MODEM_8960
	bool "MSM 8960 Modem driver"
	depends on (ARCH_MSM8960 || ARCH_MSM9615)
	help
	 This option enables the modem driver for the MSM8960 and MSM9615, which monitors
	 modem hardware watchdog interrupt lines and plugs into the subsystem
	 restart and PIL drivers. For MSM9615, it only supports a full chip reset.

config MSM_LPASS_8960
	tristate "MSM 8960 Lpass driver"
	depends on (ARCH_MSM8960 || ARCH_MSM9615)
	help
	 This option enables the lpass driver for the MSM8960 and MSM9615. This monitors
	 lpass hardware watchdog interrupt lines and plugs into the subsystem
	 restart and PIL drivers. For MSM9615, it only supports a full chip reset.

config MSM_WCNSS_SSR_8960
	tristate "MSM 8960 WCNSS restart module"
	depends on (ARCH_MSM8960)
	help
	 This option enables the WCNSS restart module for MSM8960, which
	 monitors WCNSS hardware watchdog interrupt lines and plugs WCNSS
	 into the subsystem restart framework.

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 (ARCH_MSM8X60 || ARCH_MSM8960)
	default m
	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_RPM_LOG
	tristate "MSM Resource Power Manager Log Driver"
	depends on DEBUG_FS
	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 ARCH_MSM8X60
	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_IOMMU
	bool "MSM IOMMU Support"
	depends on ARCH_MSM8X60 || ARCH_MSM8960 || ARCH_APQ8064
	select IOMMU_API
	default n
	help
	  Support for the IOMMUs found on certain Qualcomm SOCs.
	  These IOMMUs allow virtualization of the address space used by most
	  cores within the multimedia subsystem.

	  If unsure, say N here.

config IOMMU_PGTABLES_L2
	bool "Allow SMMU page tables in the L2 cache (Experimental)"
	depends on MSM_IOMMU=y
	depends on MMU
	depends on CPU_DCACHE_DISABLE=n
	depends on SMP
	default y
	help
	 Improves TLB miss latency at the expense of potential L2 pollution.
	 However, with large multimedia buffers, the TLB should mostly contain
	 section mappings and TLB misses should be quite infrequent.
	 Most people can probably say Y here.

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

config IOMMU_API
       bool

config MSM_GPIOMUX
	bool

config MSM_V2_TLMM
       bool

config FSM9XXX_TLMM
	bool

config MSM_SECURE_IO
	bool

config MSM_NATIVE_RESTART
	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
	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_DLOAD_MODE
	bool "Enable download mode on crashes"
	depends on ARCH_MSM8X60 || ARCH_MSM8960 || ARCH_MSM9615
	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 HAS_QDSS
	bool "QDSS Present"
	help
	 Select this if the chip has Qualcomm Debug Subsystem implemented.

config MSM_DEBUG_ACROSS_PC
	bool "Debug support across power collapse"
	help
	  Enables debug state to be saved and restored across power collapse.

config MSM_JTAG_V7
	depends on CPU_V7 && !HAS_QDSS
	default y if DEBUG_KERNEL
	bool "JTAG debug support"
	select MSM_DEBUG_ACROSS_PC
	help
          Add additional support for JTAG kernel debugging.

config MSM_TRACE_ACROSS_PC
	bool "Trace support across power collapse"
	help
	  Enables trace state to be saved and restored across power collapse.

config MSM_ETM
	tristate "Enable MSM ETM and ETB"
	depends on ARCH_MSM8X60 && !HAS_QDSS
	select MSM_TRACE_ACROSS_PC
	help
	  Enables embedded trace collection on Qualcomm v7 CPUs.

config MSM_QDSS
	bool "Qualcomm Debug Subsystem"
	depends on HAS_QDSS
	select MSM_DEBUG_ACROSS_PC
	select MSM_TRACE_ACROSS_PC
	help
	  Enables support for Qualcomm Debug Subsystem.

config MSM_SLEEP_STATS
	bool "Enable exporting of MSM sleep stats to userspace"
	depends on CPU_IDLE
	default n

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 (ARCH_MSM7X30 || ARCH_MSM8X60 || ARCH_MSM8960 || ARCH_MSMCOPPER)
	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 SUPPORT_DQ_BATTERY
	bool "Support DQ battery."
	default n
	help
		support DQ battery.

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_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 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 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 RPC_VER_60001
	bool "rpc ver 60001"
	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 DEBUG_BY_VIBRATOR
	bool "Debug by Vibrator support"
	depends on MSM_RPC_VIBRATOR
	help
	  Enable the vibrator debug support on MSM over RPC. The vibrator
	  will provide debug_by_vibrator() API for other module to debug use.
	  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 support 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 FOOTPRINT_IRQ
	bool "FOOTPRINT support for IRQ"
	depends on ARCH_MSM8X60
	default n
	help
	   Record the information that which irq CPU is handling

comment "TI WLAN driver"
config WIFI_CONTROL_FUNC
        bool "Enable WiFi control function abstraction"
        select WIRELESS_EXT
        select WEXT_CORE
        select WEXT_PROC
        select WEXT_PRIV
        default Y
        help
           Enables Power/Reset/Carddetect function abstraction

config TIWLAN_SDIO
        bool "TI WLAN Enhanced SDIO Contoller support"
        help
           Say Y here if you want to be able to use TI's WLAN device using the
           SDIO interface. If unsure, say N.

config WIFI_NVS_PROC_CREATE
       bool "Store nvs data into /proc/calibration"
       help
         store nvs data into /proc/calibration

config HTC_BATT_ALARM
	bool "Enable 3.0V device shutdown mechanism"
	depends on HAS_EARLYSUSPEND
	default n
	help
	  Enable 3.0V triggeer level 0 shutdown rule

config REMOVE_EBI1_FIXED_CLK
	bool "remove ebi1 fixed clk"
	default n
	help
		use for 2x Radio

config HTC_ACCESSORY_ONEWIRE
        tristate "HTC accessory one wire protocol driver"
        default n
        help
          Provides support of HTC one wire protocol driver.
endif
