21aef0dd68
This commit does two things: 1. First, it reorganizes the driver Kconfig files so that each is self contained. Before, a part of the driver configuration was in drivers/Kconfig and the rest was in in drivers/xyz/Konfig. Now, all of the driver configuration is consolitated in the latter. 2. Second, this commit correct numerous serious errors introduced in a previous reorganization of the driver Kconfig files. This was first noted by Nicholas Chin in PR270 for the case of the drivers/i2c/Kconfig but some examination indicates that the error was introduced into several other Kconfig files as well. The nature of the introduced error was basically this: - Nothing must intervene between the menuconfig selection and the following conditional configuration otpions. - A previous PR erroneously introduced unconditional options between the menuconfig and the following confditional logic, thus corrupting the driver menus. This error was easy to make because the driver Kconfig files were not well modularized. Making them fully self-contained should eliminate this kind of error in the future.
525 lines
14 KiB
Plaintext
525 lines
14 KiB
Plaintext
#
|
|
# For a description of the syntax of this configuration file,
|
|
# see the file kconfig-language.txt in the NuttX tools repository.
|
|
#
|
|
|
|
menuconfig INPUT
|
|
bool "Input Device Support"
|
|
default n
|
|
---help---
|
|
This directory holds implementations of input device drivers.
|
|
This includes such things as touchscreen and keypad drivers.
|
|
See include/nuttx/input/*.h for registration information.
|
|
|
|
if INPUT
|
|
|
|
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 "TSC2007 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 TSC2007 poll waiters"
|
|
default 4
|
|
---help---
|
|
Maximum number of threads that can be waiting on poll()
|
|
|
|
endif # INPUT_TSC2007
|
|
|
|
config INPUT_FT5X06
|
|
bool "FocalTech FT5x06 multi-touch, capacitive touch panel controller"
|
|
default n
|
|
select I2C
|
|
---help---
|
|
Enable support for the FocalTech FT5x06 multi-touch, capacitive
|
|
touch panel controller
|
|
|
|
config INPUT_FT5336
|
|
bool "FocalTech FT5336 multi-touch, capacitive touch panel controller"
|
|
default n
|
|
select I2C
|
|
select INPUT_FT5X06
|
|
depends on EXPERIMENTAL
|
|
---help---
|
|
Enable support for the FocalTech FT5x06 multi-touch, capacitive
|
|
touch panel controller
|
|
|
|
if INPUT_FT5X06
|
|
|
|
config FT5X06_POLLMODE
|
|
bool "Polled mode"
|
|
default n
|
|
---help---
|
|
Run the FT5x06 in a non-interrupt driven polled mode. Events will
|
|
not be driven by interrupts but rather based on a timed poll.
|
|
|
|
This is a non-optimal design both because (1) it will lead to delays
|
|
in detecting touch related events and (2) it will consume a
|
|
significant amount of CPU time to perform the polling.
|
|
|
|
config FT5X06_SWAPXY
|
|
bool "Swap X/Y"
|
|
default n
|
|
---help---
|
|
Reverse the meaning of X and Y to handle different LCD orientations.
|
|
|
|
config FT5X06_SINGLEPOINT
|
|
bool "Single point"
|
|
default n
|
|
---help---
|
|
Do no report multi-touch events
|
|
|
|
if FT5X06_SINGLEPOINT
|
|
|
|
config FT5X06_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 FT5X06_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 # FT5X06_SINGLEPOINT
|
|
|
|
config FT5X06_NPOLLWAITERS
|
|
int "Number FT5336/FT5x06 poll waiters"
|
|
default 4
|
|
---help---
|
|
Maximum number of threads that can be waiting on poll()
|
|
|
|
endif # INPUT_FT5X06
|
|
|
|
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
|
|
---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 identifying 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
|
|
---help---
|
|
Maximum number of threads that can be waiting on poll()
|
|
|
|
config MXT_DISABLE_CONFIG_DEBUG_INFO
|
|
bool "Disable verbose debug output"
|
|
default y
|
|
depends on DEBUG_INPUT_INFO
|
|
---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
|
|
---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 functionality (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_FEATURES
|
|
---help---
|
|
Enable very low register-level debug output.
|
|
|
|
endif # INPUT_STMPE811
|
|
|
|
config INPUT_CYPRESS_MBR3108
|
|
bool "Enable Cypress MBR3108 CapSense driver"
|
|
default n
|
|
---help---
|
|
Enable support for Cypress MBR3108 CapSense touch button & proximity
|
|
input sensor.
|
|
|
|
if INPUT_CYPRESS_MBR3108
|
|
|
|
config INPUT_CYPRESS_MBR3108_DEBUG
|
|
bool "Enable debug support for Cypress sensor"
|
|
default n
|
|
depends on DEBUG_FEATURES
|
|
---help---
|
|
Enable debugging traces for MBR3108 driver
|
|
|
|
config INPUT_CYPRESS_MBR3108_NPOLLWAITERS
|
|
int "Number of waiters to poll"
|
|
default 1
|
|
---help---
|
|
Maximum number of threads that can be waiting on poll()
|
|
|
|
endif # INPUT_CYPRESS_MBR3108
|
|
|
|
config BUTTONS
|
|
bool "Button Inputs"
|
|
default n
|
|
---help---
|
|
Enable standard button upper half driver.
|
|
|
|
if BUTTONS
|
|
|
|
config BUTTONS_LOWER
|
|
bool "Generic Lower Half Button Driver"
|
|
default n
|
|
depends on ARCH_BUTTONS && ARCH_IRQBUTTONS
|
|
---help---
|
|
If the board supports the standard button interfaces as
|
|
defined in include/nuttx/board.h header file, then this
|
|
standard button lower half driver might be usable.
|
|
|
|
In order for this generic driver to be usable:
|
|
|
|
1. The board implementation must provide the button
|
|
interfaces as defined in include/nuttx/board.h
|
|
2. The board implementation must support interrupts for each
|
|
button.
|
|
3. The board.h header file must provide the definition
|
|
NUM_BUTTONS, and
|
|
4. The board.h header file must not include any other
|
|
header files that are not accessible in this context
|
|
(such as those in arch/<arch>/src/<chip>) UNLESS those
|
|
inclusions are conditioned on __KERNEL__. button_lower.c
|
|
will undefine __KERNEL__ before included board.h.
|
|
|
|
If your board does not meet these requirements, then the
|
|
button_lower.c file can still be copied to your your
|
|
board src/ directory and modified for your specific board
|
|
requirements.
|
|
|
|
config BUTTONS_NPOLLWAITERS
|
|
int "Max Number of Poll Waiters"
|
|
default 2
|
|
|
|
endif # BUTTONS
|
|
|
|
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
|
|
|
|
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
|
|
|
|
endif # AJOYSTICK
|
|
|
|
config INPUT_NUNCHUCK
|
|
bool "Nintendo Wii Nunchuck Joystick (White Model)"
|
|
default n
|
|
select I2C
|
|
---help---
|
|
Enable a Nintendo Wii Nunchuck joystick upper half driver. The
|
|
nunchuck joystick provides position data as an integer value.The
|
|
analog positional data may also be accompanied by discrete
|
|
button data.
|
|
|
|
if INPUT_NUNCHUCK
|
|
|
|
config NUNCHUCK_NPOLLWAITERS
|
|
int "Max Number of Poll Waiters"
|
|
default 2
|
|
|
|
endif # INPUT_NUNCHUCK
|
|
|
|
endif # INPUT
|