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