mirror of https://github.com/acidanthera/audk.git
98 lines
2.8 KiB
C
98 lines
2.8 KiB
C
/** @file
|
|
EDKII_UFS_HC_PLATFORM_PPI definition.
|
|
|
|
Copyright (c) 2024, American Megatrends International LLC. All rights reserved.<BR>
|
|
SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
|
|
**/
|
|
|
|
#ifndef _EDKII_PEI_UFS_HC_PLATFORM_PPI_H_
|
|
#define _EDKII_PEI_UFS_HC_PLATFORM_PPI_H_
|
|
|
|
#define EDKII_UFS_HC_PLATFORM_PPI_VERSION 1
|
|
|
|
extern EFI_GUID gEdkiiUfsHcPlatformPpiGuid;
|
|
|
|
///
|
|
/// Forward declaration for the UFS_HOST_CONTROLLER_PPI.
|
|
///
|
|
typedef struct _EDKII_UFS_HC_PLATFORM_PPI EDKII_UFS_HC_PLATFORM_PPI;
|
|
|
|
typedef struct {
|
|
UINT32 Capabilities;
|
|
UINT32 Version;
|
|
} EDKII_UFS_HC_INFO;
|
|
|
|
/**
|
|
Allows platform PPI to override host controller information
|
|
|
|
@param[in] ControllerHandle Handle of the UFS controller.
|
|
@param[in, out] HcInfo Pointer EDKII_UFS_HC_INFO associated with host controller.
|
|
|
|
@retval EFI_SUCCESS Function completed successfully.
|
|
@retval EFI_INVALID_PARAMETER HcInfo is NULL.
|
|
@retval Others Function failed to complete.
|
|
**/
|
|
typedef
|
|
EFI_STATUS
|
|
(EFIAPI *EDKII_UFS_HC_PLATFORM_OVERRIDE_HC_INFO)(
|
|
IN EFI_HANDLE ControllerHandle,
|
|
IN OUT EDKII_UFS_HC_INFO *HcInfo
|
|
);
|
|
|
|
typedef enum {
|
|
EdkiiUfsHcPreHce,
|
|
EdkiiUfsHcPostHce,
|
|
EdkiiUfsHcPreLinkStartup,
|
|
EdkiiUfsHcPostLinkStartup
|
|
} EDKII_UFS_HC_PLATFORM_CALLBACK_PHASE;
|
|
|
|
typedef enum {
|
|
EdkiiUfsCardRefClkFreq19p2Mhz,
|
|
EdkiiUfsCardRefClkFreq26Mhz,
|
|
EdkiiUfsCardRefClkFreq38p4Mhz,
|
|
EdkiiUfsCardRefClkFreqObsolete
|
|
} EDKII_UFS_CARD_REF_CLK_FREQ_ATTRIBUTE;
|
|
|
|
/**
|
|
Callback function for platform driver.
|
|
|
|
@param[in] UfsHcBaseddr The pointer to UfsHcBase address.
|
|
@param[in] CallbackPhase Specifies when the platform ppi is called
|
|
|
|
@retval EFI_SUCCESS Override function completed successfully.
|
|
@retval EFI_INVALID_PARAMETER CallbackPhase is invalid or CallbackData is NULL when phase expects valid data.
|
|
@retval Others Function failed to complete.
|
|
**/
|
|
typedef
|
|
EFI_STATUS
|
|
(EFIAPI *EDKII_UFS_HC_PLATFORM_PEI_CALLBACK)(
|
|
IN UINTN *UfsHcBaseAddr,
|
|
IN EDKII_UFS_HC_PLATFORM_CALLBACK_PHASE CallbackPhase
|
|
);
|
|
|
|
///
|
|
/// This PPI contains a set of services to interact with the UFS host controller.
|
|
///
|
|
struct _EDKII_UFS_HC_PLATFORM_PPI {
|
|
///
|
|
/// Version of the PPI.
|
|
///
|
|
UINT32 Version;
|
|
///
|
|
/// Allows platform driver to override host controller information.
|
|
///
|
|
EDKII_UFS_HC_PLATFORM_OVERRIDE_HC_INFO OverrideHcInfo;
|
|
///
|
|
/// Allows platform driver to implement platform specific flows
|
|
/// for host controller.
|
|
///
|
|
EDKII_UFS_HC_PLATFORM_PEI_CALLBACK Callback;
|
|
///
|
|
/// Reference Clock Frequency Ufs Card Attribute that need to be set in this Ufs Host Environment.
|
|
///
|
|
EDKII_UFS_CARD_REF_CLK_FREQ_ATTRIBUTE RefClkFreq;
|
|
};
|
|
|
|
#endif
|