1 /** @file 2 3 Copyright (c) 2014, Intel Corporation. All rights reserved.<BR> 4 5 This program and the accompanying materials 6 are licensed and made available under the terms and conditions 7 of the BSD License which accompanies this distribution. The 8 full text of the license may be found at 9 http://opensource.org/licenses/bsd-license.php 10 11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 13 14 **/ 15 16 #ifndef _EDKII_PEI_UFS_HOST_CONTROLLER_PPI_H_ 17 #define _EDKII_PEI_UFS_HOST_CONTROLLER_PPI_H_ 18 19 /// 20 /// Global ID for the EDKII_UFS_HOST_CONTROLLER_PPI. 21 /// 22 #define EDKII_UFS_HOST_CONTROLLER_PPI_GUID \ 23 { \ 24 0xdc54b283, 0x1a77, 0x4cd6, { 0x83, 0xbb, 0xfd, 0xda, 0x46, 0x9a, 0x2e, 0xc6 } \ 25 } 26 27 /// 28 /// Forward declaration for the UFS_HOST_CONTROLLER_PPI. 29 /// 30 typedef struct _EDKII_UFS_HOST_CONTROLLER_PPI EDKII_UFS_HOST_CONTROLLER_PPI; 31 32 /** 33 Get the MMIO base address of UFS host controller. 34 35 @param[in] This The protocol instance pointer. 36 @param[in] ControllerId The ID of the UFS host controller. 37 @param[out] MmioBar Pointer to the UFS host controller MMIO base address. 38 39 @retval EFI_SUCCESS The operation succeeds. 40 @retval EFI_INVALID_PARAMETER The parameters are invalid. 41 42 **/ 43 typedef 44 EFI_STATUS 45 (EFIAPI *EDKII_UFS_HC_GET_MMIO_BAR)( 46 IN EDKII_UFS_HOST_CONTROLLER_PPI *This, 47 IN UINT8 ControllerId, 48 OUT UINTN *MmioBar 49 ); 50 51 /// 52 /// This PPI contains a set of services to interact with the UFS host controller. 53 /// 54 struct _EDKII_UFS_HOST_CONTROLLER_PPI { 55 EDKII_UFS_HC_GET_MMIO_BAR GetUfsHcMmioBar; 56 }; 57 58 extern EFI_GUID gEdkiiPeiUfsHostControllerPpiGuid; 59 60 #endif 61