diff options
Diffstat (limited to 'MdeModulePkg/Include/Protocol/UfsHostControllerPlatform.h')
| -rw-r--r-- | MdeModulePkg/Include/Protocol/UfsHostControllerPlatform.h | 268 |
1 files changed, 134 insertions, 134 deletions
diff --git a/MdeModulePkg/Include/Protocol/UfsHostControllerPlatform.h b/MdeModulePkg/Include/Protocol/UfsHostControllerPlatform.h index 32e9f6488c..6220435509 100644 --- a/MdeModulePkg/Include/Protocol/UfsHostControllerPlatform.h +++ b/MdeModulePkg/Include/Protocol/UfsHostControllerPlatform.h @@ -1,134 +1,134 @@ -/** @file
- EDKII_UFS_HC_PLATFORM_PROTOCOL definition.
-
-Copyright (c) 2019 - 2022, Intel Corporation. All rights reserved.<BR>
-SPDX-License-Identifier: BSD-2-Clause-Patent
-
-**/
-
-#ifndef __EDKII_UFS_HC_PLATFORM_PROTOCOL_H__
-#define __EDKII_UFS_HC_PLATFORM_PROTOCOL_H__
-
-#include <Protocol/UfsHostController.h>
-
-#define EDKII_UFS_HC_PLATFORM_PROTOCOL_VERSION 2
-
-extern EFI_GUID gEdkiiUfsHcPlatformProtocolGuid;
-
-typedef struct _EDKII_UFS_HC_PLATFORM_PROTOCOL EDKII_UFS_HC_PLATFORM_PROTOCOL;
-
-typedef struct _EDKII_UFS_HC_DRIVER_INTERFACE EDKII_UFS_HC_DRIVER_INTERFACE;
-
-typedef struct {
- UINT32 Opcode;
- UINT32 Arg1;
- UINT32 Arg2;
- UINT32 Arg3;
-} EDKII_UIC_COMMAND;
-
-/**
- Execute UIC command
-
- @param[in] This Pointer to driver interface produced by the UFS controller.
- @param[in, out] UicCommand Descriptor of the command that will be executed.
-
- @retval EFI_SUCCESS Command executed successfully.
- @retval EFI_INVALID_PARAMETER This or UicCommand is NULL.
- @retval Others Command failed to execute.
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EDKII_UFS_EXEC_UIC_COMMAND)(
- IN EDKII_UFS_HC_DRIVER_INTERFACE *This,
- IN OUT EDKII_UIC_COMMAND *UicCommand
- );
-
-struct _EDKII_UFS_HC_DRIVER_INTERFACE {
- ///
- /// Protocol to accesss host controller MMIO and PCI registers.
- ///
- EDKII_UFS_HOST_CONTROLLER_PROTOCOL *UfsHcProtocol;
- ///
- /// Function implementing UIC command execution.
- ///
- EDKII_UFS_EXEC_UIC_COMMAND UfsExecUicCommand;
-};
-
-typedef struct {
- UINT32 Capabilities;
- UINT32 Version;
-} EDKII_UFS_HC_INFO;
-
-/**
- Allows platform protocol 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] ControllerHandle Handle of the UFS controller.
- @param[in] CallbackPhase Specifies when the platform protocol is called
- @param[in, out] CallbackData Data specific to the callback phase.
- For PreHce and PostHce - EDKII_UFS_HC_DRIVER_INTERFACE.
- For PreLinkStartup and PostLinkStartup - EDKII_UFS_HC_DRIVER_INTERFACE.
-
- @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_CALLBACK)(
- IN EFI_HANDLE ControllerHandle,
- IN EDKII_UFS_HC_PLATFORM_CALLBACK_PHASE CallbackPhase,
- IN OUT VOID *CallbackData
- );
-
-struct _EDKII_UFS_HC_PLATFORM_PROTOCOL {
- ///
- /// Version of the protocol.
- ///
- 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_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
+/** @file + EDKII_UFS_HC_PLATFORM_PROTOCOL definition. + +Copyright (c) 2019 - 2022, Intel Corporation. All rights reserved.<BR> +SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +#ifndef __EDKII_UFS_HC_PLATFORM_PROTOCOL_H__ +#define __EDKII_UFS_HC_PLATFORM_PROTOCOL_H__ + +#include <Protocol/UfsHostController.h> + +#define EDKII_UFS_HC_PLATFORM_PROTOCOL_VERSION 2 + +extern EFI_GUID gEdkiiUfsHcPlatformProtocolGuid; + +typedef struct _EDKII_UFS_HC_PLATFORM_PROTOCOL EDKII_UFS_HC_PLATFORM_PROTOCOL; + +typedef struct _EDKII_UFS_HC_DRIVER_INTERFACE EDKII_UFS_HC_DRIVER_INTERFACE; + +typedef struct { + UINT32 Opcode; + UINT32 Arg1; + UINT32 Arg2; + UINT32 Arg3; +} EDKII_UIC_COMMAND; + +/** + Execute UIC command + + @param[in] This Pointer to driver interface produced by the UFS controller. + @param[in, out] UicCommand Descriptor of the command that will be executed. + + @retval EFI_SUCCESS Command executed successfully. + @retval EFI_INVALID_PARAMETER This or UicCommand is NULL. + @retval Others Command failed to execute. +**/ +typedef +EFI_STATUS +(EFIAPI *EDKII_UFS_EXEC_UIC_COMMAND)( + IN EDKII_UFS_HC_DRIVER_INTERFACE *This, + IN OUT EDKII_UIC_COMMAND *UicCommand + ); + +struct _EDKII_UFS_HC_DRIVER_INTERFACE { + /// + /// Protocol to accesss host controller MMIO and PCI registers. + /// + EDKII_UFS_HOST_CONTROLLER_PROTOCOL *UfsHcProtocol; + /// + /// Function implementing UIC command execution. + /// + EDKII_UFS_EXEC_UIC_COMMAND UfsExecUicCommand; +}; + +typedef struct { + UINT32 Capabilities; + UINT32 Version; +} EDKII_UFS_HC_INFO; + +/** + Allows platform protocol 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] ControllerHandle Handle of the UFS controller. + @param[in] CallbackPhase Specifies when the platform protocol is called + @param[in, out] CallbackData Data specific to the callback phase. + For PreHce and PostHce - EDKII_UFS_HC_DRIVER_INTERFACE. + For PreLinkStartup and PostLinkStartup - EDKII_UFS_HC_DRIVER_INTERFACE. + + @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_CALLBACK)( + IN EFI_HANDLE ControllerHandle, + IN EDKII_UFS_HC_PLATFORM_CALLBACK_PHASE CallbackPhase, + IN OUT VOID *CallbackData + ); + +struct _EDKII_UFS_HC_PLATFORM_PROTOCOL { + /// + /// Version of the protocol. + /// + 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_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 |
