GNU Linux-libre 4.9.309-gnu1
[releases.git] / drivers / usb / serial / cypress_m8.h
1 #ifndef CYPRESS_M8_H
2 #define CYPRESS_M8_H
3
4 /*
5  * definitions and function prototypes used for the cypress USB to Serial
6  * controller
7  */
8
9 /*
10  * For sending our feature buffer - controlling serial communication states.
11  * Linux HID has no support for serial devices so we do this through the driver
12  */
13 #define HID_REQ_GET_REPORT      0x01
14 #define HID_REQ_SET_REPORT      0x09
15
16 /* List other cypress USB to Serial devices here, and add them to the id_table */
17
18 /* DeLorme Earthmate USB - a GPS device */
19 #define VENDOR_ID_DELORME               0x1163
20 #define PRODUCT_ID_EARTHMATEUSB         0x0100
21 #define PRODUCT_ID_EARTHMATEUSB_LT20    0x0200
22
23 /* Cypress HID->COM RS232 Adapter */
24 #define VENDOR_ID_CYPRESS               0x04b4
25 #define PRODUCT_ID_CYPHIDCOM            0x5500
26
27 /* Simply Automated HID->COM UPB PIM (using Cypress PID 0x5500) */
28 #define VENDOR_ID_SAI                   0x17dd
29
30 /* FRWD Dongle - a GPS sports watch */
31 #define VENDOR_ID_FRWD                  0x6737
32 #define PRODUCT_ID_CYPHIDCOM_FRWD       0x0001
33
34 /* Powercom UPS, chip CY7C63723 */
35 #define VENDOR_ID_POWERCOM              0x0d9f
36 #define PRODUCT_ID_UPS                  0x0002
37
38 /* Nokia CA-42 USB to serial cable */
39 #define VENDOR_ID_DAZZLE                0x07d0
40 #define PRODUCT_ID_CA42                 0x4101
41 /* End of device listing */
42
43 /* Used for setting / requesting serial line settings */
44 #define CYPRESS_SET_CONFIG      0x01
45 #define CYPRESS_GET_CONFIG      0x02
46
47 /* Used for throttle control */
48 #define THROTTLED               0x1
49 #define ACTUALLY_THROTTLED      0x2
50
51 /*
52  * chiptypes - used in case firmware differs from the generic form ... offering
53  * different baud speeds/etc.
54  */
55 #define CT_EARTHMATE    0x01
56 #define CT_CYPHIDCOM    0x02
57 #define CT_CA42V2       0x03
58 #define CT_GENERIC      0x0F
59 /* End of chiptype definitions */
60
61 /*
62  * RS-232 serial data communication protocol definitions.
63  *
64  * These are sent / read at byte 0 of the input/output hid reports.
65  * You can find these values defined in the CY4601 USB to Serial design notes.
66  */
67
68 #define CONTROL_DTR     0x20    /* data terminal ready */
69 #define CONTROL_RTS     0x10    /* request to send */
70 #define CONTROL_RESET   0x08    /* sent with output report */
71
72 #define UART_MSR_MASK   0xf0
73 #define UART_RI         0x80    /* ring indicator */
74 #define UART_CD         0x40    /* carrier detect */
75 #define UART_DSR        0x20    /* data set ready */
76 #define UART_CTS        0x10    /* clear to send */
77 #define CYP_ERROR       0x08    /* received from input report */
78
79 /* End of RS-232 protocol definitions */
80
81 #endif /* CYPRESS_M8_H */