sdps
Vitis Drivers API Documentation
xsdps.h File Reference

Data Structures

struct  XSdPs_Config
 This typedef contains configuration information for the device. More...
 
struct  __attribute__
 ADMA2 32-Bit descriptor table. More...
 
struct  __attribute__
 ADMA2 32-Bit descriptor table. More...
 
struct  XSdPs
 The XSdPs driver instance data. More...
 

Macros

#define XSDPS_CT_ERROR   0x2L
 Command timeout flag. More...
 
#define MAX_TUNING_COUNT   40U
 Maximum Tuning count. More...
 
#define MAX_TIMEOUT   0x1FFFFFFFU
 Maximum Timeout. More...
 
#define XSDPS_CMD8_VOL_PATTERN   0x1AAU
 CMD8 voltage pattern. More...
 
#define XSDPS_RESPOCR_READY   0x80000000U
 Ready response. More...
 
#define XSDPS_ACMD41_HCS   0x40000000U
 High Capacity Support. More...
 
#define XSDPS_ACMD41_3V3   0x00300000U
 3.3 voltage support More...
 
#define XSDPS_CMD1_HIGH_VOL   0x00FF8000U
 CMD1 for High voltage. More...
 
#define XSDPS_CMD1_DUAL_VOL   0x00FF8010U
 CMD1 for Dual voltage. More...
 
#define HIGH_SPEED_SUPPORT   0x2U
 High Speed support. More...
 
#define UHS_SDR12_SUPPORT   0x1U
 SDR12 support. More...
 
#define UHS_SDR25_SUPPORT   0x2U
 SDR25 support. More...
 
#define UHS_SDR50_SUPPORT   0x4U
 SDR50 support. More...
 
#define UHS_SDR104_SUPPORT   0x8U
 SDR104 support. More...
 
#define UHS_DDR50_SUPPORT   0x10U
 DDR50 support. More...
 
#define WIDTH_4_BIT_SUPPORT   0x4U
 4-bit width support More...
 
#define SD_CLK_25_MHZ   25000000U
 25MHz clock More...
 
#define SD_CLK_19_MHZ   19000000U
 19MHz clock More...
 
#define SD_CLK_26_MHZ   26000000U
 26MHz clock More...
 
#define EXT_CSD_DEVICE_TYPE_BYTE   196U
 CSD Device Type byte number. More...
 
#define EXT_CSD_SEC_COUNT_BYTE1   212U
 CSD Sector count byte 1. More...
 
#define EXT_CSD_SEC_COUNT_BYTE2   213U
 CSD Sector count byte 2. More...
 
#define EXT_CSD_SEC_COUNT_BYTE3   214U
 CSD Sector count byte 3. More...
 
#define EXT_CSD_SEC_COUNT_BYTE4   215U
 CSD Sector count byte 4. More...
 
#define EXT_CSD_DEVICE_TYPE_HIGH_SPEED   0x2U
 CSD Device type HS. More...
 
#define EXT_CSD_DEVICE_TYPE_DDR_1V8_HIGH_SPEED   0x4U
 CSD Dev type DDR 1.8v speed. More...
 
#define EXT_CSD_DEVICE_TYPE_DDR_1V2_HIGH_SPEED   0x8U
 CSD Dev type DDR 1.2v speed. More...
 
#define EXT_CSD_DEVICE_TYPE_SDR_1V8_HS200   0x10U
 CSD SDR 1.8v HS200. More...
 
#define EXT_CSD_DEVICE_TYPE_SDR_1V2_HS200   0x20U
 CSD SDR 1.2v HS200. More...
 
#define EXT_CSD_DEVICE_TYPE_DDR_1V8_HS400   0x40U
 CSD SDR 1.8v HS400. More...
 
#define EXT_CSD_DEVICE_TYPE_DDR_1V2_HS400   0x80U
 CSD SDR 1.2v HS400. More...
 
#define CSD_SPEC_VER_3   0x3U
 CSD card spec ver 3. More...
 
#define SCR_SPEC_VER_3   0x80U
 SCR spec ver 3. More...
 
#define ADDRESS_BEYOND_32BIT   0x100000000U
 Macro used for beyond 32-bit addr. More...
 
#define XSDPS_ZYNQMP_SD0_BASE   0xFF160000U
 ZynqMP SD0 Baseaddress. More...
 
#define XSDPS_ZYNQMP_SD1_BASE   0xFF170000U
 ZynqMP SD1 Baseaddress. More...
 
#define XSDPS_VERSAL_SD0_BASE   0xF1040000U
 Versal SD0 Baseaddress. More...
 
#define XSDPS_VERSAL_SD1_BASE   0xF1050000U
 Versal SD1 Baseaddress. More...
 
#define ENABLE_HS400_MODE
 Enable eMMC HS400 mode for Versal Net platform. More...
 
Block size mask for 512 bytes

Block size mask for 512 bytes - This is the default block size.

#define XSDPS_BLK_SIZE_512_MASK   0x200U
 Blk Size 512. More...
 
SD High Speed mode configuration options
#define SD_HS_MODE_ENABLE   1
 User configuration option to enable or disable SD HS mode. More...
 

Functions

XSdPs_ConfigXSdPs_LookupConfig (u16 DeviceId)
 Looks up the device configuration based on the unique device ID. More...
 
s32 XSdPs_CfgInitialize (XSdPs *InstancePtr, XSdPs_Config *ConfigPtr, UINTPTR EffectiveAddr)
 Initializes a specific XSdPs instance such that the driver is ready to use. More...
 
s32 XSdPs_CardInitialize (XSdPs *InstancePtr)
 Initialize Card with Identification mode sequence. More...
 
s32 XSdPs_ReadPolled (XSdPs *InstancePtr, u32 Arg, u32 BlkCnt, u8 *Buff)
 This function performs SD read in polled mode. More...
 
s32 XSdPs_WritePolled (XSdPs *InstancePtr, u32 Arg, u32 BlkCnt, const u8 *Buff)
 This function performs SD write in polled mode. More...
 
s32 XSdPs_Idle (XSdPs *InstancePtr)
 API to idle the SDIO Interface. More...
 
s32 XSdPs_Change_BusSpeed (XSdPs *InstancePtr)
 API to set high speed in card and host. More...
 
s32 XSdPs_Change_ClkFreq (XSdPs *InstancePtr, u32 SelFreq)
 API to change clock freq to given value. More...
 
s32 XSdPs_Pullup (XSdPs *InstancePtr)
 API to send pullup command to card before using DAT line 3(using 4-bit bus) More...
 
s32 XSdPs_Get_BusWidth (XSdPs *InstancePtr, u8 *ReadBuff)
 API to get bus width support by card. More...
 
s32 XSdPs_Change_BusWidth (XSdPs *InstancePtr)
 API to set bus width to 4-bit in card and host. More...
 
s32 XSdPs_Get_BusSpeed (XSdPs *InstancePtr, u8 *ReadBuff)
 API to get bus speed supported by card. More...
 
s32 XSdPs_Get_Mmc_ExtCsd (XSdPs *InstancePtr, u8 *ReadBuff)
 API to get EXT_CSD register of eMMC. More...
 
s32 XSdPs_Set_Mmc_ExtCsd (XSdPs *InstancePtr, u32 Arg)
 API to write EXT_CSD register of eMMC. More...
 
s32 XSdPs_SetBlkSize (XSdPs *InstancePtr, u16 BlkSize)
 Update Block size for read/write operations. More...
 
s32 XSdPs_Get_Status (XSdPs *InstancePtr, u8 *SdStatReg)
 API to get SD card status information. More...
 
s32 XSdPs_Select_Card (XSdPs *InstancePtr)
 Selects card and sets default block size. More...
 
s32 XSdPs_StartReadTransfer (XSdPs *InstancePtr, u32 Arg, u32 BlkCnt, u8 *Buff)
 This function performs SD read in polled mode. More...
 
s32 XSdPs_CheckReadTransfer (XSdPs *InstancePtr)
 This function is used to check if the transfer is completed successfully. More...
 
s32 XSdPs_StartWriteTransfer (XSdPs *InstancePtr, u32 Arg, u32 BlkCnt, u8 *Buff)
 This function start SD write transfer. More...
 
s32 XSdPs_CheckWriteTransfer (XSdPs *InstancePtr)
 This function is used to check for the write transfer completed. More...
 
s32 XSdPs_Erase (XSdPs *InstancePtr, u32 StartAddr, u32 EndAddr)
 This function performs Erase operation on the given address range. More...
 

Variables

XSdPs_Config XSdPs_ConfigTable [XPAR_XSDPS_NUM_INSTANCES]
 XSdPs Configuration Table. More...