Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

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