| /** @file |
| |
| Copyright (c) 2017, Linaro. All rights reserved. |
| |
| This program and the accompanying materials |
| are licensed and made available under the terms and conditions of the BSD License |
| which accompanies this distribution. The full text of the license may be found at |
| http://opensource.org/licenses/bsd-license.php |
| |
| THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, |
| WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. |
| |
| **/ |
| |
| #ifndef __PLATFORM_DW_MMC_H__ |
| #define __PLATFORM_DW_MMC_H__ |
| |
| typedef enum { |
| RemovableSlot, |
| EmbeddedSlot, |
| SharedBusSlot, |
| UnknownSlot |
| } EFI_SD_MMC_SLOT_TYPE; |
| |
| typedef enum { |
| UnknownCardType, |
| SdCardType, |
| SdioCardType, |
| MmcCardType, |
| EmmcCardType |
| } SD_MMC_CARD_TYPE; |
| |
| typedef struct { |
| UINT32 DefaultSpeed:1; // bit 0 |
| UINT32 HighSpeed:1; // bit 1 |
| UINT32 Sdr12:1; // bit 2 |
| UINT32 Sdr25:1; // bit 3 |
| UINT32 Sdr50:1; // bit 4 |
| UINT32 Sdr104:1; // bit 5 |
| UINT32 Ddr50:1; // bit 6 |
| UINT32 SysBus64:1; // bit 7 |
| UINT32 BusWidth:4; // bit 11:8 |
| UINT32 SlotType:2; // bit 13:12 |
| UINT32 CardType:3; // bit 16:14 |
| UINT32 Voltage18:1; // bit 17 |
| UINT32 Voltage30:1; // bit 18 |
| UINT32 Voltage33:1; // bit 19 |
| UINT32 BaseClkFreq; |
| EFI_HANDLE Controller; |
| } DW_MMC_HC_SLOT_CAP; |
| |
| // |
| // Protocol interface structure |
| // |
| typedef struct _PLATFORM_DW_MMC_PROTOCOL PLATFORM_DW_MMC_PROTOCOL; |
| |
| typedef |
| EFI_STATUS |
| (EFIAPI *PLATFORM_DW_MMC_GET_CAPABILITY) ( |
| IN EFI_HANDLE Controller, |
| IN UINT8 Slot, |
| OUT DW_MMC_HC_SLOT_CAP *Capability |
| ); |
| |
| typedef |
| BOOLEAN |
| (EFIAPI *PLATFORM_DW_MMC_CARD_DETECT) ( |
| IN EFI_HANDLE Controller, |
| IN UINT8 Slot |
| ); |
| |
| struct _PLATFORM_DW_MMC_PROTOCOL { |
| PLATFORM_DW_MMC_GET_CAPABILITY GetCapability; |
| PLATFORM_DW_MMC_CARD_DETECT CardDetect; |
| }; |
| |
| extern EFI_GUID gPlatformDwMmcProtocolGuid; |
| |
| #endif /* __PLATFORM_DW_MMC_H__ */ |