blob: 253953cc8187f8adf2e0f50b8c228780d1c02ff3 [file] [log] [blame]
/** @file
Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#ifndef _EDKII_PEI_SD_MMC_HOST_CONTROLLER_PPI_H_
#define _EDKII_PEI_SD_MMC_HOST_CONTROLLER_PPI_H_
///
/// Global ID for the EDKII_SD_MMC_HOST_CONTROLLER_PPI.
///
#define EDKII_SD_MMC_HOST_CONTROLLER_PPI_GUID \
{ \
0xb30dfeed, 0x947f, 0x4396, { 0xb1, 0x5a, 0xdf, 0xbd, 0xb9, 0x16, 0xdc, 0x24 } \
}
///
/// Forward declaration for the SD_MMC_HOST_CONTROLLER_PPI.
///
typedef struct _EDKII_SD_MMC_HOST_CONTROLLER_PPI EDKII_SD_MMC_HOST_CONTROLLER_PPI;
/**
Get the MMIO base address of SD/MMC host controller.
@param[in] This The protocol instance pointer.
@param[in] ControllerId The ID of the SD/MMC host controller.
@param[in,out] MmioBar The pointer to store the array of available
SD/MMC host controller slot MMIO base addresses.
The entry number of the array is specified by BarNum.
@param[out] BarNum The pointer to store the supported bar number.
@retval EFI_SUCCESS The operation succeeds.
@retval EFI_INVALID_PARAMETER The parameters are invalid.
**/
typedef
EFI_STATUS
(EFIAPI *EDKII_SD_MMC_HC_GET_MMIO_BAR)(
IN EDKII_SD_MMC_HOST_CONTROLLER_PPI *This,
IN UINT8 ControllerId,
IN OUT UINTN **MmioBar,
OUT UINT8 *BarNum
);
///
/// This PPI contains a set of services to interact with the SD_MMC host controller.
///
struct _EDKII_SD_MMC_HOST_CONTROLLER_PPI {
EDKII_SD_MMC_HC_GET_MMIO_BAR GetSdMmcHcMmioBar;
};
extern EFI_GUID gEdkiiPeiSdMmcHostControllerPpiGuid;
#endif