1 /** @file 2 3 Copyright (c) 2015-2016, Linaro Limited. All rights reserved. 4 5 This program and the accompanying materials 6 are licensed and made available under the terms and conditions of the BSD License 7 which accompanies this distribution. The full text of the license may be found at 8 http://opensource.org/licenses/bsd-license.php 9 10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 12 13 **/ 14 15 #ifndef _DWUSBHOSTDXE_H_ 16 #define _DWUSBHOSTDXE_H_ 17 18 #include <Uefi.h> 19 20 #include <Protocol/DwUsb.h> 21 #include <Protocol/Usb2HostController.h> 22 23 #include <Guid/EventGroup.h> 24 25 #include <Library/DebugLib.h> 26 #include <Library/BaseMemoryLib.h> 27 #include <Library/UefiDriverEntryPoint.h> 28 #include <Library/UefiBootServicesTableLib.h> 29 #include <Library/UefiLib.h> 30 #include <Library/BaseLib.h> 31 #include <Library/MemoryAllocationLib.h> 32 #include <Library/UncachedMemoryAllocationLib.h> 33 #include <Library/PcdLib.h> 34 #include <Library/ReportStatusCodeLib.h> 35 #include <Library/DevicePathLib.h> 36 #include <Library/PcdLib.h> 37 #include <Library/IoLib.h> 38 #include <Library/TimerLib.h> 39 40 #define MAX_DEVICE 16 41 #define MAX_ENDPOINT 16 42 43 typedef struct _DWUSB_OTGHC_DEV DWUSB_OTGHC_DEV; 44 45 #define DWUSB_OTGHC_DEV_SIGNATURE SIGNATURE_32 ('d', 'w', 'h', 'c') 46 #define DWHC_FROM_THIS(a) CR(a, DWUSB_OTGHC_DEV, DwUsbOtgHc, DWUSB_OTGHC_DEV_SIGNATURE) 47 48 // 49 // The RequestType in EFI_USB_DEVICE_REQUEST is composed of 50 // three fields: One bit direction, 2 bit type, and 5 bit 51 // target. 52 // 53 #define USB_REQUEST_TYPE(Dir, Type, Target) \ 54 ((UINT8)((((Dir) == EfiUsbDataIn ? 0x01 : 0) << 7) | (Type) | (Target))) 55 56 typedef struct { 57 ACPI_HID_DEVICE_PATH AcpiDevicePath; 58 PCI_DEVICE_PATH PciDevicePath; 59 EFI_DEVICE_PATH_PROTOCOL EndDevicePath; 60 } EFI_USB_PCIIO_DEVICE_PATH; 61 62 struct _DWUSB_OTGHC_DEV { 63 UINTN Signature; 64 EFI_HANDLE DeviceHandle; 65 66 EFI_USB2_HC_PROTOCOL DwUsbOtgHc; 67 68 EFI_USB_HC_STATE DwHcState; 69 70 EFI_USB_PCIIO_DEVICE_PATH DevicePath; 71 72 EFI_EVENT ExitBootServiceEvent; 73 74 UINT64 DwUsbBase; 75 UINT8 *StatusBuffer; 76 UINT8 *AlignedBuffer; 77 78 UINT16 PortStatus; 79 UINT16 PortChangeStatus; 80 81 UINT32 RhDevNum; 82 }; 83 84 #endif //_DWUSBHOSTDXE_H_ 85