summaryrefslogtreecommitdiff
path: root/MdeModulePkg/Include/Protocol/SdMmcOverride.h
diff options
context:
space:
mode:
Diffstat (limited to 'MdeModulePkg/Include/Protocol/SdMmcOverride.h')
-rw-r--r--MdeModulePkg/Include/Protocol/SdMmcOverride.h320
1 files changed, 160 insertions, 160 deletions
diff --git a/MdeModulePkg/Include/Protocol/SdMmcOverride.h b/MdeModulePkg/Include/Protocol/SdMmcOverride.h
index 4fd12b9ad4..40bd604815 100644
--- a/MdeModulePkg/Include/Protocol/SdMmcOverride.h
+++ b/MdeModulePkg/Include/Protocol/SdMmcOverride.h
@@ -1,160 +1,160 @@
-/** @file
- Protocol to describe overrides required to support non-standard SDHCI
- implementations
-
- Copyright (c) 2017 - 2018, Linaro, Ltd. All rights reserved.<BR>
-
- SPDX-License-Identifier: BSD-2-Clause-Patent
-
-**/
-
-#ifndef __SD_MMC_OVERRIDE_H__
-#define __SD_MMC_OVERRIDE_H__
-
-#include <Protocol/SdMmcPassThru.h>
-
-#define EDKII_SD_MMC_OVERRIDE_PROTOCOL_GUID \
- { 0xeaf9e3c1, 0xc9cd, 0x46db, { 0xa5, 0xe5, 0x5a, 0x12, 0x4c, 0x83, 0x23, 0x23 } }
-
-#define EDKII_SD_MMC_OVERRIDE_PROTOCOL_VERSION 0x3
-
-typedef struct _EDKII_SD_MMC_OVERRIDE EDKII_SD_MMC_OVERRIDE;
-
-#define EDKII_SD_MMC_BUS_WIDTH_IGNORE MAX_UINT8
-#define EDKII_SD_MMC_CLOCK_FREQ_IGNORE MAX_UINT32
-#define EDKII_SD_MMC_DRIVER_STRENGTH_IGNORE MAX_UINT8
-
-typedef enum {
- SdDriverStrengthTypeB = 0,
- SdDriverStrengthTypeA,
- SdDriverStrengthTypeC,
- SdDriverStrengthTypeD,
- SdDriverStrengthIgnore = EDKII_SD_MMC_DRIVER_STRENGTH_IGNORE
-} SD_DRIVER_STRENGTH_TYPE;
-
-typedef enum {
- EmmcDriverStrengthType0 = 0,
- EmmcDriverStrengthType1,
- EmmcDriverStrengthType2,
- EmmcDriverStrengthType3,
- EmmcDriverStrengthType4,
- EmmcDriverStrengthIgnore = EDKII_SD_MMC_DRIVER_STRENGTH_IGNORE
-} EMMC_DRIVER_STRENGTH_TYPE;
-
-typedef union {
- SD_DRIVER_STRENGTH_TYPE Sd;
- EMMC_DRIVER_STRENGTH_TYPE Emmc;
-} EDKII_SD_MMC_DRIVER_STRENGTH;
-
-typedef struct {
- //
- // The target width of the bus. If user tells driver to ignore it
- // or specifies unsupported width driver will choose highest supported
- // bus width for a given mode.
- //
- UINT8 BusWidth;
- //
- // The target clock frequency of the bus in MHz. If user tells driver to ignore
- // it or specifies unsupported frequency driver will choose highest supported
- // clock frequency for a given mode.
- //
- UINT32 ClockFreq;
- //
- // The target driver strength of the bus. If user tells driver to
- // ignore it or specifies unsupported driver strength, driver will
- // default to Type0 for eMMC cards and TypeB for SD cards. Driver strength
- // setting is only considered if chosen bus timing supports them.
- //
- EDKII_SD_MMC_DRIVER_STRENGTH DriverStrength;
-} EDKII_SD_MMC_OPERATING_PARAMETERS;
-
-typedef enum {
- SdMmcSdDs,
- SdMmcSdHs,
- SdMmcUhsSdr12,
- SdMmcUhsSdr25,
- SdMmcUhsSdr50,
- SdMmcUhsDdr50,
- SdMmcUhsSdr104,
- SdMmcMmcLegacy,
- SdMmcMmcHsSdr,
- SdMmcMmcHsDdr,
- SdMmcMmcHs200,
- SdMmcMmcHs400,
-} SD_MMC_BUS_MODE;
-
-typedef enum {
- EdkiiSdMmcResetPre,
- EdkiiSdMmcResetPost,
- EdkiiSdMmcInitHostPre,
- EdkiiSdMmcInitHostPost,
- EdkiiSdMmcUhsSignaling,
- EdkiiSdMmcSwitchClockFreqPost,
- EdkiiSdMmcGetOperatingParam
-} EDKII_SD_MMC_PHASE_TYPE;
-
-/**
- Override function for SDHCI capability bits
-
- @param[in] ControllerHandle The EFI_HANDLE of the controller.
- @param[in] Slot The 0 based slot index.
- @param[in,out] SdMmcHcSlotCapability The SDHCI capability structure.
- @param[in,out] BaseClkFreq The base clock frequency value that
- optionally can be updated.
-
- @retval EFI_SUCCESS The override function completed successfully.
- @retval EFI_NOT_FOUND The specified controller or slot does not exist.
- @retval EFI_INVALID_PARAMETER SdMmcHcSlotCapability is NULL
-
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EDKII_SD_MMC_CAPABILITY)(
- IN EFI_HANDLE ControllerHandle,
- IN UINT8 Slot,
- IN OUT VOID *SdMmcHcSlotCapability,
- IN OUT UINT32 *BaseClkFreq
- );
-
-/**
- Override function for SDHCI controller operations
-
- @param[in] ControllerHandle The EFI_HANDLE of the controller.
- @param[in] Slot The 0 based slot index.
- @param[in] PhaseType The type of operation and whether the
- hook is invoked right before (pre) or
- right after (post)
- @param[in,out] PhaseData The pointer to a phase-specific data.
-
- @retval EFI_SUCCESS The override function completed successfully.
- @retval EFI_NOT_FOUND The specified controller or slot does not exist.
- @retval EFI_INVALID_PARAMETER PhaseType is invalid
-
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EDKII_SD_MMC_NOTIFY_PHASE)(
- IN EFI_HANDLE ControllerHandle,
- IN UINT8 Slot,
- IN EDKII_SD_MMC_PHASE_TYPE PhaseType,
- IN OUT VOID *PhaseData
- );
-
-struct _EDKII_SD_MMC_OVERRIDE {
- //
- // Protocol version of this implementation
- //
- UINTN Version;
- //
- // Callback to override SD/MMC host controller capability bits
- //
- EDKII_SD_MMC_CAPABILITY Capability;
- //
- // Callback to invoke SD/MMC override hooks
- //
- EDKII_SD_MMC_NOTIFY_PHASE NotifyPhase;
-};
-
-extern EFI_GUID gEdkiiSdMmcOverrideProtocolGuid;
-
-#endif
+/** @file
+ Protocol to describe overrides required to support non-standard SDHCI
+ implementations
+
+ Copyright (c) 2017 - 2018, Linaro, Ltd. All rights reserved.<BR>
+
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+#ifndef __SD_MMC_OVERRIDE_H__
+#define __SD_MMC_OVERRIDE_H__
+
+#include <Protocol/SdMmcPassThru.h>
+
+#define EDKII_SD_MMC_OVERRIDE_PROTOCOL_GUID \
+ { 0xeaf9e3c1, 0xc9cd, 0x46db, { 0xa5, 0xe5, 0x5a, 0x12, 0x4c, 0x83, 0x23, 0x23 } }
+
+#define EDKII_SD_MMC_OVERRIDE_PROTOCOL_VERSION 0x3
+
+typedef struct _EDKII_SD_MMC_OVERRIDE EDKII_SD_MMC_OVERRIDE;
+
+#define EDKII_SD_MMC_BUS_WIDTH_IGNORE MAX_UINT8
+#define EDKII_SD_MMC_CLOCK_FREQ_IGNORE MAX_UINT32
+#define EDKII_SD_MMC_DRIVER_STRENGTH_IGNORE MAX_UINT8
+
+typedef enum {
+ SdDriverStrengthTypeB = 0,
+ SdDriverStrengthTypeA,
+ SdDriverStrengthTypeC,
+ SdDriverStrengthTypeD,
+ SdDriverStrengthIgnore = EDKII_SD_MMC_DRIVER_STRENGTH_IGNORE
+} SD_DRIVER_STRENGTH_TYPE;
+
+typedef enum {
+ EmmcDriverStrengthType0 = 0,
+ EmmcDriverStrengthType1,
+ EmmcDriverStrengthType2,
+ EmmcDriverStrengthType3,
+ EmmcDriverStrengthType4,
+ EmmcDriverStrengthIgnore = EDKII_SD_MMC_DRIVER_STRENGTH_IGNORE
+} EMMC_DRIVER_STRENGTH_TYPE;
+
+typedef union {
+ SD_DRIVER_STRENGTH_TYPE Sd;
+ EMMC_DRIVER_STRENGTH_TYPE Emmc;
+} EDKII_SD_MMC_DRIVER_STRENGTH;
+
+typedef struct {
+ //
+ // The target width of the bus. If user tells driver to ignore it
+ // or specifies unsupported width driver will choose highest supported
+ // bus width for a given mode.
+ //
+ UINT8 BusWidth;
+ //
+ // The target clock frequency of the bus in MHz. If user tells driver to ignore
+ // it or specifies unsupported frequency driver will choose highest supported
+ // clock frequency for a given mode.
+ //
+ UINT32 ClockFreq;
+ //
+ // The target driver strength of the bus. If user tells driver to
+ // ignore it or specifies unsupported driver strength, driver will
+ // default to Type0 for eMMC cards and TypeB for SD cards. Driver strength
+ // setting is only considered if chosen bus timing supports them.
+ //
+ EDKII_SD_MMC_DRIVER_STRENGTH DriverStrength;
+} EDKII_SD_MMC_OPERATING_PARAMETERS;
+
+typedef enum {
+ SdMmcSdDs,
+ SdMmcSdHs,
+ SdMmcUhsSdr12,
+ SdMmcUhsSdr25,
+ SdMmcUhsSdr50,
+ SdMmcUhsDdr50,
+ SdMmcUhsSdr104,
+ SdMmcMmcLegacy,
+ SdMmcMmcHsSdr,
+ SdMmcMmcHsDdr,
+ SdMmcMmcHs200,
+ SdMmcMmcHs400,
+} SD_MMC_BUS_MODE;
+
+typedef enum {
+ EdkiiSdMmcResetPre,
+ EdkiiSdMmcResetPost,
+ EdkiiSdMmcInitHostPre,
+ EdkiiSdMmcInitHostPost,
+ EdkiiSdMmcUhsSignaling,
+ EdkiiSdMmcSwitchClockFreqPost,
+ EdkiiSdMmcGetOperatingParam
+} EDKII_SD_MMC_PHASE_TYPE;
+
+/**
+ Override function for SDHCI capability bits
+
+ @param[in] ControllerHandle The EFI_HANDLE of the controller.
+ @param[in] Slot The 0 based slot index.
+ @param[in,out] SdMmcHcSlotCapability The SDHCI capability structure.
+ @param[in,out] BaseClkFreq The base clock frequency value that
+ optionally can be updated.
+
+ @retval EFI_SUCCESS The override function completed successfully.
+ @retval EFI_NOT_FOUND The specified controller or slot does not exist.
+ @retval EFI_INVALID_PARAMETER SdMmcHcSlotCapability is NULL
+
+**/
+typedef
+EFI_STATUS
+(EFIAPI *EDKII_SD_MMC_CAPABILITY)(
+ IN EFI_HANDLE ControllerHandle,
+ IN UINT8 Slot,
+ IN OUT VOID *SdMmcHcSlotCapability,
+ IN OUT UINT32 *BaseClkFreq
+ );
+
+/**
+ Override function for SDHCI controller operations
+
+ @param[in] ControllerHandle The EFI_HANDLE of the controller.
+ @param[in] Slot The 0 based slot index.
+ @param[in] PhaseType The type of operation and whether the
+ hook is invoked right before (pre) or
+ right after (post)
+ @param[in,out] PhaseData The pointer to a phase-specific data.
+
+ @retval EFI_SUCCESS The override function completed successfully.
+ @retval EFI_NOT_FOUND The specified controller or slot does not exist.
+ @retval EFI_INVALID_PARAMETER PhaseType is invalid
+
+**/
+typedef
+EFI_STATUS
+(EFIAPI *EDKII_SD_MMC_NOTIFY_PHASE)(
+ IN EFI_HANDLE ControllerHandle,
+ IN UINT8 Slot,
+ IN EDKII_SD_MMC_PHASE_TYPE PhaseType,
+ IN OUT VOID *PhaseData
+ );
+
+struct _EDKII_SD_MMC_OVERRIDE {
+ //
+ // Protocol version of this implementation
+ //
+ UINTN Version;
+ //
+ // Callback to override SD/MMC host controller capability bits
+ //
+ EDKII_SD_MMC_CAPABILITY Capability;
+ //
+ // Callback to invoke SD/MMC override hooks
+ //
+ EDKII_SD_MMC_NOTIFY_PHASE NotifyPhase;
+};
+
+extern EFI_GUID gEdkiiSdMmcOverrideProtocolGuid;
+
+#endif