Posts: 17
Joined: Wed Jul 04, 2012 7:55 pm

i2c touchscreen not recognised by X

Tue Dec 05, 2017 5:14 pm

Hi there,

I have an i2c touchscreen running on the compute module 3. I have compiled supplied drivers as a kernel module and inserted the module using insmod. I can then see data being correctly received from the screen via dmesg. I therefore am assuming that the driver is working correctly.

The driver registers an input device using input_register_device(), and I can see the resulting handlers being generated in /dev/input (event0 and mouse0).

running cat //proc/bus/input/devices results in:

Code: Select all

cat /proc/bus/input/devices
I: Bus=0018 Vendor=abcd Product=2541 Version=0000
N: Name="ssd2543"
P: Phys=mt
S: Sysfs=/devices/virtual/input/input0
U: Uniq=
H: Handlers=mouse0 event0 
B: EV=10040b
B: KEY=400 0 0 0 0 0 0 0 0 0 0
B: ABS=6658000 1000003

When I start lightdm, or any X application using startx, the input device is not found by X.

Running xinput list I get the following:

Code: Select all

⎡ Virtual core pointer                            id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Apple Inc. Apple Keyboard                 id=6    [slave  keyboard (3)]
    ↳ Apple Inc. Apple Keyboard                 id=7    [slave  keyboard (3)]

I have also tried creating a file called 50-touchscreen.conf in /usr/share/X11/xorg.conf.d containing the following (and variants of..):

Code: Select all

Section "InputClass"
    Identifier "ssd2543"
    Driver "libinput"
    MatchIsTouchscreen "on"
    Option "Device" "/dev/input/event0"
This hasn't had any affect.

Any help greatly appreciated!!

User avatar
Posts: 5005
Joined: Tue Oct 09, 2012 11:46 am
Location: Trondheim, Norway

Re: i2c touchscreen not recognised by X

Wed Dec 06, 2017 12:30 pm

Maybe take a look at "Xorg.log" in "/var/log" and see if you see anything related to your device there.

Return to “Interfacing (DSI, CSI, I2C, etc.)”