MdeModulePkg/SdMmcPciHcDxe: allow HC capabilities to be overridden
Invoke the newly introduced SD/MMC override protocol to override the capabilities register after reading it from the device registers, and to call the pre/post host init and reset hooks at the appropriate times. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Hao Wu <hao.a.wu@intel.com> Reviewed-by: Star Zeng <star.zeng@intel.com>
This commit is contained in:
@@ -35,6 +35,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
#include <Protocol/DriverBinding.h>
|
||||
#include <Protocol/ComponentName.h>
|
||||
#include <Protocol/ComponentName2.h>
|
||||
#include <Protocol/SdMmcOverride.h>
|
||||
#include <Protocol/SdMmcPassThru.h>
|
||||
|
||||
#include "SdMmcPciHci.h"
|
||||
@@ -43,6 +44,8 @@ extern EFI_COMPONENT_NAME_PROTOCOL gSdMmcPciHcComponentName;
|
||||
extern EFI_COMPONENT_NAME2_PROTOCOL gSdMmcPciHcComponentName2;
|
||||
extern EFI_DRIVER_BINDING_PROTOCOL gSdMmcPciHcDriverBinding;
|
||||
|
||||
extern EDKII_SD_MMC_OVERRIDE *mOverride;
|
||||
|
||||
#define SD_MMC_HC_PRIVATE_SIGNATURE SIGNATURE_32 ('s', 'd', 't', 'f')
|
||||
|
||||
#define SD_MMC_HC_PRIVATE_FROM_THIS(a) \
|
||||
@@ -782,4 +785,37 @@ SdCardIdentification (
|
||||
IN UINT8 Slot
|
||||
);
|
||||
|
||||
/**
|
||||
Software reset the specified SD/MMC host controller.
|
||||
|
||||
@param[in] Private A pointer to the SD_MMC_HC_PRIVATE_DATA instance.
|
||||
@param[in] Slot The slot number of the SD card to send the command to.
|
||||
|
||||
@retval EFI_SUCCESS The software reset executes successfully.
|
||||
@retval Others The software reset fails.
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
SdMmcHcReset (
|
||||
IN SD_MMC_HC_PRIVATE_DATA *Private,
|
||||
IN UINT8 Slot
|
||||
);
|
||||
|
||||
/**
|
||||
Initial SD/MMC host controller with lowest clock frequency, max power and max timeout value
|
||||
at initialization.
|
||||
|
||||
@param[in] Private A pointer to the SD_MMC_HC_PRIVATE_DATA instance.
|
||||
@param[in] Slot The slot number of the SD card to send the command to.
|
||||
|
||||
@retval EFI_SUCCESS The host controller is initialized successfully.
|
||||
@retval Others The host controller isn't initialized successfully.
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
SdMmcHcInitHost (
|
||||
IN SD_MMC_HC_PRIVATE_DATA *Private,
|
||||
IN UINT8 Slot
|
||||
);
|
||||
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user