common: Add NXP's USB serial code.
[gps-watch.git] / src / common / usb_device_cdc_acm.h
1 /*
2  * The Clear BSD License
3  * Copyright (c) 2015, Freescale Semiconductor, Inc.
4  * Copyright 2016-2017 NXP
5  * All rights reserved.
6  * 
7  * Redistribution and use in source and binary forms, with or without modification,
8  * are permitted (subject to the limitations in the disclaimer below) provided
9  *  that the following conditions are met:
10  *
11  * o Redistributions of source code must retain the above copyright notice, this list
12  *   of conditions and the following disclaimer.
13  *
14  * o Redistributions in binary form must reproduce the above copyright notice, this
15  *   list of conditions and the following disclaimer in the documentation and/or
16  *   other materials provided with the distribution.
17  *
18  * o Neither the name of the copyright holder nor the names of its
19  *   contributors may be used to endorse or promote products derived from this
20  *   software without specific prior written permission.
21  *
22  * NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED BY THIS LICENSE.
23  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
24  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
25  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
26  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
27  * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
28  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
29  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
30  * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
32  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33  */
34
35 #ifndef _USB_DEVICE_CDC_ACM_H_
36 #define _USB_DEVICE_CDC_ACM_H_ 1
37 /*******************************************************************************
38 * Definitions
39 ******************************************************************************/
40
41 #define USB_DEVICE_CONFIG_CDC_ACM_MAX_INSTANCE (1)
42
43 #define USB_DEVICE_CONFIG_CDC_COMM_CLASS_CODE (0x02)
44 #define USB_DEVICE_CONFIG_CDC_DATA_CLASS_CODE (0x0A)
45
46 /* Class specific request Codes */
47 #define USB_DEVICE_CDC_REQUEST_SEND_ENCAPSULATED_COMMAND (0x00)
48 #define USB_DEVICE_CDC_REQUEST_GET_ENCAPSULATED_RESPONSE (0x01)
49 #define USB_DEVICE_CDC_REQUEST_SET_COMM_FEATURE (0x02)
50 #define USB_DEVICE_CDC_REQUEST_GET_COMM_FEATURE (0x03)
51 #define USB_DEVICE_CDC_REQUEST_CLEAR_COMM_FEATURE (0x04)
52 #define USB_DEVICE_CDC_REQUEST_SET_AUX_LINE_STATE (0x10)
53 #define USB_DEVICE_CDC_REQUEST_SET_HOOK_STATE (0x11)
54 #define USB_DEVICE_CDC_REQUEST_PULSE_SETUP (0x12)
55 #define USB_DEVICE_CDC_REQUEST_SEND_PULSE (0x13)
56 #define USB_DEVICE_CDC_REQUEST_SET_PULSE_TIME (0x14)
57 #define USB_DEVICE_CDC_REQUEST_RING_AUX_JACK (0x15)
58 #define USB_DEVICE_CDC_REQUEST_SET_LINE_CODING (0x20)
59 #define USB_DEVICE_CDC_REQUEST_GET_LINE_CODING (0x21)
60 #define USB_DEVICE_CDC_REQUEST_SET_CONTROL_LINE_STATE (0x22)
61 #define USB_DEVICE_CDC_REQUEST_SEND_BREAK (0x23)
62 #define USB_DEVICE_CDC_REQUEST_SET_RINGER_PARAMS (0x30)
63 #define USB_DEVICE_CDC_REQUEST_GET_RINGER_PARAMS (0x31)
64 #define USB_DEVICE_CDC_REQUEST_SET_OPERATION_PARAM (0x32)
65 #define USB_DEVICE_CDC_REQUEST_GET_OPERATION_PARAM (0x33)
66 #define USB_DEVICE_CDC_REQUEST_SET_LINE_PARAMS (0x34)
67 #define USB_DEVICE_CDC_REQUEST_GET_LINE_PARAMS (0x35)
68 #define USB_DEVICE_CDC_REQUEST_DIAL_DIGITS (0x36)
69 #define USB_DEVICE_CDC_REQUEST_SET_UNIT_PARAMETER (0x37)
70 #define USB_DEVICE_CDC_REQUEST_GET_UNIT_PARAMETER (0x38)
71 #define USB_DEVICE_CDC_REQUEST_CLEAR_UNIT_PARAMETER (0x39)
72 #define USB_DEVICE_CDC_REQUEST_GET_PROFILE (0x3A)
73 #define USB_DEVICE_CDC_REQUEST_SET_ETHERNET_MULTICAST_FILTERS (0x40)
74 #define USB_DEVICE_CDC_REQUEST_SET_ETHERNET_POW_PATTER_FILTER (0x41)
75 #define USB_DEVICE_CDC_REQUEST_GET_ETHERNET_POW_PATTER_FILTER (0x42)
76 #define USB_DEVICE_CDC_REQUEST_SET_ETHERNET_PACKET_FILTER (0x43)
77 #define USB_DEVICE_CDC_REQUEST_GET_ETHERNET_STATISTIC (0x44)
78 #define USB_DEVICE_CDC_REQUEST_SET_ATM_DATA_FORMAT (0x50)
79 #define USB_DEVICE_CDC_REQUEST_GET_ATM_DEVICE_STATISTICS (0x51)
80 #define USB_DEVICE_CDC_REQUEST_SET_ATM_DEFAULT_VC (0x52)
81 #define USB_DEVICE_CDC_REQUEST_GET_ATM_VC_STATISTICS (0x53)
82 #define USB_DEVICE_CDC_REQUEST_MDLM_SPECIFIC_REQUESTS_MASK (0x7F)
83
84 #define USB_DEVICE_CDC_REQUEST_GET_ABSTRACT_STATE (0x23)
85 #define USB_DEVICE_CDC_REQUEST_GET_COUNTRY_SETTING (0x24)
86 #define USB_DEVICE_CDC_REQUEST_SET_ABSTRACT_STATE (0x25)
87 #define USB_DEVICE_CDC_REQUEST_SET_COUNTRY_SETTING (0x26)
88 /* Class Specific Notification Codes */
89 #define USB_DEVICE_CDC_REQUEST_NETWORK_CONNECTION_NOTIF (0x00)
90 #define USB_DEVICE_CDC_REQUEST_RESPONSE_AVAIL_NOTIF (0x01)
91 #define USB_DEVICE_CDC_REQUEST_AUX_JACK_HOOK_STATE_NOTIF (0x08)
92 #define USB_DEVICE_CDC_REQUEST_RING_DETECT_NOTIF (0x09)
93 #define USB_DEVICE_CDC_REQUEST_SERIAL_STATE_NOTIF (0x20)
94 #define USB_DEVICE_CDC_REQUEST_CALL_STATE_CHANGE_NOTIF (0x28)
95 #define USB_DEVICE_CDC_REQUEST_LINE_STATE_CHANGE_NOTIF (0x29)
96 #define USB_DEVICE_CDC_REQUEST_CONNECTION_SPEED_CHANGE_NOTIF (0x2A)
97 /* Communications Feature Selector Codes */
98 #define USB_DEVICE_CDC_FEATURE_ABSTRACT_STATE (0x01)
99 #define USB_DEVICE_CDC_FEATURE_COUNTRY_SETTING (0x02)
100 /* Control Signal Bitmap Values */
101 #define USB_DEVICE_CDC_CONTROL_SIG_BITMAP_CARRIER_ACTIVATION (0x02)
102 #define USB_DEVICE_CDC_CONTROL_SIG_BITMAP_DTE_PRESENCE (0x01)
103 /* UART State Bitmap Values */
104 #define USB_DEVICE_CDC_UART_STATE_RX_CARRIER (0x01)
105 #define USB_DEVICE_CDC_UART_STATE_TX_CARRIER (0x02)
106 #define USB_DEVICE_CDC_UART_STATE_BREAK (0x04)
107 #define USB_DEVICE_CDC_UART_STATE_RING_SIGNAL (0x08)
108 #define USB_DEVICE_CDC_UART_STATE_FRAMING (0x10)
109 #define USB_DEVICE_CDC_UART_STATE_PARITY (0x20)
110 #define USB_DEVICE_CDC_UART_STATE_OVERRUN (0x40)
111
112 #endif /* _USB_DEVICE_CDC_ACM_H_ */