if ARCH_MSM

choice
	prompt "MSM SoC Type"
	default ARCH_MSM7X00A

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

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

config ARCH_MSM7X27
	bool "MSM7x27"
	select ARCH_MSM_ARM11
	select MSM_VIC
	select CPU_V6
	select MSM_REMOTE_SPINLOCK_SWP
	select MSM7200A_TLMM

config ARCH_MSM7X30
	bool "MSM7x30"
	select ARCH_MSM_SCORPION
	select MSM_VIC
	select CPU_V7
	select MSM_REMOTE_SPINLOCK_DEKKERS
	select MSM7200A_TLMM

config ARCH_QSD8X50
	bool "QSD8X50"
	select ARCH_MSM_SCORPION
	select MSM_VIC
	select CPU_V7
	select MSM_REMOTE_SPINLOCK_LDREX
	select MSM7200A_TLMM

config ARCH_MSM8X60
	bool "MSM8X60"
	select ARCH_MSM_SCORPIONMP
	select ARM_GIC
	select CPU_V7
	select MSM_REMOTE_SPINLOCK_LDREX
	select ARCH_REQUIRE_GPIOLIB
	select MSM_ADM3
	select REGULATOR
	select MSM_PIL
	select MSM8660_TLMM
	select ARCH_HAS_CPU_IDLE_WAIT
	select MSM_DIRECT_SCLK_ACCESS
	select MSM_RPM

endchoice

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
if ARCH_QSD8X50
config MSM_SOC_REV_A
	bool "Rev. A"
endif
endchoice

config  ARCH_MSM_ARM11
	bool
config  ARCH_MSM_SCORPION
	bool
config  ARCH_MSM_SCORPIONMP
	bool

config  MSM_VIC
	bool

config MSM_RPM
	bool "Resource Power Manager"

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

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_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_QSD8X50_COMET
	depends on ARCH_QSD8X50
	depends on MSM_SOC_REV_NONE
	depends on MSM_STACKED_MEMORY
	default n
	bool "QSD8x50 Comet"
	help
	  Support for the Qualcomm Comet eval board.

config MACH_QSD8X50A_SURF
	depends on ARCH_QSD8X50
	depends on MSM_SOC_REV_A
	depends on MSM_STACKED_MEMORY
	default y
	bool "QSD8x50A SURF"
	help
	  Support for the Qualcomm QSD8x50A SURF eval board.

config MACH_QSD8X50A_FFA
	depends on ARCH_QSD8X50
	depends on MSM_SOC_REV_A
	depends on MSM_STACKED_MEMORY
	default y
	bool "QSD8x50A FFA"
	help
	  Support for the Qualcomm QSD8x50A FFA eval board.

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

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"
	select SMP_PARALLEL_START
	help
	  Support for the Qualcomm MSM8x60 RUMI3 emulator.

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

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

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

endmenu

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 "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_PMEM_EBI_REGION
	bool "Enable in-kernel PMEM region for EBI"
	default y if ARCH_MSM8X60
	depends on ANDROID_PMEM && ARCH_MSM8X60
	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 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

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_DEBUG_UART
	int
	default 1 if MSM_DEBUG_UART1
	default 2 if MSM_DEBUG_UART2
	default 3 if MSM_DEBUG_UART3

choice
	prompt "Debug UART"

	default MSM_DEBUG_UART_NONE

	config MSM_DEBUG_UART_NONE
		bool "None"

	config MSM_DEBUG_UART1
		bool "UART1"

	config MSM_DEBUG_UART2
		bool "UART2"

	config MSM_DEBUG_UART3
		bool "UART3"
endchoice

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 MSM_JTAG_V7
	depends on CPU_V7
	default y if DEBUG_KERNEL
        bool "JTAG debug support"
	help
          Add additional support for JTAG kernel debugging.

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 || MACH_QSD8X50_COMET || MACH_QSD8X50A_SURF || MACH_QSD8X50A_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 || MACH_QSD8X50_COMET || MACH_QSD8X50A_SURF || MACH_QSD8X50A_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_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 && 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_AL_TEST
	depends on MSM_SDIO_AL
	default n
	tristate "SDIO-Abstraction-Layer Test"
	help
	  SDIO-AL functionality and performance test.

config MSM_N_WAY_SMD
	depends on (MSM_SMD && (ARCH_MSM_SCORPION || ARCH_MSM_SCORPIONMP || ARCH_MSM7X27))
	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_MSM_SCORPION || ARCH_MSM_SCORPIONMP || ARCH_MSM7X27))
	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_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_CTL
	bool "SDIO CTL Driver"
	depends on MSM_SDIO_AL
	default y
	help
	  Provides a binay SDIO muxed control port interface.

config MSM_SDIO_CTL_DEBUG
	bool "SDIO CTL DEBUG Enable"
	depends on MSM_SDIO_CTL
	default y
	help
	  Support for debugging the SDIO Control Driver

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

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_DALRPC
	bool "DAL RPC support"
	depends on ARCH_MSM_SCORPION
	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_AVS
	bool "Enable Adaptive Voltage Scaling (AVS)"
	depends on (ARCH_MSM_SCORPION && QSD_SVS)
	depends on ARCH_QSD8X50
	default y
	help
	  This enables the Adaptive Voltage Scaling feature of
	  Qualcomm ARMv7 CPUs. It adjusts the voltage for each frequency
	  based on feedback from three ring oscillators in the CPU.

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 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 && ANDROID_PMEM
	default y
	help
	  Enable support for qdsp6. This provides audio and video functionality.

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

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 && ANDROID_PMEM
	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 CLOCK_BASED_SLEEP_LIMIT
	default y
	bool "Set sleep limitation based on clock usage"
	help
	  The application processor checks for enabled clocks and
	  decides accordingly the sleep limitation which it informs
	  the modem to use.

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_NPA
	bool "Node Power Architecture(NPA) support"
	default y if ARCH_MSM7X30
	help
	  Enable support for Node Power Architecture for aggressive
	  resource power management. NPA provides an interface for resources
	  to export their parameters and clients to request a value. The
	  resources have additional facility to aggreate requests, calculate
	  the resultant value, apply the value and notify the clients of
	  change in state.

config MSM_NPA_LOG
	bool "Node Power Architecture(NPA) logging support"
	depends on MSM_NPA
	default y
	help
	  Enable logging support for NPA.

config MSM_NPA_DEBUG
	bool "Node Power Architecture(NPA) debug support"
	depends on MSM_NPA
	default n
	help
	  Exports functions that can debug or reset NPA internal
	  data structures.

config MSM_NPA_REMOTE
	bool "Node Power Architecture(NPA) remoting"
	depends on MSM_NPA
	default n
	help
	  Enables Linux NPA clients to talk to NPA nodes across
	  processor boundary.

config MSM_NPA_REMOTE_ONCRPC
	bool "Enables NPA remoting through ONCRPC protocol."
	depends on MSM_NPA && MSM_ONCRPCROUTER
	select MSM_NPA_REMOTE
	default n
	help
	  Enables Linux NPA clients to talk to NPA nodes in the modem
	  using ONCRPC communication protocol.

config MSM_NPA_PROC_COMM
	bool "Enables NPA remoting through PROC-COMM to issue requests"
	depends on MSM_NPA_REMOTE_ONCRPC && MSM_PROC_COMM
	default n
	help
	  Enables the use of PROC-COMM to make requests instead of ONCRPC.
	  ONCRPC is however still required for NPA setup.

config MSM_NPA_SYSTEM_BUS
	bool "NPA-managed System Bus (AXI) rates through PM_QOS."
	depends on MSM_NPA_REMOTE
	default n
	help
	  PM_QOS System Bus rate requests are interpreted as 'Flow IDs' and
	  are routed through the NPA framework.

config MSM_PIL
	bool "Peripheral image loading"
	select FW_LOADER
	depends on ARCH_MSM8X60
	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 SMMU_8X60
	bool

config SMMU
	bool "System MMU support"
	depends on MMU
	select VCM_MM
	select SMMU_8X60 if ARCH_MSM8X60
	depends on ARCH_MSM8X60
	default n
	help
	  This is the System MMU driver for 8x60.

config SMMU_PGTABLES_L2
	bool "Allow SMMU page tables in the L2 cache (Experimental)"
	depends on SMMU=y
	depends on MMU
	depends on CPU_DCACHE_DISABLE=n
	default y
	help
	 Improves page fault latency at the expense of potential L2 pollution.
	 Most people can probably say Y here.

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

config MSM7200A_TLMM
       bool

config MSM8660_TLMM
       bool

config MSM_BUS_SCALING
	bool "Bus scaling driver"
	default n
endif
