mirror of
https://github.com/Dasharo/linux.git
synced 2026-03-06 15:25:10 -08:00
HID: hid-goodix: Add Goodix HID-over-SPI driver
This patch introduces a new driver to support the Goodix GT7986U touch controller. This device is not compatible with Microsoft's HID-over-SPI protocol and therefore needs to implement its own flavor. The data reported is packaged according to the HID protocol but uses SPI for communication to improve speed. This enables the device to transmit not only coordinate data but also corresponding raw data that can be accessed by user-space programs through the hidraw interface. The raw data can be utilized for functions like palm rejection, thereby improving the touch experience. Key features: - Device connection confirmation and initialization - IRQ-based event reporting to the input subsystem - Support for HIDRAW operations (GET_REPORT and SET_REPORT) Reviewed-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> Signed-off-by: Charles Wang <charles.goodix@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.com>
This commit is contained in:
committed by
Jiri Kosina
parent
6e4436539a
commit
75e16c8ce2
@@ -404,6 +404,12 @@ config HID_VIVALDI_COMMON
|
||||
option so that drivers can use common code to parse the HID
|
||||
descriptors for vivaldi function row keymap.
|
||||
|
||||
config HID_GOODIX_SPI
|
||||
tristate "Goodix GT7986U SPI HID touchscreen"
|
||||
depends on SPI_MASTER
|
||||
help
|
||||
Support for Goodix GT7986U SPI HID touchscreen device.
|
||||
|
||||
config HID_GOOGLE_HAMMER
|
||||
tristate "Google Hammer Keyboard"
|
||||
select HID_VIVALDI_COMMON
|
||||
|
||||
@@ -54,6 +54,7 @@ obj-$(CONFIG_HID_GEMBIRD) += hid-gembird.o
|
||||
obj-$(CONFIG_HID_GFRM) += hid-gfrm.o
|
||||
obj-$(CONFIG_HID_GLORIOUS) += hid-glorious.o
|
||||
obj-$(CONFIG_HID_VIVALDI_COMMON) += hid-vivaldi-common.o
|
||||
obj-$(CONFIG_HID_GOODIX_SPI) += hid-goodix-spi.o
|
||||
obj-$(CONFIG_HID_GOOGLE_HAMMER) += hid-google-hammer.o
|
||||
obj-$(CONFIG_HID_GOOGLE_STADIA_FF) += hid-google-stadiaff.o
|
||||
obj-$(CONFIG_HID_VIVALDI) += hid-vivaldi.o
|
||||
|
||||
810
drivers/hid/hid-goodix-spi.c
Normal file
810
drivers/hid/hid-goodix-spi.c
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user