Arrow / Mbed OS DAPLink Reset
Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers usb_winusb.h Source File

usb_winusb.h

Go to the documentation of this file.
00001 /**
00002  * @file    usb_winusb.h
00003  * @brief   WinUSB driver header
00004  *
00005  * DAPLink Interface Firmware
00006  * Copyright (c) 2009-2016, ARM Limited, All Rights Reserved
00007  * SPDX-License-Identifier: Apache-2.0
00008  *
00009  * Licensed under the Apache License, Version 2.0 (the "License"); you may
00010  * not use this file except in compliance with the License.
00011  * You may obtain a copy of the License at
00012  *
00013  * http://www.apache.org/licenses/LICENSE-2.0
00014  *
00015  * Unless required by applicable law or agreed to in writing, software
00016  * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
00017  * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00018  * See the License for the specific language governing permissions and
00019  * limitations under the License.
00020  */
00021 
00022 #ifndef __USB_WINUSB_H__
00023 #define __USB_WINUSB_H__
00024 
00025 /* WinUSB Microsoft OS 2.0 Descriptor Types */
00026 #define WINUSB_SET_HEADER_DESCRIPTOR_TYPE           0x00
00027 #define WINUSB_SUBSET_HEADER_CONFIGURATION_TYPE     0x01
00028 #define WINUSB_SUBSET_HEADER_FUNCTION_TYPE          0x02
00029 #define WINUSB_FEATURE_COMPATIBLE_ID_TYPE           0x03
00030 #define WINUSB_FEATURE_REG_PROPERTY_TYPE            0x04
00031 #define WINUSB_FEATURE_MIN_RESUME_TIME_TYPE         0x05
00032 #define WINUSB_FEATURE_MODEL_ID_TYPE                0x06
00033 #define WINUSB_FEATURE_CCGP_DEVICE_TYPE             0x07
00034 
00035 
00036 #define WINUSB_PROP_DATA_TYPE_REG_SZ                0x01
00037 #define WINUSB_PROP_DATA_TYPE_REG_MULTI_SZ          0x07
00038 
00039 /* WinUSB Microsoft OS 2.0 descriptor Platform Capability Descriptor */
00040 typedef __packed struct _WINUSB_PLATFORM_CAPABILITY_DESCRIPTOR {
00041     U8  bLength;
00042     U8  bDescriptorType;
00043     U8  bDevCapabilityType;
00044     U8  bReserved;
00045     U8  platformCapabilityUUID[16];
00046     U32 dwWindowsVersion;
00047     U16 wDescriptorSetTotalLength;
00048     U8  bVendorCode;
00049     U8  bAltEnumCode;
00050 } WINUSB_PLATFORM_CAPABILITY_DESCRIPTOR;
00051 
00052 /* WinUSB Microsoft OS 2.0 descriptor set header */
00053 typedef __packed struct _WINUSB_DESCRIPTOR_SET_HEADER {
00054     U16 wLength;
00055     U16 wDescriptorType;
00056     U32 dwWindowsVersion;
00057     U16 wTotalLength;
00058 } WINUSB_DESCRIPTOR_SET_HEADER;
00059 
00060 /* WinUSB Microsoft OS 2.0 descriptor request codes */
00061 #define WINUSB_REQUEST_GET_DESCRIPTOR_SET          0x07
00062 #define WINUSB_REQUEST_SET_ALT_ENUM                0x08
00063 
00064 /* WinUSB Microsoft OS 2.0 descriptor sizes */
00065 #define WINUSB_DESCRIPTOR_SET_HEADER_SIZE          10
00066 #define WINUSB_FUNCTION_SUBSET_HEADER_SIZE         8
00067 #define WINUSB_FEATURE_COMPATIBLE_ID_SIZE          20
00068 #endif // __USB_WINUSB_H__