.../input/touchscreen/cypress,tt21000.yaml | 92 ++ arch/arm/boot/dts/imx7d-remarkable2.dts | 89 ++ arch/arm/configs/imx_v6_v7_defconfig | 1 + drivers/input/touchscreen/Kconfig | 14 + drivers/input/touchscreen/Makefile | 1 + drivers/input/touchscreen/cyttsp5.c | 1135 +++++++++++++++++ 6 files changed, 1332 insertions(+) create mode 100644 Documentation/devicetree/bindings/input/touchscreen/cypress,tt21000.yaml create mode 100644 drivers/input/touchscreen/cyttsp5.c
This patch series builds on top of [1] and adds support for the cyttsp5 touchscreen controller for the reMarkable 2. I first tried to add an I2C HID device. Although the cyttsp5 has some HID looking aspects it is not HID compatible. Just in trying to probe the device I found: - The HID descriptor has extra padding - The HID descriptor sets the high bytes of the descriptor length - The HID descriptor has extra unrecognised tags - The HID reset command doesn't appear to work I don't think there is a way to use the I2C HID framework with the cyttsp5. For anyone interested you can see the work here [2]. In that branch though I can only obtain a HID descriptor, nothing else works without more core changes. So instead I rebased the series from [1]. Converted to the new yaml DTS documentation, added regulator support and fixed a x/y miscalculation bug. 1: https://lwn.net/ml/linux-kernel/20180703094309.18514-1-mylene.josserand@bootlin.com/ 2: https://github.com/alistair23/linux/commits/rM2-mainline-cyttsp5-hid Alistair Francis (2): ARM: imx_v6_v7_defconfig: Enable the cyttsp5 touchscreen ARM: dts: imx7d: remarkable2: Enable the cyttsp5 Mylène Josserand (2): Input: Add driver for Cypress Generation 5 touchscreen Documentation: DT: bindings: input: Add documentation for cyttsp5 .../input/touchscreen/cypress,tt21000.yaml | 92 ++ arch/arm/boot/dts/imx7d-remarkable2.dts | 89 ++ arch/arm/configs/imx_v6_v7_defconfig | 1 + drivers/input/touchscreen/Kconfig | 14 + drivers/input/touchscreen/Makefile | 1 + drivers/input/touchscreen/cyttsp5.c | 1135 +++++++++++++++++ 6 files changed, 1332 insertions(+) create mode 100644 Documentation/devicetree/bindings/input/touchscreen/cypress,tt21000.yaml create mode 100644 drivers/input/touchscreen/cyttsp5.c -- 2.31.1
Hallo Alistair,
my Xorg (debian buster installation) does not like that:
[ 3112.462] (**) cyttsp5: Applying InputClass "evdev touchscreen catchall"
[ 3112.462] (**) cyttsp5: Applying InputClass "libinput touchscreen catchall"
[ 3112.462] (II) Using input driver 'libinput' for 'cyttsp5'
[ 3112.463] (**) cyttsp5: always reports core events
[ 3112.463] (**) Option "Device" "/dev/input/event1"
[ 3112.463] (**) Option "_source" "server/udev"
[ 3112.496] (II) event1 - cyttsp5: is tagged by udev as: Touchscreen
[ 3112.498] (EE) event1 - cyttsp5: kernel bug: device has min == max on ABS_X
[ 3112.498] (II) event1 - cyttsp5: was rejected
[ 3112.498] (II) event1 - not using input device '/dev/input/event1'.
[ 3112.499] (EE) libinput: cyttsp5: Failed to create a device for /dev/input/event1
# evtest /dev/input/event1
Input driver version is 1.0.1
Input device ID: bus 0x0 vendor 0x0 product 0x0 version 0x0
Input device name: "cyttsp5"
Supported events:
Event type 0 (EV_SYN)
Event type 1 (EV_KEY)
Event code 330 (BTN_TOUCH)
Event type 2 (EV_REL)
Event type 3 (EV_ABS)
Event code 0 (ABS_X)
Value 0
Min 0
Max 0 <-- upsets xorg
Event code 1 (ABS_Y)
Value 0
Min 0
Max 0
Event code 47 (ABS_MT_SLOT)
Value 0
Min 0
Max 31
Event code 48 (ABS_MT_TOUCH_MAJOR)
Value 0
Min 0
Max 255
Event code 49 (ABS_MT_TOUCH_MINOR)
Value 0
Min 0
Max 255
Event code 53 (ABS_MT_POSITION_X)
Value 0
Min 0
Max 1447
Event code 54 (ABS_MT_POSITION_Y)
Value 0
Min 0
Max 1071
Event code 57 (ABS_MT_TRACKING_ID)
Value 0
Min 0
Max 65535
Event code 58 (ABS_MT_PRESSURE)
Value 0
Min 0
Max 255
I specified touchscreen-size-x and touchscreen-size-y in my devicetree.
No idea why it is like this yet.
Regards,
Andreas
On Wed, 3 Nov 2021 21:48:26 +1000
Alistair Francis <alistair@alistair23.me> wrote:
> This patch series builds on top of [1] and adds support for the cyttsp5
> touchscreen controller for the reMarkable 2.
>
> I first tried to add an I2C HID device. Although the cyttsp5 has some HID
> looking aspects it is not HID compatible. Just in trying to probe the device
> I found:
> - The HID descriptor has extra padding
> - The HID descriptor sets the high bytes of the descriptor length
> - The HID descriptor has extra unrecognised tags
> - The HID reset command doesn't appear to work
>
> I don't think there is a way to use the I2C HID framework with the cyttsp5.
> For anyone interested you can see the work here [2]. In that branch though I
> can only obtain a HID descriptor, nothing else works without more core
> changes.
>
> So instead I rebased the series from [1]. Converted to the new yaml DTS
> documentation, added regulator support and fixed a x/y miscalculation bug.
>
> 1: https://lwn.net/ml/linux-kernel/20180703094309.18514-1-mylene.josserand@bootlin.com/
> 2: https://github.com/alistair23/linux/commits/rM2-mainline-cyttsp5-hid
>
> Alistair Francis (2):
> ARM: imx_v6_v7_defconfig: Enable the cyttsp5 touchscreen
> ARM: dts: imx7d: remarkable2: Enable the cyttsp5
>
> Mylène Josserand (2):
> Input: Add driver for Cypress Generation 5 touchscreen
> Documentation: DT: bindings: input: Add documentation for cyttsp5
>
> .../input/touchscreen/cypress,tt21000.yaml | 92 ++
> arch/arm/boot/dts/imx7d-remarkable2.dts | 89 ++
> arch/arm/configs/imx_v6_v7_defconfig | 1 +
> drivers/input/touchscreen/Kconfig | 14 +
> drivers/input/touchscreen/Makefile | 1 +
> drivers/input/touchscreen/cyttsp5.c | 1135 +++++++++++++++++
> 6 files changed, 1332 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/input/touchscreen/cypress,tt21000.yaml
> create mode 100644 drivers/input/touchscreen/cyttsp5.c
>
On Sat, Nov 6, 2021 at 12:52 AM Andreas Kemnade <andreas@kemnade.info> wrote: > > Hallo Alistair, > > my Xorg (debian buster installation) does not like that: > [ 3112.462] (**) cyttsp5: Applying InputClass "evdev touchscreen catchall" > [ 3112.462] (**) cyttsp5: Applying InputClass "libinput touchscreen catchall" > [ 3112.462] (II) Using input driver 'libinput' for 'cyttsp5' > [ 3112.463] (**) cyttsp5: always reports core events > [ 3112.463] (**) Option "Device" "/dev/input/event1" > [ 3112.463] (**) Option "_source" "server/udev" > [ 3112.496] (II) event1 - cyttsp5: is tagged by udev as: Touchscreen > [ 3112.498] (EE) event1 - cyttsp5: kernel bug: device has min == max on ABS_X > [ 3112.498] (II) event1 - cyttsp5: was rejected > [ 3112.498] (II) event1 - not using input device '/dev/input/event1'. > [ 3112.499] (EE) libinput: cyttsp5: Failed to create a device for /dev/input/event1 > > # evtest /dev/input/event1 > Input driver version is 1.0.1 > Input device ID: bus 0x0 vendor 0x0 product 0x0 version 0x0 > Input device name: "cyttsp5" > Supported events: > Event type 0 (EV_SYN) > Event type 1 (EV_KEY) > Event code 330 (BTN_TOUCH) > Event type 2 (EV_REL) > Event type 3 (EV_ABS) > Event code 0 (ABS_X) > Value 0 > Min 0 > Max 0 <-- upsets xorg > Event code 1 (ABS_Y) > Value 0 > Min 0 > Max 0 > Event code 47 (ABS_MT_SLOT) > Value 0 > Min 0 > Max 31 > Event code 48 (ABS_MT_TOUCH_MAJOR) > Value 0 > Min 0 > Max 255 > Event code 49 (ABS_MT_TOUCH_MINOR) > Value 0 > Min 0 > Max 255 > Event code 53 (ABS_MT_POSITION_X) > Value 0 > Min 0 > Max 1447 > Event code 54 (ABS_MT_POSITION_Y) > Value 0 > Min 0 > Max 1071 > Event code 57 (ABS_MT_TRACKING_ID) > Value 0 > Min 0 > Max 65535 > Event code 58 (ABS_MT_PRESSURE) > Value 0 > Min 0 > Max 255 > > I specified touchscreen-size-x and touchscreen-size-y in my devicetree. > No idea why it is like this yet. Thanks! I see the same problem on my side as well. I'm not using X so I don't see a crash and didn't notice the error. I'll work on fixing this. Alistair
© 2016 - 2025 Red Hat, Inc.