Some touchscreens are shipped with a physical layer on top of them where a number of buttons and a resized touchscreen surface might be available. In order to generate proper key events by overlay buttons and adjust the touch events to a clipped surface, these patches offer a documented, device-tree-based solution by means of helper functions. An implementation for a specific touchscreen driver is also included. The functions in ts-overlay provide a simple workflow to acquire physical objects from the device tree, map them into the device driver structures as overlay objects and generate events according to the object descriptions. This feature has been tested with a JT240MHQS-E3 display, which consists of an st1624 as the base touchscreen and an overlay with two buttons and a frame that clips its effective surface mounted on it. Signed-off-by: Javier Carrasco <javier.carrasco@xxxxxxxxxxxxxx> --- Changes in v3: - General: rename "virtobj" and "virtual" to "overlay" - PATCH 1/4: Make feature bool instead of tristate (selected by supported touchscreens) - Link to v2: https://lore.kernel.org/r/20230510-feature-ts_virtobj_patch-v2-0-f68a6bfe7a0f@xxxxxxxxxxxxxx Changes in v2: - PATCH 1/4: remove preprocessor directives (the module is selected by the drivers that support the feature). Typo in the commit message. - PATCH 2/4: more detailed documentation. Images and examples were added. - PATCH 3/4: select ts-virtobj automatically. - Link to v1: https://lore.kernel.org/r/20230510-feature-ts_virtobj_patch-v1-0-5ae5e81bc264@xxxxxxxxxxxxxx --- Javier Carrasco (4): Input: ts-overlay - Add touchscreen overlay object handling dt-bindings: touchscreen: add overlay-touchscreen and overlay-buttons properties Input: st1232 - add overlay touchscreen and buttons handling dt-bindings: input: touchscreen: st1232: add example with ts-overlay .../input/touchscreen/sitronix,st1232.yaml | 40 +++ .../bindings/input/touchscreen/touchscreen.yaml | 139 ++++++++ MAINTAINERS | 7 + drivers/input/touchscreen/Kconfig | 10 + drivers/input/touchscreen/Makefile | 1 + drivers/input/touchscreen/st1232.c | 87 +++-- drivers/input/touchscreen/ts-overlay.c | 356 +++++++++++++++++++++ include/linux/input/ts-overlay.h | 43 +++ 8 files changed, 665 insertions(+), 18 deletions(-) --- base-commit: ac9a78681b921877518763ba0e89202254349d1b change-id: 20230510-feature-ts_virtobj_patch-e267540aae74 Best regards, -- Javier Carrasco <javier.carrasco@xxxxxxxxxxxxxx>