xref: /OK3568_Linux_fs/kernel/Documentation/usb/mtouchusb.rst (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun================
2*4882a593Smuzhiyunmtouchusb driver
3*4882a593Smuzhiyun================
4*4882a593Smuzhiyun
5*4882a593SmuzhiyunChanges
6*4882a593Smuzhiyun=======
7*4882a593Smuzhiyun
8*4882a593Smuzhiyun- 0.3 - Created based off of scanner & INSTALL from the original touchscreen
9*4882a593Smuzhiyun  driver on freecode (http://freecode.com/projects/3mtouchscreendriver)
10*4882a593Smuzhiyun- Amended for linux-2.4.18, then 2.4.19
11*4882a593Smuzhiyun
12*4882a593Smuzhiyun- 0.5 - Complete rewrite using Linux Input in 2.6.3
13*4882a593Smuzhiyun  Unfortunately no calibration support at this time
14*4882a593Smuzhiyun
15*4882a593Smuzhiyun- 1.4 - Multiple changes to support the EXII 5000UC and house cleaning
16*4882a593Smuzhiyun  Changed reset from standard USB dev reset to vendor reset
17*4882a593Smuzhiyun  Changed data sent to host from compensated to raw coordinates
18*4882a593Smuzhiyun  Eliminated vendor/product module params
19*4882a593Smuzhiyun  Performed multiple successful tests with an EXII-5010UC
20*4882a593Smuzhiyun
21*4882a593SmuzhiyunSupported Hardware
22*4882a593Smuzhiyun==================
23*4882a593Smuzhiyun
24*4882a593Smuzhiyun::
25*4882a593Smuzhiyun
26*4882a593Smuzhiyun        All controllers have the Vendor: 0x0596 & Product: 0x0001
27*4882a593Smuzhiyun
28*4882a593Smuzhiyun
29*4882a593Smuzhiyun        Controller Description          Part Number
30*4882a593Smuzhiyun        ------------------------------------------------------
31*4882a593Smuzhiyun
32*4882a593Smuzhiyun        USB Capacitive - Pearl Case     14-205  (Discontinued)
33*4882a593Smuzhiyun        USB Capacitive - Black Case     14-124  (Discontinued)
34*4882a593Smuzhiyun        USB Capacitive - No Case        14-206  (Discontinued)
35*4882a593Smuzhiyun
36*4882a593Smuzhiyun        USB Capacitive - Pearl Case     EXII-5010UC
37*4882a593Smuzhiyun        USB Capacitive - Black Case     EXII-5030UC
38*4882a593Smuzhiyun        USB Capacitive - No Case        EXII-5050UC
39*4882a593Smuzhiyun
40*4882a593SmuzhiyunDriver Notes
41*4882a593Smuzhiyun============
42*4882a593Smuzhiyun
43*4882a593SmuzhiyunInstallation is simple, you only need to add Linux Input, Linux USB, and the
44*4882a593Smuzhiyundriver to the kernel.  The driver can also be optionally built as a module.
45*4882a593Smuzhiyun
46*4882a593SmuzhiyunThis driver appears to be one of possible 2 Linux USB Input Touchscreen
47*4882a593Smuzhiyundrivers.  Although 3M produces a binary only driver available for
48*4882a593Smuzhiyundownload, I persist in updating this driver since I would like to use the
49*4882a593Smuzhiyuntouchscreen for embedded apps using QTEmbedded, DirectFB, etc. So I feel the
50*4882a593Smuzhiyunlogical choice is to use Linux Input.
51*4882a593Smuzhiyun
52*4882a593SmuzhiyunCurrently there is no way to calibrate the device via this driver.  Even if
53*4882a593Smuzhiyunthe device could be calibrated, the driver pulls to raw coordinate data from
54*4882a593Smuzhiyunthe controller.  This means calibration must be performed within the
55*4882a593Smuzhiyunuserspace.
56*4882a593Smuzhiyun
57*4882a593SmuzhiyunThe controller screen resolution is now 0 to 16384 for both X and Y reporting
58*4882a593Smuzhiyunthe raw touch data.  This is the same for the old and new capacitive USB
59*4882a593Smuzhiyuncontrollers.
60*4882a593Smuzhiyun
61*4882a593SmuzhiyunPerhaps at some point an abstract function will be placed into evdev so
62*4882a593Smuzhiyungeneric functions like calibrations, resets, and vendor information can be
63*4882a593Smuzhiyunrequested from the userspace (And the drivers would handle the vendor specific
64*4882a593Smuzhiyuntasks).
65*4882a593Smuzhiyun
66*4882a593SmuzhiyunTODO
67*4882a593Smuzhiyun====
68*4882a593Smuzhiyun
69*4882a593SmuzhiyunImplement a control urb again to handle requests to and from the device
70*4882a593Smuzhiyunsuch as calibration, etc once/if it becomes available.
71*4882a593Smuzhiyun
72*4882a593SmuzhiyunDisclaimer
73*4882a593Smuzhiyun==========
74*4882a593Smuzhiyun
75*4882a593SmuzhiyunI am not a MicroTouch/3M employee, nor have I ever been.  3M does not support
76*4882a593Smuzhiyunthis driver!  If you want touch drivers only supported within X, please go to:
77*4882a593Smuzhiyun
78*4882a593Smuzhiyunhttp://www.3m.com/3MTouchSystems/
79*4882a593Smuzhiyun
80*4882a593SmuzhiyunThanks
81*4882a593Smuzhiyun======
82*4882a593Smuzhiyun
83*4882a593SmuzhiyunA huge thank you to 3M Touch Systems for the EXII-5010UC controllers for
84*4882a593Smuzhiyuntesting!
85