MCUXpresso_MIMXRT1021xxxxx/boards/evkmimxrt1020/usb_examples/usb_device_dfu_lite/bm/usb_device_descriptor.h
2022-08-23 23:00:33 +08:00

78 lines
2.9 KiB
C

/*
* Copyright (c) 2015, Freescale Semiconductor, Inc.
* Copyright 2017 NXP
* All rights reserved.
*
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#ifndef __USB_DEVICE_DESCRIPTOR_H__
#define __USB_DEVICE_DESCRIPTOR_H__
/*******************************************************************************
* Definitions
******************************************************************************/
#define USB_DEVICE_SPECIFIC_BCD_VERSION (0x0200U)
#define USB_DEVICE_SPECIFIC_BCD_VERSION_DFU (0x0100U)
#define USB_DEVICE_DEMO_BCD_VERSION (0x0101U)
#define USB_DEVICE_OS_DESCRIPTOR_BCD_VERSION (0x0100U)
#define USB_DEVICE_VID (0x1FC9U)
#define USB_DEVICE_PID (0x00A1U)
#define USB_DEVICE_CLASS (0x00U)
#define USB_DEVICE_SUBCLASS (0x00U)
#define USB_DEVICE_PROTOCOL (0x00U)
#define USB_DEVICE_MAX_POWER (0x32U)
#define USB_DESCRIPTOR_LENGTH_CONFIGURATION_ALL (sizeof(g_UsbDeviceConfigurationDescriptor))
#define USB_DESCRIPTOR_LENGTH_FUNCTINAL (9U)
#define USB_DESCRIPTOR_LENGTH_STRING0 (sizeof(g_UsbDeviceString0))
#define USB_DESCRIPTOR_LENGTH_STRING1 (sizeof(g_UsbDeviceString1))
#define USB_DESCRIPTOR_LENGTH_STRING2 (sizeof(g_UsbDeviceString2))
#define USB_DESCRIPTOR_LENGTH_STRING3 (sizeof(g_UsbDeviceString3))
#define USB_DESCRIPTOR_LENGTH_OSExended (sizeof(g_UsbDeviceOSExendedDescriptor))
#define USB_DESCRIPTOR_LENGTH_COMPAT (sizeof(g_UsbDeviceCompatibleIDDescriptor))
#define USB_DFU_INTERFACE_INDEX (0U)
#define USB_DESCRIPTOR_TYPE_DFU_FUNCTIONAL (0x21U)
#define USB_DFU_DETACH_TIMEOUT (0x6400U)
#define USB_DFU_BIT_WILL_DETACH (1U)
#define USB_DFU_BIT_MANIFESTATION_TOLERANT (0U)
#define USB_DFU_BIT_CAN_UPLOAD (0U)
#define USB_DFU_BIT_CAN_DNLOAD (1U)
#define MAX_TRANSFER_SIZE (0x200U)
#define USB_DFU_INTERFACE_COUNT (1U)
#define USB_DFU_INTERFACE_ALTERNATE_COUNT (1U)
#define USB_DFU_INTERFACE_ALTERNATE_0 (0U)
#define USB_DEVICE_STRING_COUNT (4U)
#define USB_DEVICE_LANGUAGE_COUNT (1U)
#define USB_DFU_CONFIGURE_INDEX (1U)
#define USB_DFU_CLASS (0xFEU)
#define USB_DFU_SUBCLASS (0x01U)
#define USB_DFU_PROTOCOL (0x01U)
#define USB_DFU_MODE_PROTOCOL (0x02U)
#define USB_MICROSOFT_EXTENDED_COMPAT_ID (0x0004U)
#define USB_MICROSOFT_EXTENDED_PROPERTIES_ID (0x0005U)
/*******************************************************************************
* API
******************************************************************************/
extern usb_status_t USB_DeviceSetSpeed(uint8_t speed);
extern usb_status_t USB_DeviceGetVerdorDescriptor(usb_device_handle handle,
usb_setup_struct_t *setup,
uint32_t *length,
uint8_t **buffer);
#endif /* __USB_DEVICE_DESCRIPTOR_H__ */