1f9f848faSopenharmony_ci/* $NetBSD: usbcdc.h,v 1.9 2004/10/23 13:24:24 augustss Exp $ */ 2f9f848faSopenharmony_ci 3f9f848faSopenharmony_ci/*- 4f9f848faSopenharmony_ci * SPDX-License-Identifier: BSD-2-Clause 5f9f848faSopenharmony_ci * 6f9f848faSopenharmony_ci * Copyright (c) 1998 The NetBSD Foundation, Inc. 7f9f848faSopenharmony_ci * All rights reserved. 8f9f848faSopenharmony_ci * 9f9f848faSopenharmony_ci * This code is derived from software contributed to The NetBSD Foundation 10f9f848faSopenharmony_ci * by Lennart Augustsson (lennart@augustsson.net) at 11f9f848faSopenharmony_ci * Carlstedt Research & Technology. 12f9f848faSopenharmony_ci * 13f9f848faSopenharmony_ci * Redistribution and use in source and binary forms, with or without 14f9f848faSopenharmony_ci * modification, are permitted provided that the following conditions 15f9f848faSopenharmony_ci * are met: 16f9f848faSopenharmony_ci * 1. Redistributions of source code must retain the above copyright 17f9f848faSopenharmony_ci * notice, this list of conditions and the following disclaimer. 18f9f848faSopenharmony_ci * 2. Redistributions in binary form must reproduce the above copyright 19f9f848faSopenharmony_ci * notice, this list of conditions and the following disclaimer in the 20f9f848faSopenharmony_ci * documentation and/or other materials provided with the distribution. 21f9f848faSopenharmony_ci * 22f9f848faSopenharmony_ci * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 23f9f848faSopenharmony_ci * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 24f9f848faSopenharmony_ci * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 25f9f848faSopenharmony_ci * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 26f9f848faSopenharmony_ci * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 27f9f848faSopenharmony_ci * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 28f9f848faSopenharmony_ci * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 29f9f848faSopenharmony_ci * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 30f9f848faSopenharmony_ci * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 31f9f848faSopenharmony_ci * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 32f9f848faSopenharmony_ci * POSSIBILITY OF SUCH DAMAGE. 33f9f848faSopenharmony_ci */ 34f9f848faSopenharmony_ci 35f9f848faSopenharmony_ci#ifndef _USB_CDC_H_ 36f9f848faSopenharmony_ci#define _USB_CDC_H_ 37f9f848faSopenharmony_ci 38f9f848faSopenharmony_ci#define UDESCSUB_CDC_HEADER 0 39f9f848faSopenharmony_ci#define UDESCSUB_CDC_CM 1 /* Call Management */ 40f9f848faSopenharmony_ci#define UDESCSUB_CDC_ACM 2 /* Abstract Control Model */ 41f9f848faSopenharmony_ci#define UDESCSUB_CDC_DLM 3 /* Direct Line Management */ 42f9f848faSopenharmony_ci#define UDESCSUB_CDC_TRF 4 /* Telephone Ringer */ 43f9f848faSopenharmony_ci#define UDESCSUB_CDC_TCLSR 5 /* Telephone Call */ 44f9f848faSopenharmony_ci#define UDESCSUB_CDC_UNION 6 45f9f848faSopenharmony_ci#define UDESCSUB_CDC_CS 7 /* Country Selection */ 46f9f848faSopenharmony_ci#define UDESCSUB_CDC_TOM 8 /* Telephone Operational Modes */ 47f9f848faSopenharmony_ci#define UDESCSUB_CDC_USBT 9 /* USB Terminal */ 48f9f848faSopenharmony_ci#define UDESCSUB_CDC_NCT 10 49f9f848faSopenharmony_ci#define UDESCSUB_CDC_PUF 11 50f9f848faSopenharmony_ci#define UDESCSUB_CDC_EUF 12 51f9f848faSopenharmony_ci#define UDESCSUB_CDC_MCMF 13 52f9f848faSopenharmony_ci#define UDESCSUB_CDC_CCMF 14 53f9f848faSopenharmony_ci#define UDESCSUB_CDC_ENF 15 54f9f848faSopenharmony_ci#define UDESCSUB_CDC_ANF 16 55f9f848faSopenharmony_ci 56f9f848faSopenharmony_cistruct usb_cdc_header_descriptor { 57f9f848faSopenharmony_ci uByte bLength; 58f9f848faSopenharmony_ci uByte bDescriptorType; 59f9f848faSopenharmony_ci uByte bDescriptorSubtype; 60f9f848faSopenharmony_ci uWord bcdCDC; 61f9f848faSopenharmony_ci} __packed; 62f9f848faSopenharmony_ci 63f9f848faSopenharmony_cistruct usb_cdc_cm_descriptor { 64f9f848faSopenharmony_ci uByte bLength; 65f9f848faSopenharmony_ci uByte bDescriptorType; 66f9f848faSopenharmony_ci uByte bDescriptorSubtype; 67f9f848faSopenharmony_ci uByte bmCapabilities; 68f9f848faSopenharmony_ci#define USB_CDC_CM_DOES_CM 0x01 69f9f848faSopenharmony_ci#define USB_CDC_CM_OVER_DATA 0x02 70f9f848faSopenharmony_ci uByte bDataInterface; 71f9f848faSopenharmony_ci} __packed; 72f9f848faSopenharmony_ci 73f9f848faSopenharmony_cistruct usb_cdc_acm_descriptor { 74f9f848faSopenharmony_ci uByte bLength; 75f9f848faSopenharmony_ci uByte bDescriptorType; 76f9f848faSopenharmony_ci uByte bDescriptorSubType; 77f9f848faSopenharmony_ci uByte bmCapabilities; 78f9f848faSopenharmony_ci#define USB_CDC_ACM_HAS_FEATURE 0x01 79f9f848faSopenharmony_ci#define USB_CDC_ACM_HAS_LINE 0x02 80f9f848faSopenharmony_ci#define USB_CDC_ACM_HAS_BREAK 0x04 81f9f848faSopenharmony_ci#define USB_CDC_ACM_HAS_NETWORK_CONN 0x08 82f9f848faSopenharmony_ci} __packed; 83f9f848faSopenharmony_ci 84f9f848faSopenharmony_cistruct usb_cdc_call_mgmt_descriptor { 85f9f848faSopenharmony_ci uByte bLength; 86f9f848faSopenharmony_ci uByte bDescriptorType; 87f9f848faSopenharmony_ci uByte bDescriptorSubType; 88f9f848faSopenharmony_ci uByte bmCapabilities; 89f9f848faSopenharmony_ci 90f9f848faSopenharmony_ci uByte bDataInterface; 91f9f848faSopenharmony_ci} __packed; 92f9f848faSopenharmony_ci 93f9f848faSopenharmony_cistruct usb_cdc_header_desc { 94f9f848faSopenharmony_ci uByte bLength; 95f9f848faSopenharmony_ci uByte bDescriptorType; 96f9f848faSopenharmony_ci uByte bDescriptorSubType; 97f9f848faSopenharmony_ci 98f9f848faSopenharmony_ci uWord bcdCDC; 99f9f848faSopenharmony_ci} __packed; 100f9f848faSopenharmony_ci 101f9f848faSopenharmony_cistruct usb_cdc_union_desc { 102f9f848faSopenharmony_ci uByte bLength; 103f9f848faSopenharmony_ci uByte bDescriptorType; 104f9f848faSopenharmony_ci uByte bDescriptorSubType; 105f9f848faSopenharmony_ci 106f9f848faSopenharmony_ci uByte bMasterInterface0; 107f9f848faSopenharmony_ci uByte bSlaveInterface0; 108f9f848faSopenharmony_ci} __packed; 109f9f848faSopenharmony_ci 110f9f848faSopenharmony_ci/* "Ethernet Networking Functional Descriptor" from CDC spec 5.2.3.16 */ 111f9f848faSopenharmony_cistruct usb_cdc_ether_desc { 112f9f848faSopenharmony_ci uByte bLength; 113f9f848faSopenharmony_ci uByte bDescriptorType; 114f9f848faSopenharmony_ci uByte bDescriptorSubType; 115f9f848faSopenharmony_ci 116f9f848faSopenharmony_ci uByte iMACAddress; 117f9f848faSopenharmony_ci uDWord bmEthernetStatistics; 118f9f848faSopenharmony_ci uWord wMaxSegmentSize; 119f9f848faSopenharmony_ci uWord wNumberMCFilters; 120f9f848faSopenharmony_ci uByte bNumberPowerFilters; 121f9f848faSopenharmony_ci} __packed; 122f9f848faSopenharmony_ci 123f9f848faSopenharmony_cistruct usb_cdc_union_descriptor { 124f9f848faSopenharmony_ci uByte bLength; 125f9f848faSopenharmony_ci uByte bDescriptorType; 126f9f848faSopenharmony_ci uByte bDescriptorSubtype; 127f9f848faSopenharmony_ci uByte bMasterInterface; 128f9f848faSopenharmony_ci uByte bSlaveInterface[1]; 129f9f848faSopenharmony_ci} __packed; 130f9f848faSopenharmony_ci 131f9f848faSopenharmony_cistruct usb_cdc_ethernet_descriptor { 132f9f848faSopenharmony_ci uByte bLength; 133f9f848faSopenharmony_ci uByte bDescriptorType; 134f9f848faSopenharmony_ci uByte bDescriptorSubtype; 135f9f848faSopenharmony_ci uByte iMacAddress; 136f9f848faSopenharmony_ci uDWord bmEthernetStatistics; 137f9f848faSopenharmony_ci uWord wMaxSegmentSize; 138f9f848faSopenharmony_ci uWord wNumberMCFilters; 139f9f848faSopenharmony_ci uByte bNumberPowerFilters; 140f9f848faSopenharmony_ci} __packed; 141f9f848faSopenharmony_ci 142f9f848faSopenharmony_ci#define UCDC_SEND_ENCAPSULATED_COMMAND 0x00 143f9f848faSopenharmony_ci#define UCDC_GET_ENCAPSULATED_RESPONSE 0x01 144f9f848faSopenharmony_ci#define UCDC_SET_COMM_FEATURE 0x02 145f9f848faSopenharmony_ci#define UCDC_GET_COMM_FEATURE 0x03 146f9f848faSopenharmony_ci#define UCDC_ABSTRACT_STATE 0x01 147f9f848faSopenharmony_ci#define UCDC_COUNTRY_SETTING 0x02 148f9f848faSopenharmony_ci#define UCDC_CLEAR_COMM_FEATURE 0x04 149f9f848faSopenharmony_ci#define UCDC_SET_LINE_CODING 0x20 150f9f848faSopenharmony_ci#define UCDC_GET_LINE_CODING 0x21 151f9f848faSopenharmony_ci#define UCDC_SET_CONTROL_LINE_STATE 0x22 152f9f848faSopenharmony_ci#define UCDC_LINE_DTR 0x0001 153f9f848faSopenharmony_ci#define UCDC_LINE_RTS 0x0002 154f9f848faSopenharmony_ci#define UCDC_SEND_BREAK 0x23 155f9f848faSopenharmony_ci#define UCDC_BREAK_ON 0xffff 156f9f848faSopenharmony_ci#define UCDC_BREAK_OFF 0x0000 157f9f848faSopenharmony_ci 158f9f848faSopenharmony_cistruct usb_cdc_abstract_state { 159f9f848faSopenharmony_ci uWord wState; 160f9f848faSopenharmony_ci#define UCDC_IDLE_SETTING 0x0001 161f9f848faSopenharmony_ci#define UCDC_DATA_MULTIPLEXED 0x0002 162f9f848faSopenharmony_ci} __packed; 163f9f848faSopenharmony_ci 164f9f848faSopenharmony_ci#define UCDC_ABSTRACT_STATE_LENGTH 2 165f9f848faSopenharmony_ci 166f9f848faSopenharmony_cistruct usb_cdc_line_state { 167f9f848faSopenharmony_ci uDWord dwDTERate; 168f9f848faSopenharmony_ci uByte bCharFormat; 169f9f848faSopenharmony_ci#define UCDC_STOP_BIT_1 0 170f9f848faSopenharmony_ci#define UCDC_STOP_BIT_1_5 1 171f9f848faSopenharmony_ci#define UCDC_STOP_BIT_2 2 172f9f848faSopenharmony_ci uByte bParityType; 173f9f848faSopenharmony_ci#define UCDC_PARITY_NONE 0 174f9f848faSopenharmony_ci#define UCDC_PARITY_ODD 1 175f9f848faSopenharmony_ci#define UCDC_PARITY_EVEN 2 176f9f848faSopenharmony_ci#define UCDC_PARITY_MARK 3 177f9f848faSopenharmony_ci#define UCDC_PARITY_SPACE 4 178f9f848faSopenharmony_ci uByte bDataBits; 179f9f848faSopenharmony_ci} __packed; 180f9f848faSopenharmony_ci 181f9f848faSopenharmony_ci#define UCDC_LINE_STATE_LENGTH 7 182f9f848faSopenharmony_ci 183f9f848faSopenharmony_cistruct usb_cdc_notification { 184f9f848faSopenharmony_ci uByte bmRequestType; 185f9f848faSopenharmony_ci#define UCDC_NOTIFICATION 0xa1 186f9f848faSopenharmony_ci uByte bNotification; 187f9f848faSopenharmony_ci#define UCDC_N_NETWORK_CONNECTION 0x00 188f9f848faSopenharmony_ci#define UCDC_N_RESPONSE_AVAILABLE 0x01 189f9f848faSopenharmony_ci#define UCDC_N_AUX_JACK_HOOK_STATE 0x08 190f9f848faSopenharmony_ci#define UCDC_N_RING_DETECT 0x09 191f9f848faSopenharmony_ci#define UCDC_N_SERIAL_STATE 0x20 192f9f848faSopenharmony_ci#define UCDC_N_CALL_STATE_CHANGED 0x28 193f9f848faSopenharmony_ci#define UCDC_N_LINE_STATE_CHANGED 0x29 194f9f848faSopenharmony_ci#define UCDC_N_CONNECTION_SPEED_CHANGE 0x2a 195f9f848faSopenharmony_ci uWord wValue; 196f9f848faSopenharmony_ci uWord wIndex; 197f9f848faSopenharmony_ci uWord wLength; 198f9f848faSopenharmony_ci uByte data[16]; 199f9f848faSopenharmony_ci} __packed; 200f9f848faSopenharmony_ci 201f9f848faSopenharmony_ci#define UCDC_NOTIFICATION_LENGTH 8 202f9f848faSopenharmony_ci 203f9f848faSopenharmony_ci/* 204f9f848faSopenharmony_ci * Bits set in the SERIAL STATE notification (first byte of data) 205f9f848faSopenharmony_ci */ 206f9f848faSopenharmony_ci 207f9f848faSopenharmony_ci#define UCDC_N_SERIAL_OVERRUN 0x40 208f9f848faSopenharmony_ci#define UCDC_N_SERIAL_PARITY 0x20 209f9f848faSopenharmony_ci#define UCDC_N_SERIAL_FRAMING 0x10 210f9f848faSopenharmony_ci#define UCDC_N_SERIAL_RI 0x08 211f9f848faSopenharmony_ci#define UCDC_N_SERIAL_BREAK 0x04 212f9f848faSopenharmony_ci#define UCDC_N_SERIAL_DSR 0x02 213f9f848faSopenharmony_ci#define UCDC_N_SERIAL_DCD 0x01 214f9f848faSopenharmony_ci 215f9f848faSopenharmony_ci/* Serial state bit masks */ 216f9f848faSopenharmony_ci#define UCDC_MDM_RXCARRIER 0x01 217f9f848faSopenharmony_ci#define UCDC_MDM_TXCARRIER 0x02 218f9f848faSopenharmony_ci#define UCDC_MDM_BREAK 0x04 219f9f848faSopenharmony_ci#define UCDC_MDM_RING 0x08 220f9f848faSopenharmony_ci#define UCDC_MDM_FRAMING_ERR 0x10 221f9f848faSopenharmony_ci#define UCDC_MDM_PARITY_ERR 0x20 222f9f848faSopenharmony_ci#define UCDC_MDM_OVERRUN_ERR 0x40 223f9f848faSopenharmony_ci 224f9f848faSopenharmony_ci/* 225f9f848faSopenharmony_ci * Network Control Model, NCM16 + NCM32, protocol definitions 226f9f848faSopenharmony_ci */ 227f9f848faSopenharmony_cistruct usb_ncm16_hdr { 228f9f848faSopenharmony_ci uDWord dwSignature; 229f9f848faSopenharmony_ci uWord wHeaderLength; 230f9f848faSopenharmony_ci uWord wSequence; 231f9f848faSopenharmony_ci uWord wBlockLength; 232f9f848faSopenharmony_ci uWord wDptIndex; 233f9f848faSopenharmony_ci} __packed; 234f9f848faSopenharmony_ci 235f9f848faSopenharmony_cistruct usb_ncm16_dp { 236f9f848faSopenharmony_ci uWord wFrameIndex; 237f9f848faSopenharmony_ci uWord wFrameLength; 238f9f848faSopenharmony_ci} __packed; 239f9f848faSopenharmony_ci 240f9f848faSopenharmony_cistruct usb_ncm16_dpt { 241f9f848faSopenharmony_ci uDWord dwSignature; 242f9f848faSopenharmony_ci uWord wLength; 243f9f848faSopenharmony_ci uWord wNextNdpIndex; 244f9f848faSopenharmony_ci struct usb_ncm16_dp dp[0]; 245f9f848faSopenharmony_ci} __packed; 246f9f848faSopenharmony_ci 247f9f848faSopenharmony_cistruct usb_ncm32_hdr { 248f9f848faSopenharmony_ci uDWord dwSignature; 249f9f848faSopenharmony_ci uWord wHeaderLength; 250f9f848faSopenharmony_ci uWord wSequence; 251f9f848faSopenharmony_ci uDWord dwBlockLength; 252f9f848faSopenharmony_ci uDWord dwDptIndex; 253f9f848faSopenharmony_ci} __packed; 254f9f848faSopenharmony_ci 255f9f848faSopenharmony_cistruct usb_ncm32_dp { 256f9f848faSopenharmony_ci uDWord dwFrameIndex; 257f9f848faSopenharmony_ci uDWord dwFrameLength; 258f9f848faSopenharmony_ci} __packed; 259f9f848faSopenharmony_ci 260f9f848faSopenharmony_cistruct usb_ncm32_dpt { 261f9f848faSopenharmony_ci uDWord dwSignature; 262f9f848faSopenharmony_ci uWord wLength; 263f9f848faSopenharmony_ci uWord wReserved6; 264f9f848faSopenharmony_ci uDWord dwNextNdpIndex; 265f9f848faSopenharmony_ci uDWord dwReserved12; 266f9f848faSopenharmony_ci struct usb_ncm32_dp dp[0]; 267f9f848faSopenharmony_ci} __packed; 268f9f848faSopenharmony_ci 269f9f848faSopenharmony_ci/* Communications interface class specific descriptors */ 270f9f848faSopenharmony_ci 271f9f848faSopenharmony_ci#define UCDC_NCM_FUNC_DESC_SUBTYPE 0x1A 272f9f848faSopenharmony_ci 273f9f848faSopenharmony_cistruct usb_ncm_func_descriptor { 274f9f848faSopenharmony_ci uByte bLength; 275f9f848faSopenharmony_ci uByte bDescriptorType; 276f9f848faSopenharmony_ci uByte bDescriptorSubtype; 277f9f848faSopenharmony_ci uByte bcdNcmVersion[2]; 278f9f848faSopenharmony_ci uByte bmNetworkCapabilities; 279f9f848faSopenharmony_ci#define UCDC_NCM_CAP_FILTER 0x01 280f9f848faSopenharmony_ci#define UCDC_NCM_CAP_MAC_ADDR 0x02 281f9f848faSopenharmony_ci#define UCDC_NCM_CAP_ENCAP 0x04 282f9f848faSopenharmony_ci#define UCDC_NCM_CAP_MAX_DATA 0x08 283f9f848faSopenharmony_ci#define UCDC_NCM_CAP_CRCMODE 0x10 284f9f848faSopenharmony_ci#define UCDC_NCM_CAP_MAX_DGRAM 0x20 285f9f848faSopenharmony_ci} __packed; 286f9f848faSopenharmony_ci 287f9f848faSopenharmony_ci/* Communications interface specific class request codes */ 288f9f848faSopenharmony_ci 289f9f848faSopenharmony_ci#define UCDC_NCM_SET_ETHERNET_MULTICAST_FILTERS 0x40 290f9f848faSopenharmony_ci#define UCDC_NCM_SET_ETHERNET_POWER_MGMT_PATTERN_FILTER 0x41 291f9f848faSopenharmony_ci#define UCDC_NCM_GET_ETHERNET_POWER_MGMT_PATTERN_FILTER 0x42 292f9f848faSopenharmony_ci#define UCDC_NCM_SET_ETHERNET_PACKET_FILTER 0x43 293f9f848faSopenharmony_ci#define UCDC_NCM_GET_ETHERNET_STATISTIC 0x44 294f9f848faSopenharmony_ci#define UCDC_NCM_GET_NTB_PARAMETERS 0x80 295f9f848faSopenharmony_ci#define UCDC_NCM_GET_NET_ADDRESS 0x81 296f9f848faSopenharmony_ci#define UCDC_NCM_SET_NET_ADDRESS 0x82 297f9f848faSopenharmony_ci#define UCDC_NCM_GET_NTB_FORMAT 0x83 298f9f848faSopenharmony_ci#define UCDC_NCM_SET_NTB_FORMAT 0x84 299f9f848faSopenharmony_ci#define UCDC_NCM_GET_NTB_INPUT_SIZE 0x85 300f9f848faSopenharmony_ci#define UCDC_NCM_SET_NTB_INPUT_SIZE 0x86 301f9f848faSopenharmony_ci#define UCDC_NCM_GET_MAX_DATAGRAM_SIZE 0x87 302f9f848faSopenharmony_ci#define UCDC_NCM_SET_MAX_DATAGRAM_SIZE 0x88 303f9f848faSopenharmony_ci#define UCDC_NCM_GET_CRC_MODE 0x89 304f9f848faSopenharmony_ci#define UCDC_NCM_SET_CRC_MODE 0x8A 305f9f848faSopenharmony_ci 306f9f848faSopenharmony_cistruct usb_ncm_parameters { 307f9f848faSopenharmony_ci uWord wLength; 308f9f848faSopenharmony_ci uWord bmNtbFormatsSupported; 309f9f848faSopenharmony_ci#define UCDC_NCM_FORMAT_NTB16 0x0001 310f9f848faSopenharmony_ci#define UCDC_NCM_FORMAT_NTB32 0x0002 311f9f848faSopenharmony_ci uDWord dwNtbInMaxSize; 312f9f848faSopenharmony_ci uWord wNdpInDivisor; 313f9f848faSopenharmony_ci uWord wNdpInPayloadRemainder; 314f9f848faSopenharmony_ci uWord wNdpInAlignment; 315f9f848faSopenharmony_ci uWord wReserved14; 316f9f848faSopenharmony_ci uDWord dwNtbOutMaxSize; 317f9f848faSopenharmony_ci uWord wNdpOutDivisor; 318f9f848faSopenharmony_ci uWord wNdpOutPayloadRemainder; 319f9f848faSopenharmony_ci uWord wNdpOutAlignment; 320f9f848faSopenharmony_ci uWord wNtbOutMaxDatagrams; 321f9f848faSopenharmony_ci} __packed; 322f9f848faSopenharmony_ci 323f9f848faSopenharmony_ci/* Communications interface specific class notification codes */ 324f9f848faSopenharmony_ci#define UCDC_NCM_NOTIF_NETWORK_CONNECTION 0x00 325f9f848faSopenharmony_ci#define UCDC_NCM_NOTIF_RESPONSE_AVAILABLE 0x01 326f9f848faSopenharmony_ci#define UCDC_NCM_NOTIF_CONNECTION_SPEED_CHANGE 0x2A 327f9f848faSopenharmony_ci 328f9f848faSopenharmony_ci#endif /* _USB_CDC_H_ */ 329