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. 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). Thanks. -- Dmitry