Commit 15e1d2dc authored by Romain Liévin's avatar Romain Liévin Committed by Greg Kroah-Hartman

USB tiusb

added tiusb driver
some tweaks to the driver done by greg@kroah.com
parent ab6aa6cd
-------------------------------------------------------------------------
Readme for Linux device driver for the Texas Instruments SilverLink cable
-------------------------------------------------------------------------
Author: Romain Liévin & Julien Blache
Homepage: http://lpg.ticalc.org/prj_usb
INTRODUCTION:
This is a driver for the TI-GRAPH LINK USB (aka SilverLink) cable, a cable
designed by TI for connecting their TI8x/9x calculators to a computer
(PC or Mac usually).
If you need more information, please visit the 'SilverLink drivers' homepage
at the above URL.
WHAT YOU NEED:
A TI calculator of course and a program capable to communicate with your
calculator.
TiLP will work for sure (since I am his developer !). yal92 may be able to use
it by changing tidev for tiglusb (may require some hacking...).
HOW TO USE IT:
You must have first compiled USB support, support for your specific USB host
controller (UHCI or OHCI).
Next, (as root) from your appropriate modules directory (lib/modules/2.5.XX):
insmod usb/usbcore.o
insmod usb/usb-uhci.o <OR> insmod usb/ohci-hcd.o
insmod tiglusb.o
If it is not already there (it usually is), create the device:
mknod /dev/tiglusb0 c 115 16
You will have to set permissions on this device to allow you to read/write
from it:
chmod 666 /dev/tiglusb0
Now you are ready to run a linking program such as TiLP. Be sure to configure
it properly (RTFM).
MODULE PARAMETERS:
You can set these with: insmod tiglusb NAME=VALUE
There is currently no way to set these on a per-cable basis.
NAME: timeout
TYPE: integer
DEFAULT: 15
DESC: Timeout value in tenth of seconds. If no data is available once this
time has expired then the driver will return with a timeout error.
QUIRKS:
The following problem seems to be specific to the link cable since it appears
on all platforms (Linux, Windows, Mac OS-X).
In some very particular cases, the driver returns with success but
without any data. The application should retry a read operation at least once.
HOW TO CONTACT US:
You can email me at roms@lpg.ticalc.org. Please prefix the subject line
with "TIGLUSB: " so that I am certain to notice your message.
You can also mail JB at jb@jblache.org: he has written the first release of
this driver but he better knows the Mac OS-X driver.
CREDITS:
The code is based on dabusb.c, printer.c and scanner.c !
The driver has been developed independantly of Texas Instruments.
......@@ -1502,6 +1502,13 @@ P: Christoph Hellwig
M: hch@infradead.org
S: Maintained
TI GRAPH LINK USB (SilverLink) CABLE DRIVER
P: Romain Lievin
M: roms@lpg.ticalc.org
P: Julien Blache
M: jb@technologeek.org
S: Maintained
TLAN NETWORK DRIVER
P: Torben Mathiasen
M: torben.mathiasen@compaq.com
......@@ -1660,6 +1667,7 @@ P: Petko Manolov
M: petkan@users.sourceforge.net
L: linux-usb-users@lists.sourceforge.net
L: linux-usb-devel@lists.sourceforge.net
W: http://pegasus2.sourceforge.net/
S: Maintained
USB PRINTER DRIVER
......@@ -1669,6 +1677,14 @@ L: linux-usb-users@lists.sourceforge.net
L: linux-usb-devel@lists.sourceforge.net
S: Maintained
USB RTL8150 DRIVER
P: Petko Manolov
M: petkan@users.sourceforge.net
L: linux-usb-users@lists.sourceforge.net
L: linux-usb-devel@lists.sourceforge.net
W: http://pegasus2.sourceforge.net/
S: Maintained
USB SE401 DRIVER
P: Jeroen Vreeken
M: pe1rxq@amsat.org
......
This diff is collapsed.
/* Hey EMACS -*- linux-c -*-
*
* tiglusb - low level driver for SilverLink cable
*
* Copyright (C) 2000-2002, Romain Lievin <roms@lpg.ticalc.org>
* under the terms of the GNU General Public License.
*
* Redistribution of this file is permitted under the terms of the GNU
* Public License (GPL)
*/
#ifndef _TIGLUSB_H
#define _TIGLUSB_H
/*
* Max. number of devices supported
*/
#define MAXTIGL 16
/*
* Max. packetsize for IN and OUT pipes
*/
#define BULK_RCV_MAX 32
#define BULK_SND_MAX 32
/*
* The driver context...
*/
typedef enum { _stopped=0, _started } driver_state_t;
typedef struct
{
struct usb_device *dev; /* USB device handle */
struct semaphore mutex; /* locks this struct */
struct semaphore sem;
wait_queue_head_t wait; /* for timed waits */
wait_queue_head_t remove_ok;
int minor; /* which minor dev #? */
devfs_handle_t devfs; /* devfs device */
driver_state_t state; /* started/stopped */
int opened; /* tru if open */
int remove_pending;
char rd_buf[BULK_RCV_MAX]; /* read buffer */
char wr_buf[BULK_SND_MAX]; /* write buffer */
} tiglusb_t, *ptiglusb_t;
extern devfs_handle_t usb_devfs_handle; /* /dev/usb dir. */
#endif
/* Hey EMACS -*- linux-c -*-
*
* tipar/tiser/tiusb - low level driver for handling link cables
* designed for Texas Instruments graphing calculators.
*
* Copyright (C) 2000-2002, Romain Lievin <roms@lpg.ticalc.org>
*
* Redistribution of this file is permitted under the terms of the GNU
* Public License (GPL)
*/
#ifndef _TICABLE_H
#define _TICABLE_H 1
/* Internal default constants for the kernel module */
#define TIMAXTIME 15 /* 1.5 seconds */
#define IO_DELAY 10 /* 10 micro-seconds */
/* Major & minor number for character devices */
#define TIPAR_MAJOR 115 /* 0 to 7 */
#define TIPAR_MINOR 0
#define TISER_MAJOR 115 /* 8 to 15 */
#define TISER_MINOR 8
#define TIUSB_MAJOR 115 /* 16 to 31 */
#define TIUSB_MINOR 16
/*
* Request values for the 'ioctl' function.
*/
#define IOCTL_TIPAR_DELAY _IOW('p', 0xa8, int) /* set delay */
#define IOCTL_TIPAR_TIMEOUT _IOW('p', 0xa9, int) /* set timeout */
#define IOCTL_TISER_DELAY _IOW('p', 0xa0, int) /* set delay */
#define IOCTL_TISER_TIMEOUT _IOW('p', 0xa1, int) /* set timeout */
#define IOCTL_TIUSB_TIMEOUT _IOW('N', 0x20, int) /* set timeout */
#define IOCTL_TIUSB_RESET_DEVICE _IOW('N', 0x21, int) /* reset device */
#define IOCTL_TIUSB_RESET_PIPES _IOW('N', 0x22, int) /* reset both pipes*/
#endif /* TICABLE_H */
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment