#
# For a description of the syntax of this configuration file,
# see the file kconfig-language.txt in the NuttX tools repository.
#

config MOUSE
	bool "Enable mouse support"
	default n
	---help---
		Enable support for mouse devices.

if MOUSE

config MOUSE_WHEEL
	bool "Enable mouse wheel support"
	default n
	---help---
		Enable support for a 4-button mouse report that includes a while
		position.

endif # MOUSE

config INPUT_MAX11802
	bool "MAX11802 touchscreen controller"
	default n
	select SPI
	---help---
		Enable support for the MAX11802 touchscreen controller

config INPUT_TSC2007
	bool "TI TSC2007 touchscreen controller"
	default n
	select I2C
	---help---
		Enable support for the TI TSC2007 touchscreen controller

if INPUT_TSC2007

config TSC2007_8BIT
	bool "8-bit Conversions"
	default n
	---help---
		Use faster, but less accurate, 8-bit conversions.  Default: 12-bit conversions.

config TSC2007_MULTIPLE
	bool "Multiple TSC2007 Devices"
	default n
	---help---
		Can be defined to support multiple TSC2007 devices on board.

config TSC2007_NPOLLWAITERS
	int "Number poll waiters"
	default 4
	depends on !DISABLE_POLL
	---help---
		Maximum number of threads that can be waiting on poll()

endif

config INPUT_ADS7843E
	bool "TI ADS7843/TSC2046 touchscreen controller"
	default n
	select SPI
	---help---
		Enable support for the TI/Burr-Brown ADS7842 touchscreen controller.  I believe
		that driver should be compatibile with the TI/Burr-Brown TSC2046 and XPT2046
		touchscreen controllers as well.

if INPUT_ADS7843E

config ADS7843E_MULTIPLE
	bool "Multiple ADS7843E Devices"
	default n
	---help---
		Can be defined to support multiple ADS7843E devices on board.

config ADS7843E_NPOLLWAITERS
	int "Number poll waiters"
	default 4
	depends on !DISABLE_POLL
	---help---
		Maximum number of threads that can be waiting on poll()

config ADS7843E_SPIDEV
	int "SPI bus number"
	default 0
	---help---
		Selects the SPI bus number identying that SPI interface that
		connects the ADS843E to the MCU.

config ADS7843E_DEVMINOR
	int "Input device minor number"
	default 0
	---help---
		The ADS7843E device will be registered as /dev/inputN where N is the
		value provided by this setting.

config ADS7843E_SPIMODE
	int "SPI mode"
	default 0
	range 0 3
	---help---
		Controls the SPI mode.  The device should work in mode 0, but
		sometimes you need to experiment.

config ADS7843E_FREQUENCY
	int "SPI frequency"
	default 100000
	---help---
		Define to use a different SPI bus frequency.

config ADS7843E_SWAPXY
	bool "Swap X/Y"
	default n
	---help---
		Reverse the meaning of X and Y to handle different LCD orientations.

config ADS7843E_THRESHX
	int "X threshold"
	default 12
	---help---
		New touch positions will only be reported when the X or Y data changes by these
		thresholds. This trades reduced data rates for some loss in dragging accuracy.  For
		12-bit values the raw ranges are 0-4095. So for example, if your display is
		320x240, then THRESHX=13 and THRESHY=17 would correspond to one pixel.  Default: 12

config ADS7843E_THRESHY
	int "Y threshold"
	default 12
	---help---
		New touch positions will only be reported when the X or Y data changes by these
		thresholds. This trades reduced data rates for some loss in dragging accuracy.  For
		12-bit values the raw ranges are 0-4095. So for example, if your display is
		320x240, then THRESHX=13 and THRESHY=17 would correspond to one pixel.  Default: 12

endif

config INPUT_MXT
	bool "Atmel maXTouch Driver"
	default n
	---help---
		Enables support for the Atmel maXTouch driver

if INPUT_MXT

config MXT_THRESHX
	int "X threshold"
	default 5
	---help---
		New touch positions will only be reported when the X or Y data
		changes by these thresholds. This trades reduced data rates for some
		loss in dragging accuracy.  For 12-bit values the raw ranges are
		0-4095. So for example, if your display is 800x480, then THRESHX=5
		and THRESHY=8 would correspond to a one pixel change. Default: 5

		NOTE: This does nothing to reduce the interrupt rate.  It only
		reduces the rate at which touch events are reports.

config MXT_THRESHY
	int "Y threshold"
	default 8
	---help---
		New touch positions will only be reported when the X or Y data
		changes by these thresholds. This trades reduced data rates for some
		loss in dragging accuracy.  For 12-bit values the raw ranges are
		0-4095. So for example, if your display is 800x480, then THRESHX=5
		and THRESHY=8 would correspond to a one pixel change. Default: 8

		NOTE: This does nothing to reduce the interrupt rate.  It only
		reduces the rate at which touch events are reports.

config MXT_NPOLLWAITERS
	int "Number poll waiters"
	default 4
	depends on !DISABLE_POLL
	---help---
		Maximum number of threads that can be waiting on poll()

config MXT_DISABLE_DEBUG_VERBOSE
	bool "Disable verbose debug output"
	default y
	depends on DEBUG_VERBOSE && DEBUG_INPUT
	---help---
		The maXTouch tends to generate interrupts at a high rate during the
		contact.  If verbose debug is enabled in this driver, you may not
		be able to get anything done because of the high debug output rate.

		This setting will allow you to keep verbose touchscreen debug output
		in other modules, but to specifically suppress the debug out from
		the MXT driver.  Debug (non-verbose) errors will still be generated,
		but the chit-chat level will be eliminated.

endif # INPUT_MXT

config INPUT_STMPE811
	bool "STMicro STMPE811 Driver"
	default n
	---help---
		Enables support for the STMPE811 driver

if INPUT_STMPE811

choice
	prompt "STMPE Interface"
	default STMPE811_I2C

config STMPE811_SPI
	bool "SPI Interface"
	select SPI
	---help---
		Enables support for the SPI interface (not currently supported)

config STMPE811_I2C
	bool "STMPE811 I2C Interface"
	select I2C
	---help---
		Enables support for the I2C interface

endchoice

config STMPE811_ACTIVELOW
	bool "Active Low Interrupt"
	default n
	---help---
		The STMPE811 interrupt is provided by a discrete input (usually a
		GPIO interrupt on most MCU architectures).  This setting determines
		whether the interrupt is active high (or rising edge triggered) or
		active low (or falling edge triggered).  Default:  Active
		high/rising edge.

config STMPE811_EDGE
	bool "Edge triggered Interrupt"
	default n
	---help---
		The STMPE811 interrupt is provided by a discrete input (usually a
		GPIO interrupt on most MCU architectures).  This setting determines
		whether the interrupt is edge or level triggered.  Default: Level
		triggered.

config STMPE811_MULTIPLE
	bool "Multiple STMPE811 Devices"
	default n
	---help---
		Can be defined to support multiple STMPE811 devices on board.

config STMPE811_NPOLLWAITERS
	int "Number poll waiters"
	default 4
	depends on !DISABLE_POLL
	---help---
		Maximum number of threads that can be waiting on poll()

config STMPE811_TSC_DISABLE
	bool "Disable STMPE811 Touchscreen Support"
	default n
	---help---
		Disable driver touchscreen functionality.

config STMPE811_SWAPXY
	bool "Swap X/Y"
	default n
	depends on !STMPE811_TSC_DISABLE
	---help---
		Reverse the meaning of X and Y to handle different LCD orientations.

config STMPE811_THRESHX
	int "X threshold"
	default 12
	depends on !STMPE811_TSC_DISABLE
	---help---
		STMPE811 touchscreen data comes in a a very high rate.  New touch positions
		will only be reported when the X or Y data changes by these thresholds.
		This trades reduced data rates for some loss in dragging accuracy.  The
		STMPE811 is configure for 12-bit values the raw ranges are 0-4095. So
		for example, if your display is 320x240, then THRESHX=13 and THRESHY=17
		would correspond to one pixel.  Default: 12

config STMPE811_THRESHY
	int "Y threshold"
	default 12
	depends on !STMPE811_TSC_DISABLE
	---help---
		STMPE811 touchscreen data comes in a a very high rate.  New touch positions
		will only be reported when the X or Y data changes by these thresholds.
		This trades reduced data rates for some loss in dragging accuracy.  The
		STMPE811 is configure for 12-bit values the raw ranges are 0-4095. So
		for example, if your display is 320x240, then THRESHX=13 and THRESHY=17
		would correspond to one pixel.  Default: 12

config STMPE811_ADC_DISABLE
	bool "Disable STMPE811 ADC Support"
	default y
	---help---
		Disable driver ADC functionality.

config STMPE811_GPIO_DISABLE
	bool "Disable STMPE811 GPIO Support"
	default y
	---help---
		Disable driver GPIO functionality.

config STMPE811_GPIOINT_DISABLE
	bool "Disable STMPE811 GPIO Interrupt Support"
	default y
	depends on !STMPE811_GPIO_DISABLE
	---help---
		Disable driver GPIO interrupt functionlality (ignored if GPIO functionality is
		disabled).

config STMPE811_TEMP_DISABLE
	bool "Disable STMPE811 Temperature Sensor Support"
	default y
	---help---
		Disable driver temperature sensor functionality.

config STMPE811_REGDEBUG
	bool "Enable Register-Level STMPE811 Debug"
	default n
	depends on DEBUG
	---help---
		Enable very low register-level debug output.

endif # INPUT_STMPE811

config DJOYSTICK
	bool "Discrete Joystick"
	default n
	---help---
		Enable standard discrete joystick upper half driver.  A discrete
		joystick refers to a joystick that could be implemented entirely
		with GPIO input pins.  So up, down, left, and right are all discrete
		values like buttons (as opposed to integer values like you might
		obtain from an analog joystick).

if DJOYSTICK

config DJOYSTICK_NPOLLWAITERS
	int "Max Number of Poll Waiters"
	default 2
	depends on !DISABLE_POLL

endif # DJOYSTICK

config AJOYSTICK
	bool "Analog Joystick"
	default n
	---help---
		Enable standard analog joystick upper half driver.  An analog
		joystick refers to a joystick that provides position data as an
		integer value that might have been obtained through Analog-
		to-Digital Conversion (ADC).  The analog positional data may also
		be accompanied by discrete button data.

if AJOYSTICK

config AJOYSTICK_NPOLLWAITERS
	int "Max Number of Poll Waiters"
	default 2
	depends on !DISABLE_POLL

endif # AJOYSTICK
