HID: Add support for Surface Aggregator Module HID transport
authorMaximilian Luz <luzmaximilian@gmail.com>
Wed, 10 Mar 2021 22:53:28 +0000 (23:53 +0100)
committerJiri Kosina <jkosina@suse.cz>
Tue, 30 Mar 2021 07:19:29 +0000 (09:19 +0200)
commitb05ff1002a5c19f2fd511c6eada6f475ff701841
treed428e21ff5deb636ce05368b54608bc5299ff7be
parenta6ad93e37e76ec43c9cee6a91dd783fb854c2ff1
HID: Add support for Surface Aggregator Module HID transport

Add a HID transport driver to support integrated HID devices on newer
Microsoft Surface models (specifically 7th-generation, i.e. Surface
Laptop 3, Surface Book 3, and later).

On those models, the internal keyboard and touchpad (as well as some
other HID devices with currently unknown function) are connected via the
generic HID subsystem (TC=0x15) of the Surface System Aggregator Module
(SSAM). This subsystem provides a generic HID transport layer, support
for which is implemented by this driver.

Co-developed-by: Blaž Hrastnik <blaz@mxxn.io>
Signed-off-by: Blaž Hrastnik <blaz@mxxn.io>
Signed-off-by: Maximilian Luz <luzmaximilian@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
MAINTAINERS
drivers/hid/Kconfig
drivers/hid/Makefile
drivers/hid/surface-hid/Kconfig [new file with mode: 0644]
drivers/hid/surface-hid/Makefile [new file with mode: 0644]
drivers/hid/surface-hid/surface_hid.c [new file with mode: 0644]
drivers/hid/surface-hid/surface_hid_core.c [new file with mode: 0644]
drivers/hid/surface-hid/surface_hid_core.h [new file with mode: 0644]