Intel Touch Host Controller (THC) is a new high performance input IP which can benefit HID device's data transaction, such as touch screen, touch pad, stylus.
THC IP now evoluates to V4, it can support 3 different modes: IPTS, HIDSPI and HIDI2C. Here are upgrade history:
- THC v1, for TGL/LKF, supports Intel private IPTS (Intel Precise Touch and Stylus) protocol ( IPTS mode)
- THC v2, for ADL, adds industrial standard HID over SPI protocol support (HIDSPI mode)
- THC v3, for MTL, enhances HID over SPI mode
- THC v4, for LNL, adds inudstrial standard HID over I2C protocol support (HIDI2C mode)
These repo provides THC HIDSPI mode and THC HIDI2C mode support on Linux, includes:
- Document for THC hardware and software introduction.
- Intel THC Hardware layer driver which provides control interfaces for protocol layer.
- Intel QuickSPI (R) driver working as a HIDSPI device driver which implements HID over SPI protocol and flow.
- Intel QuickI2C (R) driver working as a HIDI2C device driver which implements HID over I2C protocol and flow.
Linux Surface community (https://github.com/linux-surface) implements IPTS mode, you can find IPTS mode driver there.
- driver_source_code: THC drivers source code.
- patches: patches for special use case.
- Documents: documents for THC IP and THC drivers.
- BIOS: THC must be enabled in BIOS, and ACPI parameters are correctly configured.
- Touch Device: TouchScreen/TouchPad must be compatible with HIDSPI or HIDI2C protocol and connected correctly.
- Linux Kernel: version >= 6.8
- Board: Intel LNL Reference & Validation Platform Board.
- Touch Device:
- Elan HIDI2C TouchScreen with Stylus
- Elan HIDSPI TouchScreen with Stylus
- Wacom HIDSPI TouchScreen with Stylus
- THAT TouchPad in multi-touch mode
- ALPS TouchPad in mouse mode
- Linxu Kernel: V6.10 and V6.11
- Clone and checkout Linux kernel source tree
- Copy driver_source_code/include/linux/* to $(kernel_tree)/include/linux/*
- Copy driver_source_code/intel-thc-hid folder to &(kernel_tree)/drivers/hid/
- Include intel-thc-hid/Makefile into &(kernel_tree)/drivers/hid/Makefile
- Include intel-thc-hid/Kconfig into &(kernel_tree)/drivers/hid/Kconfig
- Add follow lines to kernel configure file:
CONFIG_INTEL_THC_HID=m CONFIG_INTEL_QUICKSPI=m CONFIG_INTEL_QUICKI2C=m
- Build kernel