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