CHANGES

- Created based off of scanner & INSTALL from the original touchscreen
  driver on freshmeat (http://freshmeat.net/projects/3mtouchscreendriver)
- Amended for linux-2.4.18, then 2.4.19

- Complete rewrite using Linux Input in 2.6.3
   Unfortunately no calibration support at this time


DRIVER NOTES:

Installation is simple, you only need to add Linux Input, Linux USB, and the 
driver to the kernel.  The driver can also be optionally built as a module.

If you have another MicroTouch device that you wish to experiment with
or try using this driver with, but the Vendor and Product ID's are not 
coded in, don't despair.  If the driver was compiled as a module, you can 
pass options to the driver.  Simply try:

  /sbin/modprobe mtouchusb vendor=0x#### product=0x****

If it works, send me the iVendor & iProduct (or a patch) and I will add...

This driver appears to be one of possible 2 Linux USB Input Touchscreen
drivers.  Although 3M produces a binary only driver available for
download, I persist in updating this driver since I would like to use the
touchscreen for embedded apps using QTEmbedded, DirectFB, etc. So I feel the
logical choice is to use Linux Imput.

A little info about the MicroTouch USB controller (14-206):

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;

absmin & absmax are also used to scale the data, sine it is rather high 
resolution.

    ---------------touch screen area-----------------
    I                        MicroTouch (xmax,ymax) @I
    I                      X                         I
    I   ########visible monitor area##############   I
    I   #@ (xmin,ymin)                           #   I
    I   #                                        #   I
    I   #                                        #   I
    I   #                                        #   I
    I   #                                        #   I
    I   #                                        #   I
    I Y #                                        #   I
    I   #                                        #   I
    I   #                                        #   I
    I   #                                        #   I
    I   #                                        #   I
    I   #                                        #   I
    I   #                           (xmax,ymax) @#   I
    I   ##########################################   I
    I                                                I
    I@ MicroTouch (xmin,ymin)                        I
    -------------------------------------------------

Currently there is no way to calibrate the device via this driver.  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).

ADDITIONAL INFORMATION/UPDATES:

http://groomlakelabs.com/grandamp/code/microtouch/

TODO:

Implement a control urb again to handle requests to and from the device
such as calibration, etc.

DISCLAMER:

I am not a MicroTouch/3M employee, nor have I ever been.  3M does not support 
this driver!  If you want touch drivers only supported within X, please go to:

http://www.3m.com/3MTouchSystems/downloads/

