menu "Qualcomm MSM specific device drivers"
	depends on ARCH_MSM

config MSM_SSBI
	bool "Qualcomm Single-wire Serial Bus Interface (SSBI)"
	help
	  If you say yes to this option, support will be included for the
	  built-in SSBI interface on Qualcomm MSM family processors.

	  This is required for communicating with Qualcomm PMICs and
	  other devices that have the SSBI interface.

config SPS
	bool "SPS support"
	select GENERIC_ALLOCATOR
	help
	  The SPS (Smart Peripheral Switch) is a DMA engine.
	  It can move data in the following modes:
		1. Peripheral-to-Peripheral.
		2. Peripheral-to-Memory.
		3. Memory-to-Memory.

config USB_BAM
	boolean "USB BAM Driver"
	depends on SPS && USB_GADGET
	help
	  Enabling this option adds USB BAM Driver.
	  USB BAM driver was added to supports SPS Peripheral-to-Peripheral
	  transfers between the USB and other peripheral.

config SPS_SUPPORT_BAMDMA
	bool "SPS support BAM DMA"
	depends on SPS
	default n
	help
	  The BAM-DMA is used for Memory-to-Memory transfers.
	  The main use cases is RPC between processors.
	  The BAM-DMA hardware has 2 registers sets:
		1. A BAM HW like all the peripherals.
		2. A DMA channel configuration (i.e. channel priority).

config SPS_SUPPORT_NDP_BAM
	bool "SPS support NDP BAM"
	depends on SPS
	default n
	help
	  No-Data-Path BAM is used to improve BAM performance.

config QPNP_POWER_ON
	tristate "QPNP PMIC POWER-ON Driver"
	depends on OF_SPMI && SPMI && MSM_QPNP_INT && INPUT
	help
	  This driver supports the power-on functionality on Qualcomm
	  PNP PMIC. It currently supports reporting the change in status of
	  the KPDPWR_N line (connected to the power-key).

config QPNP_CLKDIV
	tristate "QPNP PMIC clkdiv driver"
	depends on OF_SPMI && SPMI
	help
	  This driver supports the clkdiv functionality on the Qualcomm
	  PNP PMIC. It configures the frequency of clkdiv outputs on the
	  PMIC. These clocks are typically wired through alternate functions
	  on gpio pins.

config QPNP_VIBRATOR
	tristate "Vibrator support for QPNP PMIC"
	depends on OF_SPMI
	help
	  This option enables device driver support for the vibrator
	  on the Qualcomm's QPNP PMICs. The vibrator is connected on the
	  VIB_DRV_N line and can be controlled manually or by the DTEST lines.
	  It uses the android timed-output framework.

config QPNP_REVID
	tristate "QPNP Revision ID Peripheral"
	depends on SPMI
	help
	  Say 'y' here to include support for the Qualcomm QPNP REVID
	  peripheral. REVID prints out the PMIC type and revision numbers
	  in the kernel log along with the PMIC option status. The PMIC
	  type is mapped to a Qualcomm chip part number and logged as well.

config QPNP_COINCELL
	tristate "Qualcomm QPNP coincell charger support"
	depends on SPMI && OF_SPMI
	help
	  This driver supports the QPNP coincell peripheral found inside of
	  Qualcomm QPNP PMIC devices.  The coincell charger provides a means to
	  charge a coincell battery or backup capacitor which is used to
	  maintain PMIC register state when the main battery is removed from the
	  mobile device.

config QPNP_USB_DETECT
	tristate "Qualcomm QPNP USB VBUS Detection"
	depends on POWER_SUPPLY
	help
	  This driver supports external USB VBUS detection circuitry which
	  can be connected to Qualcomm QPNP PMIC devices.  The driver will
	  configure a GPIO from the detector's output line and in turn notify
	  the USB driver of VBUS presence/disconnection using the power_supply
	  framework.

config IPA
	tristate "IPA support"
	depends on SPS && NET
	help
	  This driver supports the Internet Packet Accelerator (IPA) core.
	  IPA is a programmable protocol processor HW block.
	  It is designed to support generic HW processing of UL/DL IP packets
	  for various use cases independent of radio technology.
	  The driver support client connection and configuration
	  for the IPA core.
	  Kernel and user-space processes can call the IPA driver
	  to configure IPA core.

config RMNET_IPA
	tristate "IPA RMNET WWAN Network Device"
	depends on IPA && MSM_QMI_INTERFACE
	help
	  This WWAN Network Driver implements network stack class device.
	  It supports Embedded data transfer from A7 to Q6. Configures IPA HW
	  for RmNet Data Driver and also exchange of QMI messages between
	  A7 and Q6 IPA-driver.

config KLM
	boolean "KLM Driver"
	help
	  This driver handles the power management of the KLM (Key Ladder Module).

config MSM_AVTIMER
	tristate "Avtimer Driver"
	depends on MSM_QDSP6_APRV2 || MSM_QDSP6_APRV3
	help
		This driver gets the Q6 out of power collapsed state and
		exposes ioctl control to read avtimer tick.

config SSM
	tristate "Qualcomm Secure Service Module"
	depends on QSEECOM
	depends on MSM_SMD
	help
	  Provides an interface for OEM driver to communicate with Trustzone
	  and modem for key exchange and mode change.
	  This driver uses Secure Channel Manager interface for trustzone
	  communication and communicates with modem over SMD channel.

config QCA1530
	tristate "QCA1530 SoC GNSS Driver"
	depends on REGULATOR && OF
	depends on GPIOLIB && OF_GPIO
	depends on CLKDEV_LOOKUP
	help
	  Say Y here to include support for QCA1530 SOC chip.

	  QCA1530 chip enables support for GPS- and GLONASS-based position
	  determination.

	  To compile this driver as a module, choose M here: the module
	  will be called qca1530.

config MSM_SPSS
	tristate "MSM SPSS driver"
	default n
	help
	  Support for Standby Processing Sub-System (SPSS) module.

config MSM_BUS_SCALING
	bool "Bus scaling driver"
	default n
	help
		This option enables bus scaling on MSM devices.  Bus scaling
		allows devices to request the clocks be set to rates sufficient
		for the active devices needs without keeping the clocks at max
		frequency when a slower speed is sufficient.

config BUS_TOPOLOGY_ADHOC
	bool "ad-hoc bus scaling topology"
	default n
	help
		This option enables a driver that can handle adhoc bus topologies.
		Adhoc bus topology driver allows one to many connections and maintains
		directionality of connections by explicitly listing device connections
		thus avoiding illegal routes.

endmenu
