On Thu, Feb 26, 2004 at 09:27:52PM -0500, Todd E. Johnson wrote:
> I have attached a patch which contains a driver and documentation for
> the MicroTouch (14-206) USB Capacitive Touchscreen controller. It based
> on some older code that I have been using for quite some time now (since
> 2.4.17). This new version has been completely re-written, and now uses
> Linux Input. Greg, It would be great to possibly get it into 2.6.4.
> Please let me know if I have it all wrong...
It looks fairly ok, see comments below.
> Unfortunately, the X11 mouse driver only seems capable of handling
> relative data rather than absolute. Hopefully some one will create a
> suitable X11 driver capable of accepting absolute data from Linux
> Input. If anyone is aware of one, please let me know. Otherwise, I
> will most likely begin some work on a patch for GPM.
I don't know of any, but that doesn't rule out the possibility.
> Calibration support will be on the way soon, but I'm not sure of the
> best way to implement. Perhaps some abstract functions could come
> available in evdev which can call vendor specific commands for the
> calibration within this driver (and perhaps others). Any ideas? Thanks
> in advance for your time!
> +Y is inverted, and the device has a total possible resolution of 0 - 65535.
> +
> +Y is inverted by the driver by:
> +
> + input.absmin[ABS_Y] = MTOUCHUSB_MAX_YC;
> + input.absmax[ABS_Y] = MTOUCHUSB_MIN_YC;
Do it by inverting the values, please. While this works in most cases,
the direction of the axes in Linux input drivers is defined to be
compatible with USB HID spec.
> +Currently there is no way to calibrate the device via this driver.
The touchscreen has some internal calibration? This would be the first
one I've seen so far. Calibration and conversion to screen coordinates
is currently expected to happen in userspace, and the driver is supposed
to return raw values from the device.
> Perhaps
> +at some point an abstract function will be placed into evdev so generic
> +functions like calibrations, resets, and vendor information can be requested
> +(And the drivers would handle the vendor specific tasks).
If that's proven to be needed, yes.
> +
> + if (vendor != -1 && product != -1) {
> + info("%s - User specified USB Touch -- Vend:Prod - %x:%x",
> + __FUNCTION__, vendor, product);
> + }
> +
> + for (ix = 0; ix < sizeof (mtouchusb_devices) /
> + sizeof (struct usb_device_id); ix++) {
> + if ((udev->descriptor.idVendor ==
> + mtouchusb_devices [ix].idVendor) &&
> + (udev->descriptor.idProduct ==
> + mtouchusb_devices [ix].idProduct)) {
> + valid_device = 1;
> + break;
> + }
> + }
> +
> + if (udev->descriptor.idVendor == vendor &&
> + udev->descriptor.idProduct == product) { /* User specified */
> + valid_device = 1;
> + }
This is not very nice, but I suspect it's unavoidable if you need to
specify the ID as module parameters.
--
Vojtech Pavlik
SuSE Labs, SuSE CR
-------------------------------------------------------
SF.Net is sponsored by: Speed Start Your Linux Apps Now.
Build and deploy apps & Web services for Linux with
a free DVD software kit from IBM. Click Now!
http://ads.osdn.com/?ad_id=1356&alloc_id=3438&op=click
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-users