ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.6.tar.bz2
[linux-2.6.git] / Documentation / usb / mtouchusb.txt
1 CHANGES
2
3 - Created based off of scanner & INSTALL from the original touchscreen
4   driver on freshmeat (http://freshmeat.net/projects/3mtouchscreendriver)
5 - Amended for linux-2.4.18, then 2.4.19
6
7 - Complete rewrite using Linux Input in 2.6.3
8    Unfortunately no calibration support at this time
9
10
11 DRIVER NOTES:
12
13 Installation is simple, you only need to add Linux Input, Linux USB, and the 
14 driver to the kernel.  The driver can also be optionally built as a module.
15
16 If you have another MicroTouch device that you wish to experiment with
17 or try using this driver with, but the Vendor and Product ID's are not 
18 coded in, don't despair.  If the driver was compiled as a module, you can 
19 pass options to the driver.  Simply try:
20
21   /sbin/modprobe mtouchusb vendor=0x#### product=0x****
22
23 If it works, send me the iVendor & iProduct (or a patch) and I will add...
24
25 This driver appears to be one of possible 2 Linux USB Input Touchscreen
26 drivers.  Although 3M produces a binary only driver available for
27 download, I persist in updating this driver since I would like to use the
28 touchscreen for embedded apps using QTEmbedded, DirectFB, etc. So I feel the
29 logical choice is to use Linux Imput.
30
31 A little info about the MicroTouch USB controller (14-206):
32
33 Y is inverted, and the device has a total possible resolution of 0 - 65535.
34
35 Y is inverted by the driver by:
36
37         input.absmin[ABS_Y] =  MTOUCHUSB_MAX_YC;
38         input.absmax[ABS_Y] =  MTOUCHUSB_MIN_YC;
39
40 absmin & absmax are also used to scale the data, sine it is rather high 
41 resolution.
42
43     ---------------touch screen area-----------------
44     I                        MicroTouch (xmax,ymax) @I
45     I                      X                         I
46     I   ########visible monitor area##############   I
47     I   #@ (xmin,ymin)                           #   I
48     I   #                                        #   I
49     I   #                                        #   I
50     I   #                                        #   I
51     I   #                                        #   I
52     I   #                                        #   I
53     I Y #                                        #   I
54     I   #                                        #   I
55     I   #                                        #   I
56     I   #                                        #   I
57     I   #                                        #   I
58     I   #                                        #   I
59     I   #                           (xmax,ymax) @#   I
60     I   ##########################################   I
61     I                                                I
62     I@ MicroTouch (xmin,ymin)                        I
63     -------------------------------------------------
64
65 Currently there is no way to calibrate the device via this driver.  Perhaps 
66 at some point an abstract function will be placed into evdev so generic 
67 functions like calibrations, resets, and vendor information can be requested 
68 (And the drivers would handle the vendor specific tasks).
69
70 ADDITIONAL INFORMATION/UPDATES:
71
72 http://groomlakelabs.com/grandamp/code/microtouch/
73
74 TODO:
75
76 Implement a control urb again to handle requests to and from the device
77 such as calibration, etc.
78
79 DISCLAMER:
80
81 I am not a MicroTouch/3M employee, nor have I ever been.  3M does not support 
82 this driver!  If you want touch drivers only supported within X, please go to:
83
84 http://www.3m.com/3MTouchSystems/downloads/
85