Input: touch-overlay - add touchscreen overlay handling
authorJavier Carrasco <javier.carrasco@wolfvision.net>
Wed, 16 Oct 2024 04:02:41 +0000 (06:02 +0200)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Sun, 27 Jul 2025 08:41:21 +0000 (01:41 -0700)
commitea4d331050b4cd43e6a900937db88b01ef75e1f2
tree3a4e52b1455d64e6b05599463934f46d58dcb826
parent19875ccec01653a897a53db91cd4434c52ef5465
Input: touch-overlay - add touchscreen overlay handling

Some touch devices provide mechanical overlays with different objects
like buttons or clipped touchscreen surfaces.

In order to support these objects, add a series of helper functions
to the input subsystem to transform them into overlay objects via
device tree nodes.

These overlay objects consume the raw touch events and report the
expected input events depending on the object properties.

Note that the current implementation allows for multiple definitions
of touchscreen areas (regions that report touch events), but only the
first one will be used for the touchscreen device that the consumers
typically provide.
Should the need for multiple touchscreen areas arise, additional
touchscreen devices would be required at the consumer side.
There is no limitation in the number of touch areas defined as buttons.

Reviewed-by: Jeff LaBundy <jeff@labundy.com>
Signed-off-by: Javier Carrasco <javier.carrasco@wolfvision.net>
Link: https://lore.kernel.org/r/20241016-feature-ts_virtobj_patch-v11-2-b292a1bbb0a1@wolfvision.net
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
MAINTAINERS
drivers/input/Makefile
drivers/input/touch-overlay.c [new file with mode: 0644]
include/linux/input/touch-overlay.h [new file with mode: 0644]