 |
AM62Px MCU+ SDK
11.01.01
|
|
Go to the documentation of this file.
63 #include <drivers/hw_include/cslr_mmcsd.h>
73 #define MMCSD_CARD_TYPE_SD (0U)
74 #define MMCSD_CARD_TYPE_EMMC (1U)
75 #define MMCSD_CARD_TYPE_MMC (2U)
78 #define MMCSD_CARD_TYPE_NO_DEVICE (3U)
83 #define MMCSD_BUS_WIDTH_4BIT (0x4U)
84 #define MMCSD_BUS_WIDTH_8BIT (0x8U)
85 #define MMCSD_BUS_WIDTH_1BIT (0x1U)
91 #define MMCSD_TRANSPEED_25MBPS (0x32U)
92 #define MMCSD_TRANSPEED_50MBPS (0x5AU)
93 #define MMCSD_TRANSPEED_DEFAULT (0x32U)
94 #define MMCSD_TRANSPEED_HS (0x5AU)
95 #define MMCSD_TRANSPEED_SDR12 (0x32U)
96 #define MMCSD_TRANSPEED_SDR25 (0x5AU)
97 #define MMCSD_TRANSPEED_SDR50 (0xBU)
98 #define MMCSD_TRANSPEED_SDR104 (0x2BU)
99 #define MMCSD_TRANSPEED_DDR50 (0x3BU)
100 #define MMCSD_TRANSPEED_HS200 (0x2BU)
101 #define MMCSD_TRANSPEED_HS400 (0x4BU)
105 #define MMCSD_BUS_VOLT_1_8V (0x5U)
106 #define MMCSD_BUS_VOLT_3_0V (0x6U)
107 #define MMCSD_BUS_VOLT_3_3V (0x7U)
112 #define MMCSD_CMD_TYPE_NORMAL (0U)
113 #define MMCSD_CMD_TYPE_BUS_SUSPEND (1U)
114 #define MMCSD_CMD_TYPE_FUNC_SEL (2U)
115 #define MMCSD_CMD_TYPE_IO_ABORT (3U)
120 #define MMCSD_CMD_RSP_TYPE_NORSP (0U)
121 #define MMCSD_CMD_RSP_TYPE_L136 (1U)
122 #define MMCSD_CMD_RSP_TYPE_L48 (2U)
123 #define MMCSD_CMD_RSP_TYPE_L48_BUSY (3U)
128 #define MMCSD_CMD_XFER_TYPE_WRITE (0U)
129 #define MMCSD_CMD_XFER_TYPE_READ (1U)
134 #define MMCSD_SUPPORT_MMC_DS (0x01U)
135 #define MMCSD_SUPPORT_MMC_HS_SDR (0x02U)
136 #define MMCSD_SUPPORT_MMC_HS_DDR (0x04U)
137 #define MMCSD_SUPPORT_MMC_HS200 (0x08U)
138 #define MMCSD_SUPPORT_MMC_HS400 (0x10U)
139 #define MMCSD_SUPPORT_MMC_ALL (0xFFU)
144 #define MMCSD_STRBSEL_MMC_HS400 (0x66U)
150 #define MMCSD_OTAPDLYSEL_MMC_HS400_0_75V (0x6U)
151 #define MMCSD_OTAPDLYSEL_MMC_HS400_0_85V (0x5U)
156 #define MMCSD_SUPPORT_SD_DS (0x01U)
157 #define MMCSD_SUPPORT_SD_HS (0x02U)
158 #define MMCSD_SUPPORT_SD_SDR50 (0x04U)
159 #define MMCSD_SUPPORT_SD_SDR104 (0x08U)
160 #define MMCSD_SUPPORT_SD_DDR50 (0x10U)
161 #define MMCSD_SUPPORT_SD_ALL (0xFFU)
166 #define MMCSD_PHY_TYPE_HW_PHY (0U)
167 #define MMCSD_PHY_TYPE_SW_PHY (1U)
168 #define MMCSD_PHY_TYPE_NO_PHY (2U)
173 #define MMCSD_PHY_TUNING_TYPE_AUTO (0U)
174 #define MMCSD_PHY_TUNING_TYPE_MANUAL (1U)
179 #define MMCSD_PHY_MODE_HS400 (1U)
180 #define MMCSD_PHY_MODE_HS200 (2U)
181 #define MMCSD_PHY_MODE_HSSDR50 (3U)
182 #define MMCSD_PHY_MODE_HSDDR50 (4U)
183 #define MMCSD_PHY_MODE_SDR104 (5U)
184 #define MMCSD_PHY_MODE_SDR50 (6U)
185 #define MMCSD_PHY_MODE_DDR50 (7U)
186 #define MMCSD_PHY_MODE_SDR25 (8U)
187 #define MMCSD_PHY_MODE_SDR12 (9U)
188 #define MMCSD_PHY_MODE_HS (10U)
189 #define MMCSD_PHY_MODE_DS (11U)
194 #define MMCSD_UHS_MODE_SDR12 (0U)
195 #define MMCSD_UHS_MODE_SDR25 (1U)
196 #define MMCSD_UHS_MODE_SDR50 (2U)
197 #define MMCSD_UHS_MODE_SDR104 (3U)
198 #define MMCSD_UHS_MODE_DDR50 (4U)
199 #define MMCSD_UHS_MODE_HS400 (5U)
200 #define MMCSD_UHS_MODE_UHS2 (7U)
364 uint32_t response[4];
uint8_t length
Definition: mmcsd/v0/mmcsd.h:578
uint32_t intrEnable
Definition: mmcsd/v0/mmcsd.h:393
@ MMCSD_TRANS_FAILURE
Definition: mmcsd/v0/mmcsd.h:206
uint32_t status
Definition: mmcsd/v0/mmcsd.h:367
MMCSD_Handle MMCSD_open(uint32_t index, const MMCSD_Params *openParams)
This function opens a given MMCSD peripheral.
MMCSD_EmmcDeviceData * emmcData
Definition: mmcsd/v0/mmcsd.h:440
uint32_t eventId
Definition: mmcsd/v0/mmcsd.h:399
uint32_t ocr
Definition: mmcsd/v0/mmcsd.h:286
uint8_t manuID
Definition: mmcsd/v0/mmcsd.h:301
uint32_t isHC
Definition: mmcsd/v0/mmcsd.h:458
SemaphoreP_Object dataCopyCompleteSemObj
Definition: mmcsd/v0/mmcsd.h:555
uint8_t transferSpeed
Definition: mmcsd/v0/mmcsd.h:314
uint32_t blockCount
Definition: mmcsd/v0/mmcsd.h:258
SD device properties.
Definition: mmcsd/v0/mmcsd.h:285
uint32_t dataBlockSize
Definition: mmcsd/v0/mmcsd.h:526
volatile uint32_t cmdEBError
Definition: mmcsd/v0/mmcsd.h:494
uint32_t busVoltage
Definition: mmcsd/v0/mmcsd.h:411
uint32_t cmd
Definition: mmcsd/v0/mmcsd.h:334
uint32_t rca
Definition: mmcsd/v0/mmcsd.h:236
uint16_t index
Definition: tisci_rm_proxy.h:3
volatile uint32_t cmdTimeout
Definition: mmcsd/v0/mmcsd.h:488
uint32_t blockSize
Definition: mmcsd/v0/mmcsd.h:346
bool impDsr
Definition: mmcsd/v0/mmcsd.h:267
@ MMCSD_TRANS_SUCCESS
Definition: mmcsd/v0/mmcsd.h:205
SemaphoreP_Object xferMutex
Definition: mmcsd/v0/mmcsd.h:549
SemaphoreP_Object cmdCompleteSemObj
Definition: mmcsd/v0/mmcsd.h:552
uint8_t * writeBufIdx
Definition: mmcsd/v0/mmcsd.h:531
uint8_t specVersion
Definition: mmcsd/v0/mmcsd.h:308
@ MMCSD_TRANS_IRRECOVERABLE
Definition: mmcsd/v0/mmcsd.h:207
uint32_t isTuning
Definition: mmcsd/v0/mmcsd.h:358
uint64_t blockCount
Definition: mmcsd/v0/mmcsd.h:473
uint32_t isSwitch1_8V
Definition: mmcsd/v0/mmcsd.h:467
uint32_t isManualTuning
Definition: mmcsd/v0/mmcsd.h:534
volatile uint32_t dataEBError
Definition: mmcsd/v0/mmcsd.h:506
uint8_t * tempDataBuf
Definition: mmcsd/v0/mmcsd.h:437
uint16_t dsr
Definition: mmcsd/v0/mmcsd.h:264
uint32_t busWidth
Definition: mmcsd/v0/mmcsd.h:452
uint8_t start
Definition: mmcsd/v0/mmcsd.h:576
SemaphoreP_Object xferCompleteSemObj
Definition: mmcsd/v0/mmcsd.h:558
uint64_t mediaSize
Definition: mmcsd/v0/mmcsd.h:476
uint32_t ssBaseAddr
Definition: mmcsd/v0/mmcsd.h:381
uint32_t inputClkFreq
Definition: mmcsd/v0/mmcsd.h:384
uint16_t maxReadBlockLen
Definition: mmcsd/v0/mmcsd.h:292
uint32_t uhsmode
Definition: mmcsd/v0/mmcsd.h:543
uint32_t isOpen
Definition: mmcsd/v0/mmcsd.h:537
MMCSD_Object * object
Definition: mmcsd/v0/mmcsd.h:570
uint32_t cardType
Definition: mmcsd/v0/mmcsd.h:434
void MMCSD_init(void)
This function initializes the MMCSD module.
uint32_t dir
Definition: mmcsd/v0/mmcsd.h:337
uint32_t busWidth
Definition: mmcsd/v0/mmcsd.h:405
This file contains the Register Desciptions for CSL types.
MMCSD_SdDeviceData * sdData
Definition: mmcsd/v0/mmcsd.h:443
MMCSD transaction.
Definition: mmcsd/v0/mmcsd.h:333
uint8_t eStrobeSupport
Definition: mmcsd/v0/mmcsd.h:273
const MMCSD_Attrs * attrs
Definition: mmcsd/v0/mmcsd.h:568
int32_t MMCSD_enableBootPartition(MMCSD_Handle handle, uint32_t partitionNum)
This function enables the boot partition if the connected media is eMMC.
uint8_t manuID
Definition: mmcsd/v0/mmcsd.h:248
uint32_t cardType
Definition: mmcsd/v0/mmcsd.h:402
uint32_t isCmd23
Definition: mmcsd/v0/mmcsd.h:317
uint8_t specVersion
Definition: mmcsd/v0/mmcsd.h:255
uint32_t MMCSD_getInputClk(MMCSD_Handle handle)
This function returns the input clk frequency MMCSD was programmed at.
uint32_t ocr
Definition: mmcsd/v0/mmcsd.h:233
volatile uint32_t cmdCRCError
Definition: mmcsd/v0/mmcsd.h:491
int32_t MMCSD_read(MMCSD_Handle handle, uint8_t *buf, uint32_t startBlk, uint32_t numBlks)
Function to perform block reads from the MMC/SD media.
uint32_t gMmcsdConfigNum
Externally defined driver configuration array size.
uint32_t MMCSD_isHC(MMCSD_Handle handle)
This function returns if the media connected is High Capacity (> 2GB in size) or not.
uint32_t intrNum
Definition: mmcsd/v0/mmcsd.h:396
uint32_t isUHS
Definition: mmcsd/v0/mmcsd.h:461
uint32_t retries
Definition: mmcsd/v0/mmcsd.h:361
uint32_t supportedModes
Definition: mmcsd/v0/mmcsd.h:408
HwiP_Object hwiObj
Definition: mmcsd/v0/mmcsd.h:561
volatile uint32_t cmdError
Definition: mmcsd/v0/mmcsd.h:512
uint32_t enableDma
Definition: mmcsd/v0/mmcsd.h:479
uint32_t MMCSD_getBlockCount(MMCSD_Handle handle)
This function returns the block count of User Data Area of the MMC/SD media connected to the MMCSD co...
uint32_t rca
Definition: mmcsd/v0/mmcsd.h:289
uint32_t is1_8V
Definition: mmcsd/v0/mmcsd.h:464
uint32_t phyType
Definition: mmcsd/v0/mmcsd.h:417
uint32_t ctrlBaseAddr
Definition: mmcsd/v0/mmcsd.h:378
uint8_t supportedModes
Definition: mmcsd/v0/mmcsd.h:270
uint8_t * dataBuf
Definition: mmcsd/v0/mmcsd.h:223
uint8_t * readBufIdx
Definition: mmcsd/v0/mmcsd.h:528
void * MMCSD_Handle
Definition: mmcsd/v0/mmcsd.h:202
volatile uint32_t xferInProgress
Definition: mmcsd/v0/mmcsd.h:515
MMCSD instance attributes - used during init time.
Definition: mmcsd/v0/mmcsd.h:219
uint32_t MMCSD_getBlockSize(MMCSD_Handle handle)
This function returns the block size of the MMC/SD media connected to the MMCSD controller.
uint32_t dataBlockCount
Definition: mmcsd/v0/mmcsd.h:525
eMMC device properties
Definition: mmcsd/v0/mmcsd.h:232
void MMCSD_deinit(void)
This function de-initializes the MMCSD module.
uint16_t maxReadBlockLen
Definition: mmcsd/v0/mmcsd.h:239
Definition: mmcsd/v0/mmcsd.h:575
MMCSD driver object.
Definition: mmcsd/v0/mmcsd.h:430
volatile uint32_t admaError
Definition: mmcsd/v0/mmcsd.h:509
volatile uint32_t xferComp
Definition: mmcsd/v0/mmcsd.h:518
uint8_t transferSpeed
Definition: mmcsd/v0/mmcsd.h:261
uint32_t supportedDataWidths
Definition: mmcsd/v0/mmcsd.h:320
void MMCSD_Params_init(MMCSD_Params *mmcsdParams)
Initialize data structure with defaults.
void * dataBuf
Definition: mmcsd/v0/mmcsd.h:343
Opaque Hwi object used with the Hwi APIs.
Definition: HwiP.h:93
MMCSD_Handle handle
Definition: mmcsd/v0/mmcsd.h:431
uint32_t enableDma
Definition: mmcsd/v0/mmcsd.h:355
void * deviceData
Definition: mmcsd/v0/mmcsd.h:220
volatile uint32_t dataCRCError
Definition: mmcsd/v0/mmcsd.h:503
uint16_t maxWriteBlockLen
Definition: mmcsd/v0/mmcsd.h:242
uint32_t outputClkFreq
Definition: mmcsd/v0/mmcsd.h:387
volatile uint32_t cmdIndexError
Definition: mmcsd/v0/mmcsd.h:497
uint32_t arg
Definition: mmcsd/v0/mmcsd.h:340
uint8_t sdVer
Definition: mmcsd/v0/mmcsd.h:446
uint32_t transferSpeed
Definition: mmcsd/v0/mmcsd.h:455
Definition: mmcsd/v0/mmcsd.h:567
uint32_t blockCount
Definition: mmcsd/v0/mmcsd.h:349
Opaque semaphore object used with the semaphore APIs.
Definition: SemaphoreP.h:59
uint32_t isHS
Definition: mmcsd/v0/mmcsd.h:414
MMCSD_Config gMmcsdConfig[]
Externally defined driver configuration array.
uint32_t enableDma
Definition: mmcsd/v0/mmcsd.h:390
MMCSD_TransStatus
Definition: mmcsd/v0/mmcsd.h:204
MMCSD instance attributes - used during init time.
Definition: mmcsd/v0/mmcsd.h:377
uint32_t blockCount
Definition: mmcsd/v0/mmcsd.h:311
void MMCSD_close(MMCSD_Handle handle)
Function to close a MMCSD peripheral specified by the MMCSD handle.
uint32_t autoCmdEn
Definition: mmcsd/v0/mmcsd.h:352
SemaphoreP_Object cmdMutex
Definition: mmcsd/v0/mmcsd.h:546
volatile uint32_t xferTimeout
Definition: mmcsd/v0/mmcsd.h:521
int32_t MMCSD_disableBootPartition(MMCSD_Handle handle)
This function disables the boot partition if the connected media is eMMC.
uint32_t intrEnable
Definition: mmcsd/v0/mmcsd.h:482
uint32_t readBlockCount
Definition: mmcsd/v0/mmcsd.h:529
int32_t MMCSD_write(MMCSD_Handle handle, uint8_t *buf, uint32_t startBlk, uint32_t numBlks)
Function to perform block writes to the MMC/SD media.
uint32_t xferHighSpeedEn
Definition: mmcsd/v0/mmcsd.h:540
volatile uint32_t cmdComp
Definition: mmcsd/v0/mmcsd.h:485
volatile uint32_t dataTimeoutError
Definition: mmcsd/v0/mmcsd.h:500
MMCSD_Handle MMCSD_getHandle(uint32_t index)
This function returns the handle of an open MMCSD Instance from the instance index.
uint8_t driveStrength
Definition: mmcsd/v0/mmcsd.h:276
uint8_t end
Definition: mmcsd/v0/mmcsd.h:577
uint8_t * dataBufIdx
Definition: mmcsd/v0/mmcsd.h:524
uint32_t writeBlockCount
Definition: mmcsd/v0/mmcsd.h:532
uint32_t tuningType
Definition: mmcsd/v0/mmcsd.h:420
uint32_t blockSize
Definition: mmcsd/v0/mmcsd.h:470
uint8_t switchCmdTimeout
Definition: mmcsd/v0/mmcsd.h:449
uint16_t maxWriteBlockLen
Definition: mmcsd/v0/mmcsd.h:295