Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions
serqt_usb2.c File Reference
#include <linux/errno.h>
#include <linux/init.h>
#include <linux/slab.h>
#include <linux/tty.h>
#include <linux/tty_driver.h>
#include <linux/tty_flip.h>
#include <linux/module.h>
#include <linux/serial.h>
#include <linux/usb.h>
#include <linux/usb/serial.h>
#include <linux/uaccess.h>

Go to the source code of this file.

Data Structures

struct  qt_get_device_data
 
struct  qt_open_channel_data
 
struct  quatech_port
 

Macros

#define DRIVER_VERSION   "v2.14"
 
#define DRIVER_AUTHOR   "Tim Gobeli, Quatech, Inc"
 
#define DRIVER_DESC   "Quatech USB to Serial Driver"
 
#define USB_VENDOR_ID_QUATECH   0x061d /* Quatech VID */
 
#define QUATECH_SSU200   0xC030 /* SSU200 */
 
#define QUATECH_DSU100   0xC040 /* DSU100 */
 
#define QUATECH_DSU200   0xC050 /* DSU200 */
 
#define QUATECH_QSU100   0xC060 /* QSU100 */
 
#define QUATECH_QSU200   0xC070 /* QSU200 */
 
#define QUATECH_ESU100A   0xC080 /* ESU100A */
 
#define QUATECH_ESU100B   0xC081 /* ESU100B */
 
#define QUATECH_ESU200A   0xC0A0 /* ESU200A */
 
#define QUATECH_ESU200B   0xC0A1 /* ESU200B */
 
#define QUATECH_HSU100A   0xC090 /* HSU100A */
 
#define QUATECH_HSU100B   0xC091 /* HSU100B */
 
#define QUATECH_HSU100C   0xC092 /* HSU100C */
 
#define QUATECH_HSU100D   0xC093 /* HSU100D */
 
#define QUATECH_HSU200A   0xC0B0 /* HSU200A */
 
#define QUATECH_HSU200B   0xC0B1 /* HSU200B */
 
#define QUATECH_HSU200C   0xC0B2 /* HSU200C */
 
#define QUATECH_HSU200D   0xC0B3 /* HSU200D */
 
#define QT_SET_GET_DEVICE   0xc2
 
#define QT_OPEN_CLOSE_CHANNEL   0xca
 
#define QT_GET_SET_PREBUF_TRIG_LVL   0xcc
 
#define QT_SET_ATF   0xcd
 
#define QT_GET_SET_REGISTER   0xc0
 
#define QT_GET_SET_UART   0xc1
 
#define QT_HW_FLOW_CONTROL_MASK   0xc5
 
#define QT_SW_FLOW_CONTROL_MASK   0xc6
 
#define QT_SW_FLOW_CONTROL_DISABLE   0xc7
 
#define QT_BREAK_CONTROL   0xc8
 
#define USBD_TRANSFER_DIRECTION_IN   0xc0
 
#define USBD_TRANSFER_DIRECTION_OUT   0x40
 
#define MAX_BAUD_RATE   460800
 
#define MAX_BAUD_REMAINDER   4608
 
#define DIV_LATCH_LS   0x00
 
#define XMT_HOLD_REGISTER   0x00
 
#define XVR_BUFFER_REGISTER   0x00
 
#define DIV_LATCH_MS   0x01
 
#define FIFO_CONTROL_REGISTER   0x02
 
#define LINE_CONTROL_REGISTER   0x03
 
#define MODEM_CONTROL_REGISTER   0x04
 
#define LINE_STATUS_REGISTER   0x05
 
#define MODEM_STATUS_REGISTER   0x06
 
#define SERIAL_MCR_DTR   0x01
 
#define SERIAL_MCR_RTS   0x02
 
#define SERIAL_MCR_LOOP   0x10
 
#define SERIAL_MSR_CTS   0x10
 
#define SERIAL_MSR_CD   0x80
 
#define SERIAL_MSR_RI   0x40
 
#define SERIAL_MSR_DSR   0x20
 
#define SERIAL_MSR_MASK   0xf0
 
#define SERIAL_8_DATA   0x03
 
#define SERIAL_7_DATA   0x02
 
#define SERIAL_6_DATA   0x01
 
#define SERIAL_5_DATA   0x00
 
#define SERIAL_ODD_PARITY   0X08
 
#define SERIAL_EVEN_PARITY   0X18
 
#define SERIAL_TWO_STOPB   0x04
 
#define SERIAL_ONE_STOPB   0x00
 
#define DEFAULT_DIVISOR   0x30 /* gives 9600 baud rate */
 
#define DEFAULT_LCR   SERIAL_8_DATA /* 8, none , 1 */
 
#define FULLPWRBIT   0x00000080
 
#define NEXT_BOARD_POWER_BIT   0x00000004
 
#define SERIAL_LSR_OE   0x02
 
#define SERIAL_LSR_PE   0x04
 
#define SERIAL_LSR_FE   0x08
 
#define SERIAL_LSR_BI   0x10
 
#define SERIAL_MSR_CTS   0x10
 
#define SERIAL_MSR_CD   0x80
 
#define SERIAL_MSR_RI   0x40
 
#define SERIAL_MSR_DSR   0x20
 
#define SERIAL_MSR_MASK   0xf0
 
#define PREFUFF_LEVEL_CONSERVATIVE   128
 
#define ATC_DISABLED   0x0
 
#define RR_BITS   0x03 /* for clearing clock bits */
 
#define DUPMODE_BITS   0xc0
 
#define CLKS_X4   0x02
 
#define LOOPMODE_BITS   0x41 /* LOOP1 = b6, LOOP0 = b0 (PORT B) */
 
#define ALL_LOOPBACK   0x01
 
#define MODEM_CTRL   0x40
 
#define RS232_MODE   0x00
 

Functions

 MODULE_DEVICE_TABLE (usb, id_table)
 
 module_usb_serial_driver (serial_drivers, id_table)
 
 MODULE_AUTHOR (DRIVER_AUTHOR)
 
 MODULE_DESCRIPTION (DRIVER_DESC)
 
 MODULE_LICENSE ("GPL")
 

Macro Definition Documentation

#define ALL_LOOPBACK   0x01

Definition at line 115 of file serqt_usb2.c.

#define ATC_DISABLED   0x0

Definition at line 108 of file serqt_usb2.c.

#define CLKS_X4   0x02

Definition at line 112 of file serqt_usb2.c.

#define DEFAULT_DIVISOR   0x30 /* gives 9600 baud rate */

Definition at line 90 of file serqt_usb2.c.

#define DEFAULT_LCR   SERIAL_8_DATA /* 8, none , 1 */

Definition at line 91 of file serqt_usb2.c.

#define DIV_LATCH_LS   0x00

Definition at line 60 of file serqt_usb2.c.

#define DIV_LATCH_MS   0x01

Definition at line 63 of file serqt_usb2.c.

#define DRIVER_AUTHOR   "Tim Gobeli, Quatech, Inc"

Definition at line 21 of file serqt_usb2.c.

#define DRIVER_DESC   "Quatech USB to Serial Driver"

Definition at line 22 of file serqt_usb2.c.

#define DRIVER_VERSION   "v2.14"

Definition at line 20 of file serqt_usb2.c.

#define DUPMODE_BITS   0xc0

Definition at line 111 of file serqt_usb2.c.

#define FIFO_CONTROL_REGISTER   0x02

Definition at line 64 of file serqt_usb2.c.

#define FULLPWRBIT   0x00000080

Definition at line 93 of file serqt_usb2.c.

#define LINE_CONTROL_REGISTER   0x03

Definition at line 65 of file serqt_usb2.c.

#define LINE_STATUS_REGISTER   0x05

Definition at line 67 of file serqt_usb2.c.

#define LOOPMODE_BITS   0x41 /* LOOP1 = b6, LOOP0 = b0 (PORT B) */

Definition at line 114 of file serqt_usb2.c.

#define MAX_BAUD_RATE   460800

Definition at line 57 of file serqt_usb2.c.

#define MAX_BAUD_REMAINDER   4608

Definition at line 58 of file serqt_usb2.c.

#define MODEM_CONTROL_REGISTER   0x04

Definition at line 66 of file serqt_usb2.c.

#define MODEM_CTRL   0x40

Definition at line 116 of file serqt_usb2.c.

#define MODEM_STATUS_REGISTER   0x06

Definition at line 68 of file serqt_usb2.c.

#define NEXT_BOARD_POWER_BIT   0x00000004

Definition at line 94 of file serqt_usb2.c.

#define PREFUFF_LEVEL_CONSERVATIVE   128

Definition at line 107 of file serqt_usb2.c.

#define QT_BREAK_CONTROL   0xc8

Definition at line 52 of file serqt_usb2.c.

#define QT_GET_SET_PREBUF_TRIG_LVL   0xcc

Definition at line 45 of file serqt_usb2.c.

#define QT_GET_SET_REGISTER   0xc0

Definition at line 47 of file serqt_usb2.c.

#define QT_GET_SET_UART   0xc1

Definition at line 48 of file serqt_usb2.c.

#define QT_HW_FLOW_CONTROL_MASK   0xc5

Definition at line 49 of file serqt_usb2.c.

#define QT_OPEN_CLOSE_CHANNEL   0xca

Definition at line 44 of file serqt_usb2.c.

#define QT_SET_ATF   0xcd

Definition at line 46 of file serqt_usb2.c.

#define QT_SET_GET_DEVICE   0xc2

Definition at line 43 of file serqt_usb2.c.

#define QT_SW_FLOW_CONTROL_DISABLE   0xc7

Definition at line 51 of file serqt_usb2.c.

#define QT_SW_FLOW_CONTROL_MASK   0xc6

Definition at line 50 of file serqt_usb2.c.

#define QUATECH_DSU100   0xC040 /* DSU100 */

Definition at line 26 of file serqt_usb2.c.

#define QUATECH_DSU200   0xC050 /* DSU200 */

Definition at line 27 of file serqt_usb2.c.

#define QUATECH_ESU100A   0xC080 /* ESU100A */

Definition at line 30 of file serqt_usb2.c.

#define QUATECH_ESU100B   0xC081 /* ESU100B */

Definition at line 31 of file serqt_usb2.c.

#define QUATECH_ESU200A   0xC0A0 /* ESU200A */

Definition at line 32 of file serqt_usb2.c.

#define QUATECH_ESU200B   0xC0A1 /* ESU200B */

Definition at line 33 of file serqt_usb2.c.

#define QUATECH_HSU100A   0xC090 /* HSU100A */

Definition at line 34 of file serqt_usb2.c.

#define QUATECH_HSU100B   0xC091 /* HSU100B */

Definition at line 35 of file serqt_usb2.c.

#define QUATECH_HSU100C   0xC092 /* HSU100C */

Definition at line 36 of file serqt_usb2.c.

#define QUATECH_HSU100D   0xC093 /* HSU100D */

Definition at line 37 of file serqt_usb2.c.

#define QUATECH_HSU200A   0xC0B0 /* HSU200A */

Definition at line 38 of file serqt_usb2.c.

#define QUATECH_HSU200B   0xC0B1 /* HSU200B */

Definition at line 39 of file serqt_usb2.c.

#define QUATECH_HSU200C   0xC0B2 /* HSU200C */

Definition at line 40 of file serqt_usb2.c.

#define QUATECH_HSU200D   0xC0B3 /* HSU200D */

Definition at line 41 of file serqt_usb2.c.

#define QUATECH_QSU100   0xC060 /* QSU100 */

Definition at line 28 of file serqt_usb2.c.

#define QUATECH_QSU200   0xC070 /* QSU200 */

Definition at line 29 of file serqt_usb2.c.

#define QUATECH_SSU200   0xC030 /* SSU200 */

Definition at line 25 of file serqt_usb2.c.

#define RR_BITS   0x03 /* for clearing clock bits */

Definition at line 110 of file serqt_usb2.c.

#define RS232_MODE   0x00

Definition at line 117 of file serqt_usb2.c.

#define SERIAL_5_DATA   0x00

Definition at line 83 of file serqt_usb2.c.

#define SERIAL_6_DATA   0x01

Definition at line 82 of file serqt_usb2.c.

#define SERIAL_7_DATA   0x02

Definition at line 81 of file serqt_usb2.c.

#define SERIAL_8_DATA   0x03

Definition at line 80 of file serqt_usb2.c.

#define SERIAL_EVEN_PARITY   0X18

Definition at line 86 of file serqt_usb2.c.

#define SERIAL_LSR_BI   0x10

Definition at line 99 of file serqt_usb2.c.

#define SERIAL_LSR_FE   0x08

Definition at line 98 of file serqt_usb2.c.

#define SERIAL_LSR_OE   0x02

Definition at line 96 of file serqt_usb2.c.

#define SERIAL_LSR_PE   0x04

Definition at line 97 of file serqt_usb2.c.

#define SERIAL_MCR_DTR   0x01

Definition at line 70 of file serqt_usb2.c.

#define SERIAL_MCR_LOOP   0x10

Definition at line 72 of file serqt_usb2.c.

#define SERIAL_MCR_RTS   0x02

Definition at line 71 of file serqt_usb2.c.

#define SERIAL_MSR_CD   0x80

Definition at line 102 of file serqt_usb2.c.

#define SERIAL_MSR_CD   0x80

Definition at line 102 of file serqt_usb2.c.

#define SERIAL_MSR_CTS   0x10

Definition at line 101 of file serqt_usb2.c.

#define SERIAL_MSR_CTS   0x10

Definition at line 101 of file serqt_usb2.c.

#define SERIAL_MSR_DSR   0x20

Definition at line 104 of file serqt_usb2.c.

#define SERIAL_MSR_DSR   0x20

Definition at line 104 of file serqt_usb2.c.

#define SERIAL_MSR_MASK   0xf0

Definition at line 105 of file serqt_usb2.c.

#define SERIAL_MSR_MASK   0xf0

Definition at line 105 of file serqt_usb2.c.

#define SERIAL_MSR_RI   0x40

Definition at line 103 of file serqt_usb2.c.

#define SERIAL_MSR_RI   0x40

Definition at line 103 of file serqt_usb2.c.

#define SERIAL_ODD_PARITY   0X08

Definition at line 85 of file serqt_usb2.c.

#define SERIAL_ONE_STOPB   0x00

Definition at line 88 of file serqt_usb2.c.

#define SERIAL_TWO_STOPB   0x04

Definition at line 87 of file serqt_usb2.c.

#define USB_VENDOR_ID_QUATECH   0x061d /* Quatech VID */

Definition at line 24 of file serqt_usb2.c.

#define USBD_TRANSFER_DIRECTION_IN   0xc0

Definition at line 54 of file serqt_usb2.c.

#define USBD_TRANSFER_DIRECTION_OUT   0x40

Definition at line 55 of file serqt_usb2.c.

#define XMT_HOLD_REGISTER   0x00

Definition at line 61 of file serqt_usb2.c.

#define XVR_BUFFER_REGISTER   0x00

Definition at line 62 of file serqt_usb2.c.

Function Documentation

MODULE_AUTHOR ( DRIVER_AUTHOR  )
MODULE_DESCRIPTION ( DRIVER_DESC  )
MODULE_DEVICE_TABLE ( usb  ,
id_table   
)
MODULE_LICENSE ( "GPL"  )
module_usb_serial_driver ( serial_drivers  ,
id_table   
)