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