git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3 6f19259b-4bc3-4df7-8a09-765794883524
		
			
				
	
	
		
			139 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			139 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*++
 | |
| 
 | |
| Copyright (c) 2006, Intel Corporation                                                         
 | |
| All rights reserved. This program and the accompanying materials                          
 | |
| are licensed and made available under the terms and conditions of the BSD License         
 | |
| which accompanies this distribution.  The full text of the license may be found at        
 | |
| http://opensource.org/licenses/bsd-license.php                                            
 | |
|                                                                                           
 | |
| THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     
 | |
| WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             
 | |
| 
 | |
|   Module Name:
 | |
| 
 | |
|     Hub.h
 | |
|     
 | |
|   Abstract:
 | |
| 
 | |
|     Constants definitions for Usb Hub
 | |
| 
 | |
|   Revision History
 | |
| 
 | |
| --*/
 | |
| 
 | |
| #ifndef _HUB_H
 | |
| #define _HUB_H
 | |
| 
 | |
| //
 | |
| // Hub feature numbers
 | |
| //
 | |
| #define C_HUB_LOCAL_POWER   0
 | |
| #define C_HUB_OVER_CURRENT  1
 | |
| 
 | |
| //
 | |
| // Hub class code & sub class code
 | |
| //
 | |
| #define CLASS_CODE_HUB      0x09
 | |
| #define SUB_CLASS_CODE_HUB  0
 | |
| 
 | |
| //
 | |
| // Hub Status & Hub Change bit masks
 | |
| //
 | |
| #define HUB_STATUS_LOCAL_POWER  0x0001
 | |
| #define HUB_STATUS_OVERCURRENT  0x0002
 | |
| 
 | |
| #define HUB_CHANGE_LOCAL_POWER  0x0001
 | |
| #define HUB_CHANGE_OVERCURRENT  0x0002
 | |
| 
 | |
| //
 | |
| // Hub Characteristics
 | |
| //
 | |
| #define HUB_CHAR_LPSM     0x0003
 | |
| #define HUB_CHAR_COMPOUND 0x0004
 | |
| #define HUB_CHAR_OCPM     0x0018
 | |
| 
 | |
| //
 | |
| // Hub specific request
 | |
| //
 | |
| #define HUB_CLEAR_FEATURE               0x01
 | |
| #define HUB_CLEAR_FEATURE_REQ_TYPE      0x20
 | |
| 
 | |
| #define HUB_CLEAR_FEATURE_PORT          0x01
 | |
| #define HUB_CLEAR_FEATURE_PORT_REQ_TYPE 0x23
 | |
| 
 | |
| #define HUB_GET_BUS_STATE               0x02
 | |
| #define HUB_GET_BUS_STATE_REQ_TYPE      0xA3
 | |
| 
 | |
| #define HUB_GET_DESCRIPTOR              0x06
 | |
| #define HUB_GET_DESCRIPTOR_REQ_TYPE     0xA0
 | |
| 
 | |
| #define HUB_GET_HUB_STATUS              0x00
 | |
| #define HUB_GET_HUB_STATUS_REQ_TYPE     0xA0
 | |
| 
 | |
| #define HUB_GET_PORT_STATUS             0x00
 | |
| #define HUB_GET_PORT_STATUS_REQ_TYPE    0xA3
 | |
| 
 | |
| #define HUB_SET_DESCRIPTOR              0x07
 | |
| #define HUB_SET_DESCRIPTOR_REQ_TYPE     0x20
 | |
| 
 | |
| #define HUB_SET_HUB_FEATURE             0x03
 | |
| #define HUB_SET_HUB_FEATURE_REQ_TYPE    0x20
 | |
| 
 | |
| #define HUB_SET_PORT_FEATURE            0x03
 | |
| #define HUB_SET_PORT_FEATURE_REQ_TYPE   0x23
 | |
| 
 | |
| #pragma pack(1)
 | |
| typedef struct usb_hub_status {
 | |
|   UINT16  HubStatus;
 | |
|   UINT16  HubChange;
 | |
| } EFI_USB_HUB_STATUS;
 | |
| #pragma pack()
 | |
| 
 | |
| EFI_STATUS
 | |
| HubGetPortStatus (
 | |
|   IN  EFI_USB_IO_PROTOCOL     *UsbIo,
 | |
|   IN  UINT8                   Port,
 | |
|   OUT UINT32                  *PortStatus
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| HubSetPortFeature (
 | |
|   IN EFI_USB_IO_PROTOCOL     *UsbIo,
 | |
|   IN UINT8                   Port,
 | |
|   IN UINT8                   Value
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| HubSetHubFeature (
 | |
|   IN EFI_USB_IO_PROTOCOL     *UsbIo,
 | |
|   IN UINT8                   Value
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| HubGetHubStatus (
 | |
|   IN  EFI_USB_IO_PROTOCOL     *UsbIo,
 | |
|   OUT UINT32                  *HubStatus
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| HubClearPortFeature (
 | |
|   IN EFI_USB_IO_PROTOCOL     *UsbIo,
 | |
|   IN UINT8                   Port,
 | |
|   IN UINT8                   Value
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| HubClearHubFeature (
 | |
|   IN EFI_USB_IO_PROTOCOL     *UsbIo,
 | |
|   IN UINT8                   Value
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| GetHubDescriptor (
 | |
|   IN  EFI_USB_IO_PROTOCOL        *UsbIo,
 | |
|   IN  UINTN                      DescriptorSize,
 | |
|   OUT EFI_USB_HUB_DESCRIPTOR     *HubDescriptor
 | |
|   );
 | |
| 
 | |
| #endif
 |