On 1/16/25 2:01 AM, Dmitry Torokhov wrote:
On Mon, Jan 13, 2025 at 09:08:47PM +0100, Marek Vasut wrote:
On 1/13/25 8:43 PM, Dmitry Torokhov wrote:
On Mon, Dec 23, 2024 at 08:03:24PM +0100, Marek Vasut wrote:
Add support for T152 KoD knob events [1]. The KoD touch controller
family supports up to two knobs attached to the glass. Each knob can
be turned in either direction and the touch controller processes the
event and reports the knob position for each knob. Each knob is also
pressure sensitive, the pressure is reported as well. Each knob also
supports center press and additional buttons, which are reported as
BTN_0/BTN_1 for the center press for each knob, and BTN_A/BTN_B for
the additional buttons on the knob.
The knob is similar to Dell Canvas 27 knob already supported by
hid-multitouch, except it is non-removable and there can be up to
two such knobs .
This implementation is extracted and heavily reworked from Atmel
downstream patchset work by Michael <mksgong@xxxxxxxxx> from [2]
branch master as of commit 9c77fbf32982 ("Merge pull request #35
from atmel-maxtouch/20240103_HA_protocol_fixes").
[1] https://www.microchip.com/en-us/products/touch-and-gesture/maxtouch-touchscreen-controllers/kod-family
[2] https://github.com/atmel-maxtouch/maXTouch_linux
Signed-off-by: Marek Vasut <marex@xxxxxxx>
---
Note: I am not sure whether reporting the second wheel as GAS/REL_HWHEEL
is the right thing to do, I don't think it is. Maybe there is some
better way to handle multiple knobs ?
How about creating separate input devices for these?
This is what I had originally, but ... why ?
This is a single input device, touchscreen with up to two knobs , so why
would it be multiple input devices ?
So as you can see it is hard to express the knobs purpose within a
single input device. Additionally (as far as I understand) knobs are
not connected to the touchscreen function but rather rotary encoders
just happened to be mounted on the touchscreen. They are not considered
contacts.
From the touch controller perspective, they are contacts.
Therefore I think it makes sense to report them as 2 separate input
devices (maybe modeling after how drivers/input/misc/rotary-encoder.c
does things).
Not really, the knobs also act as buttons, so the user might navigate a
finger on the touch surface to point to an object, and turn or press the
knob to trigger some action. This is similar to the Dell Canvas 27 knob
already mentioned above, except that one was not glued to the glass, it
was movable.