
Synaptics cPad(tm) USB mouse driver for Linux
R.T. Miller 
version 0.4  22 Dec. 2002

** please note that the minor device number has changed to 66 and you 
may need to re-create the device file if you used an earlier version **

This software consists of a driver (linux kernel module) for the Synaptics 
cPad as used on some Toshiba Satellite laptops (e.g. the 510x series).  
Supported features currently include middle mouse button, bitmap dispay
on the LCD, backlight control, sensitivity adjustment and tap-to-click.

-----------------

To use (at least on my debian 'woody' based system):

driver-

(1) unpack the distribution file.  put the modules subdir under /usr/src (so
you have /usr/src/modules/cpad).
(2) 'make install' in /usr/src/modules/cpad
(3) 'mknod /dev/usb/cpad0 c 180 66' to create the device file, or use devfs
(4) 'modprobe cpad' to load the module.  this assumes that you do not have
any other mouse code working already (I do 'rmmod cpad mousedev hid input'
first).

Put 'cpad' in /etc/modules before usbmouse or hid to have it
loaded at boot time. 

-user side

(1) go to the supplied 'user' subdir and compile with 
'gcc -o usr_cpad usr_cpad.c'

(2) do './usr_pad -h'


------------------

changes for 0.4:

- Michael Lloyd-Hart contributed tap-and-drag and motion-sensitivity ioctl

changes for 0.3:

- changed minor device number to 66 !!!  (assigned by LANANA)

- added an ioctl to flash the backlight instead of explicit on/off.

- added comments

- usr_cpad draws some system monitor data (needs ACPI kernel patch)

- fixes suggested by Oliver Neukum from USB-dev list

- non-read ioctls clear response urb

- David Banas submitted patch for ioctl to set mouse sensitivity


changes for v0.2:  (13 Nov 2002)

- identified that the LCD controller chip is the Seiko/Epson 1335,
and worked out how relevant commands are directed to it.  all 'file
I/O' to the /dev/usb/cpad0 device is now taken to be commands for
the LCD controller: first byte is the command, remaining bytes are 
parameters.  for the sequence going out on the USB, the parameter 
bytes are *reversed* relative to what one sees in the datasheet; the
driver fixes this.

- worked out some of the non-1335 commands possible, specifically 
turning the backlight on/off, the LCD on/off, and reading the state
of each of these.  these are accessed by ioctls.

- supplied a user program 'usr_cpad' to exercise the driver and 
display a 240x160 xpixmap (.xpm file) on the display.

still to do:

- the 1335 supports multiple layers with varied duty cycle (to give 
grey instead of black/white) and/or character generation; it would
be nice to get this working.


version 0.1   08 Sept. 2002

This Linux kernel module activates 'alternate setting 2' 
of the Synaptics cPad (Vendor 06cb Device 0003) as found on 
the Toshiba Satellite 5100-501 laptop.  The primary effect 
is that the middle mouse button is enabled and reported to 
the Linux mouse input device.  The driver also provides access 
to the bulk endpoints on this interface via file operations 
on the character device /dev/usb/cpad0 (mknod c 180 66 or 
use devfs).

---------

Try SnoopyPro at http://sourceforge.net/projects/usbsnoop/ 
to see how it works under windows.

changes 