MdeModulePkg[all]  0.98
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
SdMmcOverride.h File Reference

Data Structures

union  EDKII_SD_MMC_DRIVER_STRENGTH
 
struct  EDKII_SD_MMC_OPERATING_PARAMETERS
 
struct  _EDKII_SD_MMC_OVERRIDE
 

Macros

#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
 
#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
 

Typedefs

typedef struct
_EDKII_SD_MMC_OVERRIDE 
EDKII_SD_MMC_OVERRIDE
 
typedef IN UINT8 Slot
 
typedef IN UINT8 IN OUT VOIDSdMmcHcSlotCapability
 
typedef IN UINT8 IN OUT VOID
IN OUT UINT32
BaseClkFreq
 
typedef IN UINT8 IN
EDKII_SD_MMC_PHASE_TYPE 
PhaseType
 
typedef IN UINT8 IN
EDKII_SD_MMC_PHASE_TYPE IN OUT
VOID
PhaseData
 

Enumerations

enum  SD_DRIVER_STRENGTH_TYPE {
  SdDriverStrengthTypeB = 0, SdDriverStrengthTypeA, SdDriverStrengthTypeC, SdDriverStrengthTypeD,
  SdDriverStrengthIgnore = EDKII_SD_MMC_DRIVER_STRENGTH_IGNORE
}
 
enum  EMMC_DRIVER_STRENGTH_TYPE {
  EmmcDriverStrengthType0 = 0, EmmcDriverStrengthType1, EmmcDriverStrengthType2, EmmcDriverStrengthType3,
  EmmcDriverStrengthType4, EmmcDriverStrengthIgnore = EDKII_SD_MMC_DRIVER_STRENGTH_IGNORE
}
 
enum  SD_MMC_BUS_MODE {
  SdMmcSdDs, SdMmcSdHs, SdMmcUhsSdr12, SdMmcUhsSdr25,
  SdMmcUhsSdr50, SdMmcUhsDdr50, SdMmcUhsSdr104, SdMmcMmcLegacy,
  SdMmcMmcHsSdr, SdMmcMmcHsDdr, SdMmcMmcHs200, SdMmcMmcHs400
}
 
enum  EDKII_SD_MMC_PHASE_TYPE {
  EdkiiSdMmcResetPre, EdkiiSdMmcResetPost, EdkiiSdMmcInitHostPre, EdkiiSdMmcInitHostPost,
  EdkiiSdMmcUhsSignaling, EdkiiSdMmcSwitchClockFreqPost, EdkiiSdMmcGetOperatingParam
}
 

Functions

typedef EFI_STATUS (EFIAPI *EDKII_SD_MMC_CAPABILITY)(IN EFI_HANDLE ControllerHandle
 

Variables

EFI_GUID gEdkiiSdMmcOverrideProtocolGuid
 

Detailed Description

Protocol to describe overrides required to support non-standard SDHCI implementations

Copyright (c) 2017 - 2018, Linaro, Ltd. All rights reserved.

SPDX-License-Identifier: BSD-2-Clause-Patent

Macro Definition Documentation

#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
#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 Documentation

typedef IN UINT8 IN OUT VOID IN OUT UINT32* BaseClkFreq
typedef IN UINT8 IN EDKII_SD_MMC_PHASE_TYPE IN OUT VOID* PhaseData
typedef IN UINT8 IN EDKII_SD_MMC_PHASE_TYPE PhaseType
typedef IN UINT8 IN OUT VOID* SdMmcHcSlotCapability
typedef IN UINT8 Slot

Enumeration Type Documentation

Enumerator
EdkiiSdMmcResetPre 
EdkiiSdMmcResetPost 
EdkiiSdMmcInitHostPre 
EdkiiSdMmcInitHostPost 
EdkiiSdMmcUhsSignaling 
EdkiiSdMmcSwitchClockFreqPost 
EdkiiSdMmcGetOperatingParam 
Enumerator
EmmcDriverStrengthType0 
EmmcDriverStrengthType1 
EmmcDriverStrengthType2 
EmmcDriverStrengthType3 
EmmcDriverStrengthType4 
EmmcDriverStrengthIgnore 
Enumerator
SdDriverStrengthTypeB 
SdDriverStrengthTypeA 
SdDriverStrengthTypeC 
SdDriverStrengthTypeD 
SdDriverStrengthIgnore 
Enumerator
SdMmcSdDs 
SdMmcSdHs 
SdMmcUhsSdr12 
SdMmcUhsSdr25 
SdMmcUhsSdr50 
SdMmcUhsDdr50 
SdMmcUhsSdr104 
SdMmcMmcLegacy 
SdMmcMmcHsSdr 
SdMmcMmcHsDdr 
SdMmcMmcHs200 
SdMmcMmcHs400 

Function Documentation

typedef EFI_STATUS ( EFIAPI *  EDKII_SD_MMC_NOTIFY_PHASE)

Override function for SDHCI capability bits

Parameters
[in]ControllerHandleThe EFI_HANDLE of the controller.
[in]SlotThe 0 based slot index.
[in,out]SdMmcHcSlotCapabilityThe SDHCI capability structure.
[in,out]BaseClkFreqThe base clock frequency value that optionally can be updated.
Return values
EFI_SUCCESSThe override function completed successfully.
EFI_NOT_FOUNDThe specified controller or slot does not exist.
EFI_INVALID_PARAMETERSdMmcHcSlotCapability is NULL

Override function for SDHCI controller operations

Parameters
[in]ControllerHandleThe EFI_HANDLE of the controller.
[in]SlotThe 0 based slot index.
[in]PhaseTypeThe type of operation and whether the hook is invoked right before (pre) or right after (post)
[in,out]PhaseDataThe pointer to a phase-specific data.
Return values
EFI_SUCCESSThe override function completed successfully.
EFI_NOT_FOUNDThe specified controller or slot does not exist.
EFI_INVALID_PARAMETERPhaseType is invalid

Variable Documentation

EFI_GUID gEdkiiSdMmcOverrideProtocolGuid