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