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
 |