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