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