u-boot/drivers/input/Kconfig
Hector Martin faf28c046e input: apple: Add support for Apple MTP keyboard
Apple M2 devices have an MTP coprocessor in charge of keyboard/trackpad
handling, communicating over a DockChannel interface. Add a simple
driver for this.

The keyboard does not require any initialization messages, but we have a
problem: we cannot reset the MTP so Linux can start it fresh, and it
delivers a number of informative packets on startup. To work around
this, we buffer those messages and re-inject them into the FIFO (which
is big enough to hold all of them) on shutdown, so Linux finds them when
it initializes its driver. The actual MTP coprocessor is quiesced, which
does work properly.

Signed-off-by: Hector Martin <marcan@marcan.st>
2024-04-02 20:56:02 +02:00

116 lines
3.6 KiB
Text

config INPUT
bool "Enable input subsystem"
depends on DM
default y
config SPL_INPUT
bool "Enable input subsystem for SPL"
depends on SPL_DM
config TPL_INPUT
bool "Enable input subsystem for TPL"
depends on TPL_DM
config DM_KEYBOARD
bool "Enable driver model keyboard support"
depends on DM
help
This adds a uclass for keyboards and implements keyboard support
using driver model. The API is implemented by keyboard.h and
includes methods to start/stop the device, check for available
input and update LEDs if the keyboard has them.
config SPL_DM_KEYBOARD
bool "Enable driver model keyboard support for SPL"
depends on SPL_DM
help
This adds a uclass for keyboards and implements keyboard support
using driver model. The API is implemented by keyboard.h and
includes methods to start/stop the device, check for available
input and update LEDs if the keyboard has them.
config TPL_DM_KEYBOARD
bool "Enable driver model keyboard support for TPL"
depends on TPL_DM
help
This adds a uclass for keyboards and implements keyboard support
using driver model. The API is implemented by keyboard.h and
includes methods to start/stop the device, check for available
input and update LEDs if the keyboard has them.
config APPLE_KEYB
bool
depends on DM_KEYBOARD
config APPLE_SPI_KEYB
bool "Enable Apple SPI keyboard support"
select APPLE_KEYB
depends on DM_KEYBOARD && DM_SPI
help
This adds a driver for the keyboards found on various
laptops based on Apple SoCs. These keyboards use an
Apple-specific HID-over-SPI protocol.
config BUTTON_KEYBOARD
bool "Buttons as keyboard"
depends on DM_KEYBOARD
select BUTTON_GPIO
help
Enable support for mapping buttons to keycode events. Use linux,code button driver
dt node to define button-event mapping.
For example, an arrows and enter may be implemented to navigate boot menu.
config APPLE_MTP_KEYB
bool "Enable Apple MTP keyboard support"
select APPLE_KEYB
depends on DM_KEYBOARD && MISC
help
This adds a driver for the keyboards found on various
laptops based on Apple M2 and newer SoCs. These keyboards use an
Apple-specific HID-over-DockChannel protocol.
config CROS_EC_KEYB
bool "Enable Chrome OS EC keyboard support"
depends on INPUT
help
Most ARM Chromebooks use an EC to provide access to the keyboard.
Messages are used to request key scans from the EC and these are
then decoded into keys by this driver.
config SPL_CROS_EC_KEYB
bool "Enable Chrome OS EC keyboard support in SPL"
depends on SPL_INPUT
help
Most ARM Chromebooks use an EC to provide access to the keyboard.
Messages are used to request key scans from the EC and these are
then decoded into keys by this driver.
config TPL_CROS_EC_KEYB
bool "Enable Chrome OS EC keyboard support in TPL"
depends on TPL_INPUT
help
Most ARM Chromebooks use an EC to provide access to the keyboard.
Messages are used to request key scans from the EC and these are
then decoded into keys by this driver.
config I8042_KEYB
bool "Enable Intel i8042 keyboard support"
depends on DM_KEYBOARD
default X86
help
This adds a driver for the i8042 keyboard controller, allowing the
keyboard to be used on devices which support this controller. The
driver handles English and German keyboards - set the environment
variable 'keymap' to "de" to select German. Keyboard repeat is
handled by the keyboard itself.
config TEGRA_KEYBOARD
bool "NVIDIA Tegra internal matrix keyboard controller support"
help
A matrix keyboard connected directly to the internal keyboard
controller on Tegra SoCs.
config TWL4030_INPUT
bool "Enable TWL4030 Input controller"
help
Enable TWL4030 Input controller