#
# RMI4 configuration
#
config RMI4_CORE
	tristate "Synaptics RMI4 bus support"
	help
	  Say Y here if you want to support the Synaptics RMI4 bus.  This is
	  required for all RMI4 device support.

	  If unsure, say Y.

config RMI4_I2C
	tristate "RMI4 I2C Support"
	depends on RMI4_CORE && I2C
	help
	  Say Y here if you want to support RMI4 devices connected to an I2C
	  bus.

	  If unsure, say Y.

config RMI4_SPI
	tristate "RMI4 SPI Support"
	depends on RMI4_CORE && SPI
	help
	  Say Y here if you want to support RMI4 devices connected to a SPI
	  bus.

	  If unsure, say N.

config RMI4_2D_SENSOR
	bool
	depends on RMI4_CORE

config RMI4_F11
	bool "RMI4 Function 11 (2D pointing)"
	select RMI4_2D_SENSOR
	depends on RMI4_CORE
	help
	  Say Y here if you want to add support for RMI4 function 11.

	  Function 11 provides 2D multifinger pointing for touchscreens and
	  touchpads. For sensors that support relative pointing, F11 also
	  provides mouse input.

config RMI4_F12
	bool "RMI4 Function 12 (2D pointing)"
	select RMI4_2D_SENSOR
	depends on RMI4_CORE
	help
	  Say Y here if you want to add support for RMI4 function 12.

	  Function 12 provides 2D multifinger pointing for touchscreens and
	  touchpads. For sensors that support relative pointing, F12 also
	  provides mouse input.

config RMI4_F30
	bool "RMI4 Function 30 (GPIO LED)"
	depends on RMI4_CORE
	help
	  Say Y here if you want to add support for RMI4 function 30.

	  Function 30 provides GPIO and LED support for RMI4 devices. This
	  includes support for buttons on TouchPads and ClickPads.

config RMI4_F54
	bool "RMI4 Function 54 (Analog diagnostics)"
	depends on RMI4_CORE
	depends on VIDEO_V4L2=y || (RMI4_CORE=m && VIDEO_V4L2=m)
	select VIDEOBUF2_VMALLOC
	help
	  Say Y here if you want to add support for RMI4 function 54

	  Function 54 provides access to various diagnostic features in certain
	  RMI4 touch sensors.
