Input: add core support for Goodix Berlin Touchscreen IC
authorNeil Armstrong <neil.armstrong@linaro.org>
Mon, 29 Jan 2024 09:16:36 +0000 (10:16 +0100)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Tue, 30 Jan 2024 23:16:32 +0000 (15:16 -0800)
commit44362279bdd481b1b2aefb15e9fc54a2fcd846c1
treeadbadc6ef6963e076ffe8dbed7cbd2ade3e8eacd
parent9c81ef43576e1721c442424abac48717da5e6266
Input: add core support for Goodix Berlin Touchscreen IC

Add initial support for the new Goodix "Berlin" touchscreen ICs.

These touchscreen ICs support SPI, I2C and I3C interface, up to
10 finger touch, stylus and gestures events.

This initial driver is derived from the Goodix goodix_ts_berlin
available at [1] and [2] and only supports the GT9916 IC
present on the Qualcomm SM8550 MTP & QRD touch panel.

The current implementation only supports BerlinD, aka GT9916.

Support for advanced features like:
- Firmware & config update
- Stylus events
- Gestures events
- Previous revisions support (BerlinA or BerlinB)
is not included in current version.

The current support will work with currently flashed firmware
and config, and bail out if firmware or config aren't flashed yet.

[1] https://github.com/goodix/goodix_ts_berlin
[2] https://git.codelinaro.org/clo/la/platform/vendor/opensource/touch-drivers

Reviewed-by: Jeff LaBundy <jeff@labundy.com>
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Link: https://lore.kernel.org/r/20240129-topic-goodix-berlin-upstream-initial-v15-2-6f7d096c0a0a@linaro.org
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/input/touchscreen/Kconfig
drivers/input/touchscreen/Makefile
drivers/input/touchscreen/goodix_berlin.h [new file with mode: 0644]
drivers/input/touchscreen/goodix_berlin_core.c [new file with mode: 0644]