3 Copyright (c) 2007, Intel Corporation
4 All rights reserved. This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution. The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
18 The definition for USB hub
28 #include <IndustryStandard/Usb.h>
30 #define USB_ENDPOINT_ADDR(EpAddr) ((EpAddr) & 0x7F)
31 #define USB_ENDPOINT_TYPE(Desc) ((Desc)->Attributes & USB_ENDPOINT_TYPE_MASK)
34 USB_DESC_TYPE_HUB
= 0x29,
37 // Hub class control transfer target
39 USB_HUB_TARGET_HUB
= 0,
40 USB_HUB_TARGET_PORT
= 3,
43 // HUB class specific contrl transfer request type
45 USB_HUB_REQ_GET_STATUS
= 0,
46 USB_HUB_REQ_CLEAR_FEATURE
= 1,
47 USB_HUB_REQ_SET_FEATURE
= 3,
48 USB_HUB_REQ_GET_DESC
= 6,
49 USB_HUB_REQ_SET_DESC
= 7,
50 USB_HUB_REQ_CLEAR_TT
= 8,
51 USB_HUB_REQ_RESET_TT
= 9,
52 USB_HUB_REQ_GET_TT_STATE
= 10,
53 USB_HUB_REQ_STOP_TT
= 11,
57 // USB hub class feature selector
59 USB_HUB_C_HUB_LOCAL_POWER
= 0,
60 USB_HUB_C_HUB_OVER_CURRENT
= 1,
61 USB_HUB_PORT_CONNECTION
= 0,
62 USB_HUB_PORT_ENABLE
= 1,
63 USB_HUB_PORT_SUSPEND
= 2,
64 USB_HUB_PORT_OVER_CURRENT
= 3,
65 USB_HUB_PORT_RESET
= 4,
66 USB_HUB_PORT_POWER
= 8,
67 USB_HUB_PORT_LOW_SPEED
= 9,
68 USB_HUB_C_PORT_CONNECT
= 16,
69 USB_HUB_C_PORT_ENABLE
= 17,
70 USB_HUB_C_PORT_SUSPEND
= 18,
71 USB_HUB_C_PORT_OVER_CURRENT
= 19,
72 USB_HUB_C_PORT_RESET
= 20,
73 USB_HUB_PORT_TEST
= 21,
74 USB_HUB_PORT_INDICATOR
= 22,
77 // USB hub power control method. In gang power control
79 USB_HUB_GANG_POWER_CTRL
= 0,
80 USB_HUB_PORT_POWER_CTRL
= 0x01,
83 // USB hub status bits
85 USB_HUB_STAT_LOCAL_POWER
= 0x01,
86 USB_HUB_STAT_OVER_CURRENT
= 0x02,
87 USB_HUB_STAT_C_LOCAL_POWER
= 0x01,
88 USB_HUB_STAT_C_OVER_CURRENT
= 0x02,
90 USB_HUB_CLASS_CODE
= 0x09,
91 USB_HUB_SUBCLASS_CODE
= 0x00,
99 // Hub descriptor, the last two fields are of variable lenght.
107 UINT8 HubContrCurrent
;
109 } EFI_USB_HUB_DESCRIPTOR
;
116 } USB_CHANGE_FEATURE_MAP
;
120 UsbHubCtrlClearTTBuffer (
121 IN USB_DEVICE
*UsbDev
,
131 IN USB_INTERFACE
*UsbIf
136 IN USB_DEVICE
*UsbDev
139 extern USB_HUB_API mUsbHubApi
;
140 extern USB_HUB_API mUsbRootHubApi
;