Skip to content

ARM: dts: qcom: msm8974-samsung-lt03lte: enable wacom digitizer + touchkeys#32

Open
vrajashkr wants to merge 4 commits into
msm8974-mainline:qcom-msm8974-6.16.yfrom
vrajashkr:lt03lte-wacom-2
Open

ARM: dts: qcom: msm8974-samsung-lt03lte: enable wacom digitizer + touchkeys#32
vrajashkr wants to merge 4 commits into
msm8974-mainline:qcom-msm8974-6.16.yfrom
vrajashkr:lt03lte-wacom-2

Conversation

@vrajashkr

@vrajashkr vrajashkr commented Apr 12, 2026

Copy link
Copy Markdown

For samsung-lt03lte, enables the wacom digitizer (passive stylus) and the front touchkeys.

The Wacom W9007 driver has been backported from an active kernel patch series.
ref: https://patchew.org/linux/20260319095303.19927-1-hendrik-noack@gmx.de/20260319095303.19927-2-hendrik-noack@gmx.de/

The Wacom W9007 driver patches have been taken from linux-next:
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=185cd1d8cb7f0fd30d868fa12d294bba5997b7c7

https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=acaefbacc997ae79527a5ade8720221dfe17407e

samsung-lt03lte has 2 touch-sensitive keys on the front of the
device for Menu and Back. Both these keys are managed by the
Atmel Maxtouch driver and hardware.
This change adds the necessary DTS changes to enable this functionality.

Signed-off-by: Vishwas Rajashekar <dev@vrajashkr.com>
@vrajashkr

Copy link
Copy Markdown
Author

Testing the Touchkeys with evtest:

$ sudo evtest /dev/input/event1
Input driver version is 1.0.1
Input device ID: bus 0x18 vendor 0x0 product 0x0 version 0x0
Input device name: "Atmel maXTouch Touchscreen"
Supported events:
  Event type 0 (EV_SYN)
  Event type 1 (EV_KEY)
    Event code 139 (KEY_MENU)
    Event code 158 (KEY_BACK)
    Event code 330 (BTN_TOUCH)
  Event type 3 (EV_ABS)
    Event code 0 (ABS_X)
      Value    162
      Min        0
      Max     4095
    Event code 1 (ABS_Y)
      Value   2435
      Min        0
      Max     4095
    Event code 24 (ABS_PRESSURE)
      Value      0
      Min        0
      Max      255
    Event code 47 (ABS_MT_SLOT)
      Value      0
      Min        0
      Max       15
    Event code 48 (ABS_MT_TOUCH_MAJOR)
      Value      0
      Min        0
      Max      255
    Event code 53 (ABS_MT_POSITION_X)
      Value      0
      Min        0
      Max     4095
    Event code 54 (ABS_MT_POSITION_Y)
      Value      0
      Min        0
      Max     4095
    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
Properties:
  Property type 1 (INPUT_PROP_DIRECT)
Testing ... (interrupt to exit)
Event: time 1775164386.428513, type 1 (EV_KEY), code 139 (KEY_MENU), value 1
Event: time 1775164386.428513, -------------- SYN_REPORT ------------
Event: time 1775164386.504526, type 1 (EV_KEY), code 139 (KEY_MENU), value 0
Event: time 1775164386.504526, -------------- SYN_REPORT ------------
Event: time 1775164387.745001, type 1 (EV_KEY), code 158 (KEY_BACK), value 1
Event: time 1775164387.745001, -------------- SYN_REPORT ------------
Event: time 1775164387.820813, type 1 (EV_KEY), code 158 (KEY_BACK), value 0
Event: time 1775164387.820813, -------------- SYN_REPORT ------------

@vrajashkr

Copy link
Copy Markdown
Author

Testing the Wacom digitizer with the passive stylus:

$ sudo evtest /dev/input/event3
Input driver version is 1.0.1
Input device ID: bus 0x18 vendor 0x56a product 0x0 version 0x267
Input device name: "Wacom W9007A LT03 Digitizer"
Supported events:
  Event type 0 (EV_SYN)
  Event type 1 (EV_KEY)
    Event code 320 (BTN_TOOL_PEN)
    Event code 321 (BTN_TOOL_RUBBER)
    Event code 330 (BTN_TOUCH)
    Event code 331 (BTN_STYLUS)
  Event type 3 (EV_ABS)
    Event code 0 (ABS_X)
      Value      0
      Min        0
      Max    21658
      Fuzz       4
      Resolution     100
    Event code 1 (ABS_Y)
      Value      0
      Min        0
      Max    13537
      Fuzz       4
      Resolution     100
    Event code 24 (ABS_PRESSURE)
      Value      0
      Min        0
      Max     1023
    Event code 25 (ABS_DISTANCE)
      Value      0
      Min        0
      Max      255
Properties:
Testing ... (interrupt to exit)
Event: time 1775164239.166212, type 3 (EV_ABS), code 0 (ABS_X), value 11402
Event: time 1775164239.166212, type 3 (EV_ABS), code 1 (ABS_Y), value 6050
Event: time 1775164239.166212, type 3 (EV_ABS), code 25 (ABS_DISTANCE), value 26
Event: time 1775164239.166212, type 1 (EV_KEY), code 320 (BTN_TOOL_PEN), value 1
Event: time 1775164239.166212, -------------- SYN_REPORT ------------
Event: time 1775164239.166629, type 3 (EV_ABS), code 0 (ABS_X), value 11401
Event: time 1775164239.166629, -------------- SYN_REPORT ------------
Event: time 1775164239.173632, type 3 (EV_ABS), code 0 (ABS_X), value 11399
Event: time 1775164239.173632, -------------- SYN_REPORT ------------
Event: time 1775164239.181131, type 3 (EV_ABS), code 0 (ABS_X), value 11398
Event: time 1775164239.181131, type 3 (EV_ABS), code 1 (ABS_Y), value 6053
Event: time 1775164239.181131, -------------- SYN_REPORT ------------
Event: time 1775164239.188527, type 3 (EV_ABS), code 0 (ABS_X), value 11395
Event: time 1775164239.188527, type 3 (EV_ABS), code 1 (ABS_Y), value 6055
Event: time 1775164239.188527, -------------- SYN_REPORT ------------
Event: time 1775164239.196098, type 3 (EV_ABS), code 0 (ABS_X), value 11394
Event: time 1775164239.196098, type 3 (EV_ABS), code 1 (ABS_Y), value 6063
Event: time 1775164239.196098, -------------- SYN_REPORT ------------
Event: time 1775164239.203677, type 3 (EV_ABS), code 0 (ABS_X), value 11392
Event: time 1775164239.203677, -------------- SYN_REPORT ------------
Event: time 1775164239.211181, type 3 (EV_ABS), code 0 (ABS_X), value 11391
Event: time 1775164239.211181, type 3 (EV_ABS), code 1 (ABS_Y), value 6066
Event: time 1775164239.211181, -------------- SYN_REPORT ------------
Event: time 1775164239.218564, type 3 (EV_ABS), code 0 (ABS_X), value 11388
Event: time 1775164239.218564, type 3 (EV_ABS), code 1 (ABS_Y), value 6069
Event: time 1775164239.218564, -------------- SYN_REPORT ------------

power-source = <PM8941_GPIO_S3>;
};

stylus_insert_pin: stylus-insert-state {

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is not used?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It doesn't appear to be used in the mainline driver, but was used in the old downstream driver so I had added it to keep the pins in the right shape earlier.

I've removed this now. Thanks for the feedback!


stylus_default_state: stylus-default-state {
pdct-pins {
pins = "gpio145";

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this gpio is not referenced in the node above? No clue if "pdct" is important - whatever that is

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If I'm not mistaken, pdct is short for pen detect. There was some conversation about it in the mailing list on the driver patch. I believe it was ultimately removed from the driver. I've removed it too.

Thanks!

@z3ntu

z3ntu commented May 7, 2026

Copy link
Copy Markdown
Member

Fwiw the latest revision of the patch series is v7 https://lore.kernel.org/all/20260501124002.132540-1-hendrik-noack@gmx.de/

Would be good to pick that one now, and prefix the patches with "FROMLIST v7 " in the first line of the commit message of those two commits/patches.

Hendrik Noack and others added 3 commits June 7, 2026 08:51
Add bindings for Wacom W9002 and two Wacom W9007 variants which can be
found in tablets.

W9002, W9007A LT03, and W9007A V1 differ in the length of the return
message containing coordinates, distance, pressure and button status.

Co-developed-by: Ferass El Hafidi <funderscore@postmarketos.org>
Signed-off-by: Ferass El Hafidi <funderscore@postmarketos.org>
Signed-off-by: Hendrik Noack <hendrik-noack@gmx.de>
Acked-by: Conor Dooley <conor.dooley@microchip.com>
Link: https://patch.msgid.link/20260528074818.12151-2-hendrik-noack@gmx.de
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Add driver for Wacom W9002 and two Wacom W9007A variants. These are
penabled touchscreens supporting passive Wacom Pens and use I2C.

Co-developed-by: Ferass El Hafidi <funderscore@postmarketos.org>
Signed-off-by: Ferass El Hafidi <funderscore@postmarketos.org>
Signed-off-by: Hendrik Noack <hendrik-noack@gmx.de>
Link: https://patch.msgid.link/20260528074818.12151-3-hendrik-noack@gmx.de
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
This change enables support for the Wacom digitizer (passive stylus)
for samsung-lt03lte. This includes the digitizer node and the fixed
regulator.

Signed-off-by: Vishwas Rajashekar <dev@vrajashkr.com>
@vrajashkr

Copy link
Copy Markdown
Author

Fwiw the latest revision of the patch series is v7 https://lore.kernel.org/all/20260501124002.132540-1-hendrik-noack@gmx.de/

Would be good to pick that one now, and prefix the patches with "FROMLIST v7 " in the first line of the commit message of those two commits/patches.

Sorry it took me a while to get back to this. Fortunately, it looks like the patch has been accepted and the commits are present in linux-next at the time of writing. I've fetched the patches from there and prefixed them with FROMGIT instead (I came across a few commits with this prefix in the commit history). Let me know in case I should be using a different prefix.

@vrajashkr

Copy link
Copy Markdown
Author

Tested with a fresh kernel build:

sudo evtest /dev/input/event3
Input driver version is 1.0.1
Input device ID: bus 0x18 vendor 0x56a product 0x0 version 0x267
Input device name: "Wacom W9007A LT03 Digitizer"
Supported events:
  Event type 0 (EV_SYN)
  Event type 1 (EV_KEY)
    Event code 320 (BTN_TOOL_PEN)
    Event code 321 (BTN_TOOL_RUBBER)
    Event code 330 (BTN_TOUCH)
    Event code 331 (BTN_STYLUS)
  Event type 3 (EV_ABS)
    Event code 0 (ABS_X)
      Value      0
      Min        0
      Max    21658
      Fuzz       4
      Resolution     100
    Event code 1 (ABS_Y)
      Value      0
      Min        0
      Max    13537
      Fuzz       4
      Resolution     100
    Event code 24 (ABS_PRESSURE)
      Value      0
      Min        0
      Max     1023
    Event code 25 (ABS_DISTANCE)
      Value      0
      Min        0
      Max      255
Properties:
Testing ... (interrupt to exit)
Event: time 1780680048.421413, type 3 (EV_ABS), code 0 (ABS_X), value 9371
Event: time 1780680048.421413, type 3 (EV_ABS), code 1 (ABS_Y), value 9675
Event: time 1780680048.421413, type 3 (EV_ABS), code 25 (ABS_DISTANCE), value 5
Event: time 1780680048.421413, type 1 (EV_KEY), code 320 (BTN_TOOL_PEN), value 1
Event: time 1780680048.421413, -------------- SYN_REPORT ------------
Event: time 1780680048.421915, type 3 (EV_ABS), code 1 (ABS_Y), value 9678
Event: time 1780680048.421915, -------------- SYN_REPORT ------------
Event: time 1780680048.428735, type 3 (EV_ABS), code 1 (ABS_Y), value 9691
Event: time 1780680048.428735, -------------- SYN_REPORT ------------
Event: time 1780680048.436184, type 3 (EV_ABS), code 1 (ABS_Y), value 9693
Event: time 1780680048.436184, -------------- SYN_REPORT ------------
Event: time 1780680048.443750, type 3 (EV_ABS), code 1 (ABS_Y), value 9706
Event: time 1780680048.443750, type 3 (EV_ABS), code 25 (ABS_DISTANCE), value 4
Event: time 1780680048.443750, -------------- SYN_REPORT ------------
Event: time 1780680048.451213, type 3 (EV_ABS), code 0 (ABS_X), value 9370
Event: time 1780680048.451213, type 3 (EV_ABS), code 1 (ABS_Y), value 9709
Event: time 1780680048.451213, -------------- SYN_REPORT ------------
Event: time 1780680048.458675, type 3 (EV_ABS), code 1 (ABS_Y), value 9722
Event: time 1780680048.458675, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 5

Seems to be working :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants