diff options
Diffstat (limited to 'drivers/usb/class/cdc-acm.h')
-rw-r--r-- | drivers/usb/class/cdc-acm.h | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/drivers/usb/class/cdc-acm.h b/drivers/usb/class/cdc-acm.h new file mode 100644 index 000000000000..9009114e311b --- /dev/null +++ b/drivers/usb/class/cdc-acm.h | |||
@@ -0,0 +1,82 @@ | |||
1 | /* | ||
2 | * | ||
3 | * Includes for cdc-acm.c | ||
4 | * | ||
5 | * Mainly take from usbnet's cdc-ether part | ||
6 | * | ||
7 | */ | ||
8 | |||
9 | /* | ||
10 | * CMSPAR, some architectures can't have space and mark parity. | ||
11 | */ | ||
12 | |||
13 | #ifndef CMSPAR | ||
14 | #define CMSPAR 0 | ||
15 | #endif | ||
16 | |||
17 | /* | ||
18 | * Major and minor numbers. | ||
19 | */ | ||
20 | |||
21 | #define ACM_TTY_MAJOR 166 | ||
22 | #define ACM_TTY_MINORS 32 | ||
23 | |||
24 | /* | ||
25 | * Requests. | ||
26 | */ | ||
27 | |||
28 | #define USB_RT_ACM (USB_TYPE_CLASS | USB_RECIP_INTERFACE) | ||
29 | |||
30 | /* | ||
31 | * Output control lines. | ||
32 | */ | ||
33 | |||
34 | #define ACM_CTRL_DTR 0x01 | ||
35 | #define ACM_CTRL_RTS 0x02 | ||
36 | |||
37 | /* | ||
38 | * Input control lines and line errors. | ||
39 | */ | ||
40 | |||
41 | #define ACM_CTRL_DCD 0x01 | ||
42 | #define ACM_CTRL_DSR 0x02 | ||
43 | #define ACM_CTRL_BRK 0x04 | ||
44 | #define ACM_CTRL_RI 0x08 | ||
45 | |||
46 | #define ACM_CTRL_FRAMING 0x10 | ||
47 | #define ACM_CTRL_PARITY 0x20 | ||
48 | #define ACM_CTRL_OVERRUN 0x40 | ||
49 | |||
50 | /* | ||
51 | * Internal driver structures. | ||
52 | */ | ||
53 | |||
54 | struct acm { | ||
55 | struct usb_device *dev; /* the corresponding usb device */ | ||
56 | struct usb_interface *control; /* control interface */ | ||
57 | struct usb_interface *data; /* data interface */ | ||
58 | struct tty_struct *tty; /* the corresponding tty */ | ||
59 | struct urb *ctrlurb, *readurb, *writeurb; /* urbs */ | ||
60 | u8 *ctrl_buffer, *read_buffer, *write_buffer; /* buffers of urbs */ | ||
61 | dma_addr_t ctrl_dma, read_dma, write_dma; /* dma handles of buffers */ | ||
62 | struct usb_cdc_line_coding line; /* bits, stop, parity */ | ||
63 | struct work_struct work; /* work queue entry for line discipline waking up */ | ||
64 | struct tasklet_struct bh; /* rx processing */ | ||
65 | spinlock_t throttle_lock; /* synchronize throtteling and read callback */ | ||
66 | unsigned int ctrlin; /* input control lines (DCD, DSR, RI, break, overruns) */ | ||
67 | unsigned int ctrlout; /* output control lines (DTR, RTS) */ | ||
68 | unsigned int writesize; /* max packet size for the output bulk endpoint */ | ||
69 | unsigned int readsize,ctrlsize; /* buffer sizes for freeing */ | ||
70 | unsigned int used; /* someone has this acm's device open */ | ||
71 | unsigned int minor; /* acm minor number */ | ||
72 | unsigned char throttle; /* throttled by tty layer */ | ||
73 | unsigned char clocal; /* termios CLOCAL */ | ||
74 | unsigned char ready_for_write; /* write urb can be used */ | ||
75 | unsigned char resubmit_to_unthrottle; /* throtteling has disabled the read urb */ | ||
76 | unsigned int ctrl_caps; /* control capabilities from the class specific header */ | ||
77 | }; | ||
78 | |||
79 | #define CDC_DATA_INTERFACE_TYPE 0x0a | ||
80 | |||
81 | /* constants describing various quirks and errors */ | ||
82 | #define NO_UNION_NORMAL 1 | ||