Hi there!

I have a DMC TSC-103 Touchpanel controller chip on an ISP1563 Philips USB Host 
controller
on PCI on MPC8540 embedded PowerPC.

USB is working fine on that machine. USB Mouse and Keyboard works on X.
But I cannot get the touchscreen to talk to userspace, something like
/dev/input/touch or /dev/input/eventX isn't created.



Here are lots of details:
$ uname -a
Linux fox 2.6.21.5 #2 Thu Jun 28 19:54:40 CEST 2007 ppc e500 GNU/Linux

$ udevinfo -V
udevinfo, version 096

$ lsusb --version
lsusb (usbutils) 0.72

$ lsusb
Bus 1 Device 1: ID 0000:0000
Bus 2 Device 1: ID 0000:0000
Bus 3 Device 1: ID 0000:0000
Bus 3 Device 2: ID 0afa:03e8

The 0afa:0e38 is the TSC-10

$ ls -la /dev/usbdev*
crw-rw---- 1 root root 253, 0 Jan  1  1970 /dev/usbdev1.1_ep00
crw-rw---- 1 root root 253, 1 Jan  1  1970 /dev/usbdev1.1_ep81
crw-rw---- 1 root root 253, 2 Jan  1  1970 /dev/usbdev2.1_ep00
crw-rw---- 1 root root 253, 3 Jan  1  1970 /dev/usbdev2.1_ep81
crw-rw---- 1 root root 253, 4 Jan  1  1970 /dev/usbdev3.1_ep00
crw-rw---- 1 root root 253, 5 Jan  1  1970 /dev/usbdev3.1_ep81
crw-rw---- 1 root root 253, 6 Jan  1  1970 /dev/usbdev3.2_ep00
crw-rw---- 1 root root 253, 7 Jan  1  1970 /dev/usbdev3.2_ep81

The Jan 1 1970 is correct (my RTC chip is broken).
The usbdev3.2_ep?? is my TSC-10.

$ ls -la /dev/input/*
crw-r--r-- 1 root root 13, 63 Jan  1  1970 /dev/input/mice
Without anything plugged to USB.

$ ls -la /dev/input/*
crw-r--r-- 1 root root 13,  63 Jan  1  1970 /dev/input/mice
crw-r--r-- 1 root root 13,  32 Jun 28 19:50 /dev/input/mouse0
crw-r--r-- 1 root root 13, 128 Jun 28 19:50 /dev/input/ts0

When I plug in a M$ IntelliMouse thingy.
(ts0 belongs also to the mouse... ?)

I cannot hotplug/unplug the Touchscreen controller because
it's built-in. :-(


$ gzip -c -d /proc/config.gz | grep "TOUCH"
CONFIG_INPUT_TOUCHSCREEN=y
# CONFIG_TOUCHSCREEN_GUNZE is not set
# CONFIG_TOUCHSCREEN_ELO is not set
# CONFIG_TOUCHSCREEN_MTOUCH is not set
# CONFIG_TOUCHSCREEN_MK712 is not set
# CONFIG_TOUCHSCREEN_PENMOUNT is not set
# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
# CONFIG_TOUCHSCREEN_UCB1400 is not set
# CONFIG_USB_STORAGE_ONETOUCH is not set
CONFIG_USB_TOUCHSCREEN=y
# CONFIG_USB_TOUCHSCREEN_EGALAX is not set
# CONFIG_USB_TOUCHSCREEN_PANJIT is not set
# CONFIG_USB_TOUCHSCREEN_3M is not set
# CONFIG_USB_TOUCHSCREEN_ITM is not set
# CONFIG_USB_TOUCHSCREEN_ETURBO is not set
# CONFIG_USB_TOUCHSCREEN_GUNZE is not set
CONFIG_USB_TOUCHSCREEN_DMC_TSC10=y
# CONFIG_USB_APPLETOUCH is not set

Hmm... did I miss something here?


$ udevinfo -a -p /sys/bus/usb/devices/3-2/

Udevinfo starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.

   looking at device '/devices/pci0000:00/0000:00:14.1/usb3/3-2':
     KERNEL=="3-2"
     SUBSYSTEM=="usb"
     SYSFS{manufacturer}=="TSC-10 DM"
     SYSFS{quirks}=="0x0"
     SYSFS{maxchild}=="0"
     SYSFS{version}==" 1.00"
     SYSFS{devnum}=="2"
     SYSFS{speed}=="1.5"
     SYSFS{bMaxPacketSize0}=="8"
     SYSFS{bNumConfigurations}=="1"
     SYSFS{bDeviceProtocol}=="ff"
     SYSFS{bDeviceSubClass}=="00"
     SYSFS{bDeviceClass}=="ff"
     SYSFS{bcdDevice}=="0110"
     SYSFS{idProduct}=="03e8"
     SYSFS{idVendor}=="0afa"
     SYSFS{bMaxPower}=="100mA"
     SYSFS{bmAttributes}=="a0"
     SYSFS{bConfigurationValue}=="1"
     SYSFS{bNumInterfaces}==" 1"
     SYSFS{configuration}==""

   looking at parent device '/devices/pci0000:00/0000:00:14.1/usb3':
     ID=="usb3"
     BUS=="usb"
     DRIVER=="usb"
     SYSFS{serial}=="0000:00:14.1"
     SYSFS{product}=="OHCI Host Controller"
     SYSFS{manufacturer}=="Linux 2.6.21.5 ohci_hcd"
     SYSFS{quirks}=="0x0"
     SYSFS{maxchild}=="2"
     SYSFS{version}==" 1.10"
     SYSFS{devnum}=="1"
     SYSFS{speed}=="12"
     SYSFS{bMaxPacketSize0}=="64"
     SYSFS{bNumConfigurations}=="1"
     SYSFS{bDeviceProtocol}=="00"
     SYSFS{bDeviceSubClass}=="00"
     SYSFS{bDeviceClass}=="09"
     SYSFS{bcdDevice}=="0206"
     SYSFS{idProduct}=="0000"
     SYSFS{idVendor}=="0000"
     SYSFS{bMaxPower}=="  0mA"
     SYSFS{bmAttributes}=="e0"
     SYSFS{bConfigurationValue}=="1"
     SYSFS{bNumInterfaces}==" 1"
     SYSFS{configuration}==""

   looking at parent device '/devices/pci0000:00/0000:00:14.1':
     ID=="0000:00:14.1"
     BUS=="pci"
     DRIVER=="ohci_hcd"
     SYSFS{msi_bus}==""
     SYSFS{broken_parity_status}=="0"
     SYSFS{enable}=="1"
     SYSFS{modalias}=="pci:v00001131d00001561sv00001131sd00001561bc0Csc03i10"
     SYSFS{local_cpus}=="1"
     SYSFS{irq}=="51"
     SYSFS{class}=="0x0c0310"
     SYSFS{subsystem_device}=="0x1561"
     SYSFS{subsystem_vendor}=="0x1131"
     SYSFS{device}=="0x1561"
     SYSFS{vendor}=="0x1131"

   looking at parent device '/devices/pci0000:00':
     ID=="pci0000:00"
     BUS==""
     DRIVER==""


Well, it's there and it seems to work.

some udev rules say:
# Input devices go in their own subdirectory

KERNEL=="mice",     MODE="0644",    NAME="input/%k"     SYMLINK="mouse"
KERNEL=="mouse*",   MODE="0644",    NAME="input/%k"
KERNEL=="event*",   MODE="0600",    NAME="input/%k"
KERNEL=="js*",      MODE="0644",    NAME="input/%k"
KERNEL=="ts*",      MODE="0644",    NAME="input/%k"

KERNEL=="psaux",    MODE="0644"
KERNEL=="js",       MODE="0644"
KERNEL=="djs",      MODE="0644"

(What is js and djs?)

What is the magic udev rule to get the dmc driver (usbtouchscreen.c)
to talk to me?

Can you please give me some information how I can
get some raw /dev/input/touch or similar and
get at least some userspace program (i.e. calibrator, see below).
But some cat <devicename> would make me also happy.



Second construction area is X:

I've read
http://linux.chapter7.ch/touchkit/mini-howto.txt
already and built the touchkit calibrator.c successfully.
Whenever I run
$ Xorg &
$ export DISPLAY=0:0
$ calibrator /dev/usbdev3.2_ep{00,81}
Cannot open device file!
$ calibrator /dev/input/{mice,mouse,ts0}
gets me the calibration screen, but no input.

I added some more debugging information to calibrator, so it
prints at least some events when I use the mouse driver's
device here.

Whenever I use the xorg-xf86-input-dmc driver I get from Xorg:
(EE) DMC-Touch reset error
The xorg-xf86-input-evdev driver delivers some.
(EE) PreInit returned NULL for "touchscreen"

Of course... because /dev/input/ts0 is just not the TSC-10...

I've tried lots of combinations in xorg.conf:
Section "InputDevice"
         Identifier "touchscreen"
         Driver  "evdev"
#       Driver  "dmc"
         Option  "Device"                "/dev/input/ts0"
#       Option  "Device"                "/dev/usbdev3.2_ep81"
#       Option  "DeviceName"            "touchscreen"
         Option  "MinX"                  "1412"
         Option  "MaxX"                  "15184"
         Option  "MinY"                  "15372"
         Option  "MaxY"                  "1230"
         Option  "ScreenNumber"          "0"
         Option  "ReportingMode"         "Scaled"
#       Option  "ReportingMode"         "Raw"
         Option  "ButtonNumber"          "1"
#       Option  "ButtonThreshold"       "17"
         Option  "SendCoreEvents"
EndSection

Does somebody have a xorg.conf example configuration for the TSC-10 on USB?


Thank you,
-- 
Clemens Koller
__________________________________
R&D Imaging Devices
Anagramm GmbH
Rupert-Mayer-Straße 45/1
Linhof Werksgelände
D-81379 München
Tel.089-741518-50
Fax 089-741518-19
http://www.anagramm-technology.com

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Linux-usb-users@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-users

Reply via email to