Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions
quatech2.c File Reference
#include <asm/unaligned.h>
#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/serial_reg.h>
#include <linux/uaccess.h>

Go to the source code of this file.

Data Structures

struct  qt2_device_detail
 
struct  qt2_serial_private
 
struct  qt2_port_private
 

Macros

#define QT2_USB_TIMEOUT   USB_CTRL_SET_TIMEOUT
 
#define QT_OPEN_CLOSE_CHANNEL   0xca
 
#define QT_SET_GET_DEVICE   0xc2
 
#define QT_SET_GET_REGISTER   0xc0
 
#define QT_GET_SET_PREBUF_TRIG_LVL   0xcc
 
#define QT_SET_ATF   0xcd
 
#define QT_TRANSFER_IN   0xc0
 
#define QT_HW_FLOW_CONTROL_MASK   0xc5
 
#define QT_SW_FLOW_CONTROL_MASK   0xc6
 
#define QT2_BREAK_CONTROL   0xc8
 
#define QT2_GET_SET_UART   0xc1
 
#define QT2_FLUSH_DEVICE   0xc4
 
#define QT2_GET_SET_QMCR   0xe1
 
#define QT2_QMCR_RS232   0x40
 
#define QT2_QMCR_RS422   0x10
 
#define SERIAL_CRTSCTS   ((UART_MCR_RTS << 8) | UART_MSR_CTS)
 
#define SERIAL_EVEN_PARITY   (UART_LCR_PARITY | UART_LCR_EPAR)
 
#define QT2_CONTROL_BYTE   0x1b
 
#define QT2_LINE_STATUS   0x00 /* following 1 byte is line status */
 
#define QT2_MODEM_STATUS   0x01 /* following 1 byte is modem status */
 
#define QT2_XMIT_HOLD   0x02 /* following 2 bytes are ?? */
 
#define QT2_CHANGE_PORT   0x03 /* following 1 byte is port to change to */
 
#define QT2_REC_FLUSH   0x04 /* no following info */
 
#define QT2_XMIT_FLUSH   0x05 /* no following info */
 
#define QT2_CONTROL_ESCAPE   0xff /* pass through previous 2 control bytes */
 
#define MAX_BAUD_RATE   921600
 
#define DEFAULT_BAUD_RATE   9600
 
#define QT2_WRITE_BUFFER_SIZE   512 /* size of write buffer */
 
#define QT2_WRITE_CONTROL_SIZE   5 /* control bytes used for a write */
 
#define DRIVER_VERSION   "v0.1"
 
#define DRIVER_DESC   "Quatech 2nd gen USB to Serial Driver"
 
#define USB_VENDOR_ID_QUATECH   0x061d
 
#define QUATECH_SSU2_100   0xC120 /* RS232 single port */
 
#define QUATECH_DSU2_100   0xC140 /* RS232 dual port */
 
#define QUATECH_DSU2_400   0xC150 /* RS232/422/485 dual port */
 
#define QUATECH_QSU2_100   0xC160 /* RS232 four port */
 
#define QUATECH_QSU2_400   0xC170 /* RS232/422/485 four port */
 
#define QUATECH_ESU2_100   0xC1A0 /* RS232 eight port */
 
#define QUATECH_ESU2_400   0xC180 /* RS232/422/485 eight port */
 
#define QT_DETAILS(prod, ports)
 

Functions

 MODULE_DEVICE_TABLE (usb, id_table)
 
void qt2_process_read_urb (struct urb *urb)
 
 module_usb_serial_driver (serial_drivers, id_table)
 
 MODULE_DESCRIPTION (DRIVER_DESC)
 
 MODULE_LICENSE ("GPL")
 

Macro Definition Documentation

#define DEFAULT_BAUD_RATE   9600

Definition at line 63 of file quatech2.c.

#define DRIVER_DESC   "Quatech 2nd gen USB to Serial Driver"

Definition at line 70 of file quatech2.c.

#define DRIVER_VERSION   "v0.1"

Definition at line 69 of file quatech2.c.

#define MAX_BAUD_RATE   921600

Definition at line 62 of file quatech2.c.

#define QT2_BREAK_CONTROL   0xc8

Definition at line 41 of file quatech2.c.

#define QT2_CHANGE_PORT   0x03 /* following 1 byte is port to change to */

Definition at line 57 of file quatech2.c.

#define QT2_CONTROL_BYTE   0x1b

Definition at line 53 of file quatech2.c.

#define QT2_CONTROL_ESCAPE   0xff /* pass through previous 2 control bytes */

Definition at line 60 of file quatech2.c.

#define QT2_FLUSH_DEVICE   0xc4

Definition at line 43 of file quatech2.c.

#define QT2_GET_SET_QMCR   0xe1

Definition at line 44 of file quatech2.c.

#define QT2_GET_SET_UART   0xc1

Definition at line 42 of file quatech2.c.

#define QT2_LINE_STATUS   0x00 /* following 1 byte is line status */

Definition at line 54 of file quatech2.c.

#define QT2_MODEM_STATUS   0x01 /* following 1 byte is modem status */

Definition at line 55 of file quatech2.c.

#define QT2_QMCR_RS232   0x40

Definition at line 45 of file quatech2.c.

#define QT2_QMCR_RS422   0x10

Definition at line 46 of file quatech2.c.

#define QT2_REC_FLUSH   0x04 /* no following info */

Definition at line 58 of file quatech2.c.

#define QT2_USB_TIMEOUT   USB_CTRL_SET_TIMEOUT

Definition at line 31 of file quatech2.c.

#define QT2_WRITE_BUFFER_SIZE   512 /* size of write buffer */

Definition at line 65 of file quatech2.c.

#define QT2_WRITE_CONTROL_SIZE   5 /* control bytes used for a write */

Definition at line 66 of file quatech2.c.

#define QT2_XMIT_FLUSH   0x05 /* no following info */

Definition at line 59 of file quatech2.c.

#define QT2_XMIT_HOLD   0x02 /* following 2 bytes are ?? */

Definition at line 56 of file quatech2.c.

#define QT_DETAILS (   prod,
  ports 
)
Value:
.product_id = (prod), \
.num_ports = (ports)

Definition at line 86 of file quatech2.c.

#define QT_GET_SET_PREBUF_TRIG_LVL   0xcc

Definition at line 36 of file quatech2.c.

#define QT_HW_FLOW_CONTROL_MASK   0xc5

Definition at line 39 of file quatech2.c.

#define QT_OPEN_CLOSE_CHANNEL   0xca

Definition at line 33 of file quatech2.c.

#define QT_SET_ATF   0xcd

Definition at line 37 of file quatech2.c.

#define QT_SET_GET_DEVICE   0xc2

Definition at line 34 of file quatech2.c.

#define QT_SET_GET_REGISTER   0xc0

Definition at line 35 of file quatech2.c.

#define QT_SW_FLOW_CONTROL_MASK   0xc6

Definition at line 40 of file quatech2.c.

#define QT_TRANSFER_IN   0xc0

Definition at line 38 of file quatech2.c.

#define QUATECH_DSU2_100   0xC140 /* RS232 dual port */

Definition at line 74 of file quatech2.c.

#define QUATECH_DSU2_400   0xC150 /* RS232/422/485 dual port */

Definition at line 75 of file quatech2.c.

#define QUATECH_ESU2_100   0xC1A0 /* RS232 eight port */

Definition at line 78 of file quatech2.c.

#define QUATECH_ESU2_400   0xC180 /* RS232/422/485 eight port */

Definition at line 79 of file quatech2.c.

#define QUATECH_QSU2_100   0xC160 /* RS232 four port */

Definition at line 76 of file quatech2.c.

#define QUATECH_QSU2_400   0xC170 /* RS232/422/485 four port */

Definition at line 77 of file quatech2.c.

#define QUATECH_SSU2_100   0xC120 /* RS232 single port */

Definition at line 73 of file quatech2.c.

#define SERIAL_CRTSCTS   ((UART_MCR_RTS << 8) | UART_MSR_CTS)

Definition at line 48 of file quatech2.c.

#define SERIAL_EVEN_PARITY   (UART_LCR_PARITY | UART_LCR_EPAR)

Definition at line 50 of file quatech2.c.

#define USB_VENDOR_ID_QUATECH   0x061d

Definition at line 72 of file quatech2.c.

Function Documentation

MODULE_DESCRIPTION ( DRIVER_DESC  )
MODULE_DEVICE_TABLE ( usb  ,
id_table   
)
MODULE_LICENSE ( "GPL"  )
module_usb_serial_driver ( serial_drivers  ,
id_table   
)
void qt2_process_read_urb ( struct urb urb)

Definition at line 608 of file quatech2.c.