1 /** 2 * \file 3 * 4 * \brief USB Device Stack CDC ACM Function Descriptor Setting. 5 * 6 * Copyright (c) 2015-2018 Microchip Technology Inc. and its subsidiaries. 7 * 8 * \asf_license_start 9 * 10 * \page License 11 * 12 * Subject to your compliance with these terms, you may use Microchip 13 * software and any derivatives exclusively with Microchip products. 14 * It is your responsibility to comply with third party license terms applicable 15 * to your use of third party software (including open source software) that 16 * may accompany Microchip software. 17 * 18 * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, 19 * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, 20 * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, 21 * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE 22 * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL 23 * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE 24 * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE 25 * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT 26 * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY 27 * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, 28 * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. 29 * 30 * \asf_license_stop 31 */ 32 33 #ifndef USBDF_CDC_ACM_DESC_H_ 34 #define USBDF_CDC_ACM_DESC_H_ 35 36 #include "usb_protocol.h" 37 #include "usb_protocol_cdc.h" 38 #include "usbd_config.h" 39 40 #define CDCD_ACM_DEV_DESC \ 41 USB_DEV_DESC_BYTES(CONF_USB_CDCD_ACM_BCDUSB, \ 42 0x02, \ 43 0x00, \ 44 0x00, \ 45 CONF_USB_CDCD_ACM_BMAXPKSZ0, \ 46 CONF_USB_CDCD_ACM_IDVENDER, \ 47 CONF_USB_CDCD_ACM_IDPRODUCT, \ 48 CONF_USB_CDCD_ACM_BCDDEVICE, \ 49 CONF_USB_CDCD_ACM_IMANUFACT, \ 50 CONF_USB_CDCD_ACM_IPRODUCT, \ 51 CONF_USB_CDCD_ACM_ISERIALNUM, \ 52 CONF_USB_CDCD_ACM_BNUMCONFIG) 53 54 #define CDCD_ACM_DEV_QUAL_DESC \ 55 USB_DEV_QUAL_DESC_BYTES( \ 56 CONF_USB_CDCD_ACM_BCDUSB, 0x02, 0x00, 0x00, CONF_USB_CDCD_ACM_BMAXPKSZ0, CONF_USB_CDCD_ACM_BNUMCONFIG) 57 58 #define CDCD_ACM_CFG_DESC \ 59 USB_CONFIG_DESC_BYTES(67, \ 60 2, \ 61 CONF_USB_CDCD_ACM_BCONFIGVAL, \ 62 CONF_USB_CDCD_ACM_ICONFIG, \ 63 CONF_USB_CDCD_ACM_BMATTRI, \ 64 CONF_USB_CDCD_ACM_BMAXPOWER) 65 66 #define CDCD_ACM_OTH_SPD_CFG_DESC \ 67 USB_OTH_SPD_CFG_DESC_BYTES(67, \ 68 2, \ 69 CONF_USB_CDCD_ACM_BCONFIGVAL, \ 70 CONF_USB_CDCD_ACM_ICONFIG, \ 71 CONF_USB_CDCD_ACM_BMATTRI, \ 72 CONF_USB_CDCD_ACM_BMAXPOWER) 73 74 #define CDCD_ACM_COMM_IFACE_DESCES \ 75 USB_IFACE_DESC_BYTES(CONF_USB_CDCD_ACM_COMM_BIFCNUM, \ 76 CONF_USB_CDCD_ACM_COMM_BALTSET, \ 77 1, \ 78 0x2, \ 79 0x2, \ 80 0x0, \ 81 CONF_USB_CDCD_ACM_COMM_IIFC), \ 82 USB_CDC_HDR_DESC_BYTES(0x1001), USB_CDC_CALL_MGMT_DESC_BYTES(0x01, 0x00), USB_CDC_ACM_DESC_BYTES(0x02), \ 83 USB_CDC_UNION_DESC_BYTES(CONF_USB_CDCD_ACM_COMM_BIFCNUM, 0x01), \ 84 USB_ENDP_DESC_BYTES(CONF_USB_CDCD_ACM_COMM_INT_EPADDR, \ 85 3, \ 86 CONF_USB_CDCD_ACM_COMM_INT_MAXPKSZ, \ 87 CONF_USB_CDCD_ACM_COMM_INT_INTERVAL) 88 89 #define CDCD_ACM_DATA_IFACE_DESCES \ 90 USB_IFACE_DESC_BYTES(CONF_USB_CDCD_ACM_DATA_BIFCNUM, \ 91 CONF_USB_CDCD_ACM_DATA_BALTSET, \ 92 2, \ 93 0x0A, \ 94 0x0, \ 95 0x0, \ 96 CONF_USB_CDCD_ACM_DATA_IIFC), \ 97 USB_ENDP_DESC_BYTES(CONF_USB_CDCD_ACM_DATA_BULKOUT_EPADDR, 2, CONF_USB_CDCD_ACM_DATA_BULKOUT_MAXPKSZ, 0), \ 98 USB_ENDP_DESC_BYTES(CONF_USB_CDCD_ACM_DATA_BULKIN_EPADDR, 2, CONF_USB_CDCD_ACM_DATA_BULKIN_MAXPKSZ, 0) 99 100 #define CDCD_ACM_DATA_IFACE_DESCES_HS \ 101 USB_IFACE_DESC_BYTES(CONF_USB_CDCD_ACM_DATA_BIFCNUM, \ 102 CONF_USB_CDCD_ACM_DATA_BALTSET, \ 103 2, \ 104 0x0A, \ 105 0x0, \ 106 0x0, \ 107 CONF_USB_CDCD_ACM_DATA_IIFC), \ 108 USB_ENDP_DESC_BYTES(CONF_USB_CDCD_ACM_DATA_BULKOUT_EPADDR, 2, CONF_USB_CDCD_ACM_DATA_BULKOUT_MAXPKSZ_HS, 0), \ 109 USB_ENDP_DESC_BYTES(CONF_USB_CDCD_ACM_DATA_BULKIN_EPADDR, 2, CONF_USB_CDCD_ACM_DATA_BULKIN_MAXPKSZ_HS, 0) 110 111 #define CDCD_ACM_STR_DESCES \ 112 CONF_USB_CDCD_ACM_LANGID_DESC \ 113 CONF_USB_CDCD_ACM_IMANUFACT_STR_DESC \ 114 CONF_USB_CDCD_ACM_IPRODUCT_STR_DESC \ 115 CONF_USB_CDCD_ACM_ISERIALNUM_STR_DESC \ 116 CONF_USB_CDCD_ACM_ICONFIG_STR_DESC 117 118 /** USB Device descriptors and configuration descriptors */ 119 #define CDCD_ACM_DESCES_LS_FS \ 120 CDCD_ACM_DEV_DESC, CDCD_ACM_CFG_DESC, CDCD_ACM_COMM_IFACE_DESCES, CDCD_ACM_DATA_IFACE_DESCES, CDCD_ACM_STR_DESCES 121 122 #define CDCD_ACM_HS_DESCES_LS_FS \ 123 CDCD_ACM_DEV_DESC, CDCD_ACM_DEV_QUAL_DESC, CDCD_ACM_CFG_DESC, CDCD_ACM_COMM_IFACE_DESCES, \ 124 CDCD_ACM_DATA_IFACE_DESCES, CDCD_ACM_OTH_SPD_CFG_DESC, CDCD_ACM_COMM_IFACE_DESCES, \ 125 CDCD_ACM_DATA_IFACE_DESCES_HS, CDCD_ACM_STR_DESCES 126 127 #define CDCD_ACM_HS_DESCES_HS \ 128 CDCD_ACM_CFG_DESC, CDCD_ACM_COMM_IFACE_DESCES, CDCD_ACM_DATA_IFACE_DESCES_HS, CDCD_ACM_OTH_SPD_CFG_DESC, \ 129 CDCD_ACM_COMM_IFACE_DESCES, CDCD_ACM_DATA_IFACE_DESCES 130 131 #endif /* USBDF_CDC_ACM_DESC_H_ */ 132