]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Include/Protocol/SdMmcOverride.h
MdeModulePkg: Apply uncrustify changes
[mirror_edk2.git] / MdeModulePkg / Include / Protocol / SdMmcOverride.h
index 9c8bf37efd0e18e6b39817cdbdff85a09c6aefcf..4fd12b9ad4c09bbe7793f09a3363d7da68d5fb41 100644 (file)
 #define EDKII_SD_MMC_OVERRIDE_PROTOCOL_GUID \\r
   { 0xeaf9e3c1, 0xc9cd, 0x46db, { 0xa5, 0xe5, 0x5a, 0x12, 0x4c, 0x83, 0x23, 0x23 } }\r
 \r
-#define EDKII_SD_MMC_OVERRIDE_PROTOCOL_VERSION    0x2\r
+#define EDKII_SD_MMC_OVERRIDE_PROTOCOL_VERSION  0x3\r
 \r
 typedef struct _EDKII_SD_MMC_OVERRIDE EDKII_SD_MMC_OVERRIDE;\r
 \r
-//\r
-// Bus timing modes\r
-//\r
+#define EDKII_SD_MMC_BUS_WIDTH_IGNORE        MAX_UINT8\r
+#define EDKII_SD_MMC_CLOCK_FREQ_IGNORE       MAX_UINT32\r
+#define EDKII_SD_MMC_DRIVER_STRENGTH_IGNORE  MAX_UINT8\r
+\r
+typedef enum {\r
+  SdDriverStrengthTypeB = 0,\r
+  SdDriverStrengthTypeA,\r
+  SdDriverStrengthTypeC,\r
+  SdDriverStrengthTypeD,\r
+  SdDriverStrengthIgnore = EDKII_SD_MMC_DRIVER_STRENGTH_IGNORE\r
+} SD_DRIVER_STRENGTH_TYPE;\r
+\r
 typedef enum {\r
+  EmmcDriverStrengthType0 = 0,\r
+  EmmcDriverStrengthType1,\r
+  EmmcDriverStrengthType2,\r
+  EmmcDriverStrengthType3,\r
+  EmmcDriverStrengthType4,\r
+  EmmcDriverStrengthIgnore = EDKII_SD_MMC_DRIVER_STRENGTH_IGNORE\r
+} EMMC_DRIVER_STRENGTH_TYPE;\r
+\r
+typedef union {\r
+  SD_DRIVER_STRENGTH_TYPE      Sd;\r
+  EMMC_DRIVER_STRENGTH_TYPE    Emmc;\r
+} EDKII_SD_MMC_DRIVER_STRENGTH;\r
+\r
+typedef struct {\r
+  //\r
+  // The target width of the bus. If user tells driver to ignore it\r
+  // or specifies unsupported width driver will choose highest supported\r
+  // bus width for a given mode.\r
+  //\r
+  UINT8                           BusWidth;\r
+  //\r
+  // The target clock frequency of the bus in MHz. If user tells driver to ignore\r
+  // it or specifies unsupported frequency driver will choose highest supported\r
+  // clock frequency for a given mode.\r
+  //\r
+  UINT32                          ClockFreq;\r
+  //\r
+  // The target driver strength of the bus. If user tells driver to\r
+  // ignore it or specifies unsupported driver strength, driver will\r
+  // default to Type0 for eMMC cards and TypeB for SD cards. Driver strength\r
+  // setting is only considered if chosen bus timing supports them.\r
+  //\r
+  EDKII_SD_MMC_DRIVER_STRENGTH    DriverStrength;\r
+} EDKII_SD_MMC_OPERATING_PARAMETERS;\r
+\r
+typedef enum {\r
+  SdMmcSdDs,\r
+  SdMmcSdHs,\r
   SdMmcUhsSdr12,\r
   SdMmcUhsSdr25,\r
   SdMmcUhsSdr50,\r
-  SdMmcUhsSdr104,\r
   SdMmcUhsDdr50,\r
+  SdMmcUhsSdr104,\r
   SdMmcMmcLegacy,\r
   SdMmcMmcHsSdr,\r
   SdMmcMmcHsDdr,\r
@@ -43,10 +90,10 @@ typedef enum {
   EdkiiSdMmcInitHostPost,\r
   EdkiiSdMmcUhsSignaling,\r
   EdkiiSdMmcSwitchClockFreqPost,\r
+  EdkiiSdMmcGetOperatingParam\r
 } EDKII_SD_MMC_PHASE_TYPE;\r
 \r
 /**\r
-\r
   Override function for SDHCI capability bits\r
 \r
   @param[in]      ControllerHandle      The EFI_HANDLE of the controller.\r
@@ -62,7 +109,7 @@ typedef enum {
 **/\r
 typedef\r
 EFI_STATUS\r
-(EFIAPI * EDKII_SD_MMC_CAPABILITY) (\r
+(EFIAPI *EDKII_SD_MMC_CAPABILITY)(\r
   IN      EFI_HANDLE                      ControllerHandle,\r
   IN      UINT8                           Slot,\r
   IN OUT  VOID                            *SdMmcHcSlotCapability,\r
@@ -70,7 +117,6 @@ EFI_STATUS
   );\r
 \r
 /**\r
-\r
   Override function for SDHCI controller operations\r
 \r
   @param[in]      ControllerHandle      The EFI_HANDLE of the controller.\r
@@ -87,7 +133,7 @@ EFI_STATUS
 **/\r
 typedef\r
 EFI_STATUS\r
-(EFIAPI * EDKII_SD_MMC_NOTIFY_PHASE) (\r
+(EFIAPI *EDKII_SD_MMC_NOTIFY_PHASE)(\r
   IN      EFI_HANDLE                      ControllerHandle,\r
   IN      UINT8                           Slot,\r
   IN      EDKII_SD_MMC_PHASE_TYPE         PhaseType,\r
@@ -98,17 +144,17 @@ struct _EDKII_SD_MMC_OVERRIDE {
   //\r
   // Protocol version of this implementation\r
   //\r
-  UINTN                         Version;\r
+  UINTN                        Version;\r
   //\r
   // Callback to override SD/MMC host controller capability bits\r
   //\r
-  EDKII_SD_MMC_CAPABILITY       Capability;\r
+  EDKII_SD_MMC_CAPABILITY      Capability;\r
   //\r
   // Callback to invoke SD/MMC override hooks\r
   //\r
-  EDKII_SD_MMC_NOTIFY_PHASE     NotifyPhase;\r
+  EDKII_SD_MMC_NOTIFY_PHASE    NotifyPhase;\r
 };\r
 \r
-extern EFI_GUID gEdkiiSdMmcOverrideProtocolGuid;\r
+extern EFI_GUID  gEdkiiSdMmcOverrideProtocolGuid;\r
 \r
 #endif\r