UINT8 BusWidth;\r
UINT8 AccessMode;\r
UINT8 HostCtrl1;\r
- UINT8 HostCtrl2;\r
UINT8 SwitchResp[64];\r
+ SD_MMC_BUS_MODE Timing;\r
SD_MMC_HC_PRIVATE_DATA *Private;\r
\r
Private = SD_MMC_HC_PRIVATE_FROM_THIS (PassThru);\r
if (S18A && (Capability->Sdr104 != 0) && ((SwitchResp[13] & BIT3) != 0)) {\r
ClockFreq = 208;\r
AccessMode = 3;\r
+ Timing = SdMmcUhsSdr104;\r
} else if (S18A && (Capability->Sdr50 != 0) && ((SwitchResp[13] & BIT2) != 0)) {\r
ClockFreq = 100;\r
AccessMode = 2;\r
+ Timing = SdMmcUhsSdr50;\r
} else if (S18A && (Capability->Ddr50 != 0) && ((SwitchResp[13] & BIT4) != 0)) {\r
ClockFreq = 50;\r
AccessMode = 4;\r
+ Timing = SdMmcUhsDdr50;\r
} else if ((SwitchResp[13] & BIT1) != 0) {\r
ClockFreq = 50;\r
AccessMode = 1;\r
+ Timing = SdMmcUhsSdr25;\r
} else {\r
ClockFreq = 25;\r
AccessMode = 0;\r
+ Timing = SdMmcUhsSdr12;\r
}\r
\r
Status = SdCardSwitch (PassThru, Slot, AccessMode, 0xF, 0xF, 0xF, TRUE, SwitchResp);\r
}\r
}\r
\r
- HostCtrl2 = (UINT8)~0x7;\r
- Status = SdMmcHcAndMmio (PciIo, Slot, SD_MMC_HC_HOST_CTRL2, sizeof (HostCtrl2), &HostCtrl2);\r
- if (EFI_ERROR (Status)) {\r
- return Status;\r
- }\r
- HostCtrl2 = AccessMode;\r
- Status = SdMmcHcOrMmio (PciIo, Slot, SD_MMC_HC_HOST_CTRL2, sizeof (HostCtrl2), &HostCtrl2);\r
+ Status = SdMmcHcUhsSignaling (Private->ControllerHandle, PciIo, Slot, Timing);\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r