Zephyr Project API 4.4.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
usb_cdc.h
Go to the documentation of this file.
1/* usb_cdc.h - USB CDC-ACM and CDC-ECM public header */
2
3/*
4 * Copyright (c) 2017 PHYTEC Messtechnik GmbH
5 * Copyright (c) 2025 - 2026 NXP
6 *
7 * SPDX-License-Identifier: Apache-2.0
8 */
9
10
21
22#ifndef ZEPHYR_INCLUDE_USB_CLASS_USB_CDC_H_
23#define ZEPHYR_INCLUDE_USB_CLASS_USB_CDC_H_
24
26#define CDC_SRN_1_20 0x0120 __DEPRECATED_MACRO
27
29#define ACM_SUBCLASS 0x02
30#define ECM_SUBCLASS 0x06
31#define EEM_SUBCLASS 0x0c
32#define NCM_SUBCLASS 0x0d
33
35#define AT_CMD_V250_PROTOCOL 0x01
36#define EEM_PROTOCOL 0x07
37#define ACM_VENDOR_PROTOCOL 0xFF
38#define NCM_DATA_PROTOCOL 0x01
39
44#define DATA_INTERFACE_CLASS 0x0A
45
51#define HEADER_FUNC_DESC 0x00
52#define CALL_MANAGEMENT_FUNC_DESC 0x01
53#define ACM_FUNC_DESC 0x02
54#define UNION_FUNC_DESC 0x06
55#define ETHERNET_FUNC_DESC 0x0F
56#define ETHERNET_FUNC_DESC_NCM 0x1a
57
62
64#define USB_CDC_NETWORK_CONNECTION 0x00
66#define USB_CDC_RESPONSE_AVAILABLE 0x01
68#define USB_CDC_CONNECTION_SPEED_CHANGE 0x2A
69
75#define CDC_SEND_ENC_CMD 0x00
76#define CDC_GET_ENC_RSP 0x01
77#define SET_LINE_CODING 0x20
78#define GET_LINE_CODING 0x21
79#define SET_CONTROL_LINE_STATE 0x22
80
85
87#define USB_CDC_AUX_JACK_HOOK_STATE 0x08
89#define USB_CDC_RING_DETECT 0x09
91#define USB_CDC_SERIAL_STATE 0x20
93#define USB_CDC_LINE_STATE_CHANGE 0x23
95#define USB_CDC_CALL_STATE_CHANGE 0x28
96
101#define USB_CDC_SERIAL_STATE_OVERRUN BIT(6)
102#define USB_CDC_SERIAL_STATE_PARITY BIT(5)
103#define USB_CDC_SERIAL_STATE_FRAMING BIT(4)
104#define USB_CDC_SERIAL_STATE_RINGSIGNAL BIT(3)
105#define USB_CDC_SERIAL_STATE_BREAK BIT(2)
106#define USB_CDC_SERIAL_STATE_TXCARRIER BIT(1)
107#define USB_CDC_SERIAL_STATE_RXCARRIER BIT(0)
108
110#define SET_CONTROL_LINE_STATE_RTS 0x02
111#define SET_CONTROL_LINE_STATE_DTR 0x01
112
114#define USB_CDC_LINE_CTRL_BAUD_RATE UART_LINE_CTRL_BAUD_RATE
115#define USB_CDC_LINE_CTRL_DCD UART_LINE_CTRL_DCD
116#define USB_CDC_LINE_CTRL_DSR UART_LINE_CTRL_DSR
117#define USB_CDC_LINE_CTRL_BREAK BIT(5)
118#define USB_CDC_LINE_CTRL_RING_SIGNAL BIT(6)
119#define USB_CDC_LINE_CTRL_FRAMING BIT(7)
120#define USB_CDC_LINE_CTRL_PARITY BIT(8)
121#define USB_CDC_LINE_CTRL_OVER_RUN BIT(9)
122
124#define SERIAL_STATE_OVER_RUN 0x40
125#define SERIAL_STATE_PARITY 0x20
126#define SERIAL_STATE_FRAMING 0x10
127#define SERIAL_STATE_RING_SIGNAL 0x08
128#define SERIAL_STATE_BREAK 0x04
129#define SERIAL_STATE_TX_CARRIER 0x02
130#define SERIAL_STATE_RX_CARRIER 0x01
131
137#define USB_CDC_LINE_CODING_STOP_BITS_1 0
138#define USB_CDC_LINE_CODING_STOP_BITS_1_5 1
139#define USB_CDC_LINE_CODING_STOP_BITS_2 2
140
141#define USB_CDC_LINE_CODING_PARITY_NO 0
142#define USB_CDC_LINE_CODING_PARITY_ODD 1
143#define USB_CDC_LINE_CODING_PARITY_EVEN 2
144#define USB_CDC_LINE_CODING_PARITY_MARK 3
145#define USB_CDC_LINE_CODING_PARITY_SPACE 4
146
147#define USB_CDC_LINE_CODING_DATA_BITS_5 5
148#define USB_CDC_LINE_CODING_DATA_BITS_6 6
149#define USB_CDC_LINE_CODING_DATA_BITS_7 7
150#define USB_CDC_LINE_CODING_DATA_BITS_8 8
151
156#define SET_ETHERNET_MULTICAST_FILTERS 0x40
157#define SET_ETHERNET_PM_FILTER 0x41
158#define GET_ETHERNET_PM_FILTER 0x42
159#define SET_ETHERNET_PACKET_FILTER 0x43
160#define GET_ETHERNET_STATISTIC 0x44
161
166#define GET_NTB_PARAMETERS 0x80
167#define GET_NET_ADDRESS 0x81
168#define SET_NET_ADDRESS 0x82
169#define GET_NTB_FORMAT 0x83
170#define SET_NTB_FORMAT 0x84
171#define GET_NTB_INPUT_SIZE 0x85
172#define SET_NTB_INPUT_SIZE 0x86
173#define GET_MAX_DATAGRAM_SIZE 0x87
174#define SET_MAX_DATAGRAM_SIZE 0x88
175#define GET_CRC_MODE 0x89
176#define SET_CRC_MODE 0x8A
177
184#define USB_CDC_NCM_NCAP_ETH_FILTER BIT(0)
186#define USB_CDC_NCM_NCAP_NET_ADDRESS BIT(1)
190#define USB_CDC_NCM_NCAP_ENCAP_COMMAND BIT(2)
194#define USB_CDC_NCM_NCAP_MAX_DATAGRAM_SIZE BIT(3)
196#define USB_CDC_NCM_NCAP_CRC_MODE BIT(4)
200#define USB_CDC_NCM_NCAP_NTB_INPUT_SIZE BIT(5)
202
204#define PACKET_TYPE_MULTICAST 0x10
205#define PACKET_TYPE_BROADCAST 0x08
206#define PACKET_TYPE_DIRECTED 0x04
207#define PACKET_TYPE_ALL_MULTICAST 0x02
208#define PACKET_TYPE_PROMISCUOUS 0x01
209
214
216#define USB_CDC_ECM_STAT_RESERVED 0x00
218#define USB_CDC_ECM_STAT_XMIT_OK 0x01
220#define USB_CDC_ECM_STAT_RCV_OK 0x02
222#define USB_CDC_ECM_STAT_XMIT_ERROR 0x03
224#define USB_CDC_ECM_STAT_RCV_ERROR 0x04
226#define USB_CDC_ECM_STAT_RCV_NO_BUFFER 0x05
228#define USB_CDC_ECM_STAT_DIRECTED_BYTES_XMIT 0x06
230#define USB_CDC_ECM_STAT_DIRECTED_FRAMES_XMIT 0x07
232#define USB_CDC_ECM_STAT_MULTICAST_BYTES_XMIT 0x08
234#define USB_CDC_ECM_STAT_MULTICAST_FRAMES_XMIT 0x09
236#define USB_CDC_ECM_STAT_BROADCAST_BYTES_XMIT 0x0A
238#define USB_CDC_ECM_STAT_BROADCAST_FRAMES_XMIT 0x0B
240#define USB_CDC_ECM_STAT_DIRECTED_BYTES_RCV 0x0C
242#define USB_CDC_ECM_STAT_DIRECTED_FRAMES_RCV 0x0D
244#define USB_CDC_ECM_STAT_MULTICAST_BYTES_RCV 0x0E
246#define USB_CDC_ECM_STAT_MULTICAST_FRAMES_RCV 0x0F
248#define USB_CDC_ECM_STAT_BROADCAST_BYTES_RCV 0x10
250#define USB_CDC_ECM_STAT_BROADCAST_FRAMES_RCV 0x11
252#define USB_CDC_ECM_STAT_RCV_CRC_ERROR 0x12
254#define USB_CDC_ECM_STAT_TRANSMIT_QUEUE_LENGTH 0x13
256#define USB_CDC_ECM_STAT_RCV_ERROR_ALIGNMENT 0x14
258#define USB_CDC_ECM_STAT_XMIT_ONE_COLLISION 0x15
260#define USB_CDC_ECM_STAT_XMIT_MORE_COLLISIONS 0x16
262#define USB_CDC_ECM_STAT_XMIT_DEFERRED 0x17
264#define USB_CDC_ECM_STAT_XMIT_MAX_COLLISIONS 0x18
266#define USB_CDC_ECM_STAT_RCV_OVERRUN 0x19
268#define USB_CDC_ECM_STAT_XMIT_UNDERRUN 0x1A
270#define USB_CDC_ECM_STAT_XMIT_HEARTBEAT_FAILURE 0x1B
272#define USB_CDC_ECM_STAT_XMIT_TIMES_CRS_LOST 0x1C
274#define USB_CDC_ECM_STAT_XMIT_LATE_COLLISIONS 0x1D
275
283
292
301
309
317
327
339
348
349#endif /* ZEPHYR_INCLUDE_USB_CLASS_USB_CDC_H_ */
__UINT32_TYPE__ uint32_t
Definition stdint.h:90
__UINT8_TYPE__ uint8_t
Definition stdint.h:88
__UINT16_TYPE__ uint16_t
Definition stdint.h:89
Abstract Control Management Functional Descriptor.
Definition usb_cdc.h:303
uint8_t bmCapabilities
Definition usb_cdc.h:307
uint8_t bFunctionLength
Definition usb_cdc.h:304
uint8_t bDescriptorType
Definition usb_cdc.h:305
uint8_t bDescriptorSubtype
Definition usb_cdc.h:306
Data structure for GET_LINE_CODING / SET_LINE_CODING class requests.
Definition usb_cdc.h:311
uint32_t dwDTERate
Definition usb_cdc.h:312
uint8_t bParityType
Definition usb_cdc.h:314
uint8_t bDataBits
Definition usb_cdc.h:315
uint8_t bCharFormat
Definition usb_cdc.h:313
Data structure for the notification about SerialState.
Definition usb_cdc.h:319
uint16_t wIndex
Definition usb_cdc.h:323
uint16_t wValue
Definition usb_cdc.h:322
uint16_t data
Definition usb_cdc.h:325
uint8_t bmRequestType
Definition usb_cdc.h:320
uint8_t bNotificationType
Definition usb_cdc.h:321
uint16_t wLength
Definition usb_cdc.h:324
Call Management Functional Descriptor.
Definition usb_cdc.h:294
uint8_t bDataInterface
Definition usb_cdc.h:299
uint8_t bFunctionLength
Definition usb_cdc.h:295
uint8_t bDescriptorSubtype
Definition usb_cdc.h:297
uint8_t bmCapabilities
Definition usb_cdc.h:298
uint8_t bDescriptorType
Definition usb_cdc.h:296
Ethernet Networking Functional Descriptor.
Definition usb_cdc.h:329
uint16_t wNumberMCFilters
Definition usb_cdc.h:336
uint32_t bmEthernetStatistics
Definition usb_cdc.h:334
uint8_t bFunctionLength
Definition usb_cdc.h:330
uint8_t bDescriptorSubtype
Definition usb_cdc.h:332
uint8_t iMACAddress
Definition usb_cdc.h:333
uint8_t bDescriptorType
Definition usb_cdc.h:331
uint8_t bNumberPowerFilters
Definition usb_cdc.h:337
uint16_t wMaxSegmentSize
Definition usb_cdc.h:335
Header Functional Descriptor.
Definition usb_cdc.h:277
uint8_t bDescriptorType
Definition usb_cdc.h:279
uint8_t bDescriptorSubtype
Definition usb_cdc.h:280
uint16_t bcdCDC
Definition usb_cdc.h:281
uint8_t bFunctionLength
Definition usb_cdc.h:278
Ethernet Network Control Model (NCM) Descriptor.
Definition usb_cdc.h:341
uint8_t bmNetworkCapabilities
Definition usb_cdc.h:346
uint8_t bFunctionLength
Definition usb_cdc.h:342
uint8_t bDescriptorType
Definition usb_cdc.h:343
uint8_t bDescriptorSubtype
Definition usb_cdc.h:344
uint16_t bcdNcmVersion
Definition usb_cdc.h:345
Union Interface Functional Descriptor.
Definition usb_cdc.h:285
uint8_t bSubordinateInterface0
Definition usb_cdc.h:290
uint8_t bControlInterface
Definition usb_cdc.h:289
uint8_t bDescriptorType
Definition usb_cdc.h:287
uint8_t bFunctionLength
Definition usb_cdc.h:286
uint8_t bDescriptorSubtype
Definition usb_cdc.h:288