You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by gu...@apache.org on 2021/10/17 09:29:18 UTC
[incubator-nuttx] branch master updated: sdio: Update the defintion
to the latest spec
This is an automated email from the ASF dual-hosted git repository.
gustavonihei pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git
The following commit(s) were added to refs/heads/master by this push:
new 643e34e sdio: Update the defintion to the latest spec
643e34e is described below
commit 643e34efde977a5b660d5648d9f503fccc0dbcd0
Author: Xiang Xiao <xi...@xiaomi.com>
AuthorDate: Sun Sep 5 16:38:21 2021 +0800
sdio: Update the defintion to the latest spec
and correct the comment:
https://www.sdcard.org/downloads/pls/
https://www.jedec.org/standards-documents/technology-focus-areas/flash-memory-ssds-ufs-emmc/e-mmc
Signed-off-by: Xiang Xiao <xi...@xiaomi.com>
---
drivers/mmcsd/mmcsd_csd.h | 2 +-
drivers/mmcsd/mmcsd_sdio.h | 8 +--
include/nuttx/sdio.h | 139 ++++++++++++++++++++++++++++++++-------------
3 files changed, 103 insertions(+), 46 deletions(-)
diff --git a/drivers/mmcsd/mmcsd_csd.h b/drivers/mmcsd/mmcsd_csd.h
index 1e7a113..3659997 100644
--- a/drivers/mmcsd/mmcsd_csd.h
+++ b/drivers/mmcsd/mmcsd_csd.h
@@ -206,7 +206,7 @@
#define MMC_CSD_SPECVERS(csd) ((csd[0] >> 2) & 0x0f)
-/* Reserved 120-155 */
+/* Reserved 120-121 */
/* TAAC 112-119 = Data read access-time-1
* TIME_VALUE 3-6 = Time mantissa
diff --git a/drivers/mmcsd/mmcsd_sdio.h b/drivers/mmcsd/mmcsd_sdio.h
index 181b194..83e1c44 100644
--- a/drivers/mmcsd/mmcsd_sdio.h
+++ b/drivers/mmcsd/mmcsd_sdio.h
@@ -57,8 +57,8 @@
#define MMCSD_ACMD41_VOLTAGEWINDOW_34_33 ((uint32_t)1 << 21)
#define MMCSD_ACMD41_VOLTAGEWINDOW_33_32 ((uint32_t)1 << 20)
#define MMCSD_ACMD41_VOLTAGEWINDOW_32_31 ((uint32_t)1 << 19)
-#define MMCSD_ACMD41_HIGHCAPACITY ((uint32_t)1 << 30)
-#define MMCSD_ACMD41_STDCAPACITY ((uint32_t)0)
+#define MMCSD_ACMD41_HIGHCAPACITY ((uint32_t)1 << 30)
+#define MMCSD_ACMD41_STDCAPACITY ((uint32_t)0 << 30)
/* ACMD42 argument */
@@ -163,10 +163,10 @@
# define MMCSD_R6_STATE_STBY ((uint32_t)3 << MMCSD_R6_STATE_SHIFT) /* 3=Standby state */
# define MMCSD_R6_STATE_TRAN ((uint32_t)4 << MMCSD_R6_STATE_SHIFT) /* 4=Transfer state */
-# define MMCSD_R6_STATE_DATA (5(uint32_t) << MMCSD_R6_STATE_SHIFT) /* 5=Sending data state */
+# define MMCSD_R6_STATE_DATA ((uint32_t)5 << MMCSD_R6_STATE_SHIFT) /* 5=Sending data state */
# define MMCSD_R6_STATE_RCV ((uint32_t)6 << MMCSD_R6_STATE_SHIFT) /* 6=Receiving data state */
# define MMCSD_R6_STATE_PRG ((uint32_t)7 << MMCSD_R6_STATE_SHIFT) /* 7=Programming state */
-# define MMCSD_R6_STATE_DIS ((uint32_t) << MMCSD_R6_STATE_SHIFT) /* 8=Disconnect state */
+# define MMCSD_R6_STATE_DIS ((uint32_t)8 << MMCSD_R6_STATE_SHIFT) /* 8=Disconnect state */
#define MMCSD_R6_ERRORMASK ((uint32_t)0x0000e000) /* Error mask */
diff --git a/include/nuttx/sdio.h b/include/nuttx/sdio.h
index 04f4218..4a9cfdb 100644
--- a/include/nuttx/sdio.h
+++ b/include/nuttx/sdio.h
@@ -78,8 +78,8 @@
*
* ---- ---- ---- ---- ---T TTRR RRCC CCCC
*
- * CCCCCC - Bits 0-5: 6-bit command index (Range 9-63)
- * RRRR - Bits 6-9: 4-bit response code (R1, R1B, R2-5)
+ * CCCCCC - Bits 0-5: 6-bit command index (Range 0-63)
+ * RRRR - Bits 6-9: 4-bit response code (R1, R1B, R2-7)
* TTT - Bits 10-12: Data transfer type
*/
@@ -92,45 +92,57 @@
# define MMC_CMDIDX1 1 /* SEND_OP_COND: Sends capacity support information
* -Broadcast, R3 response, 31:0=OCR */
# define MMCSD_CMDIDX2 2 /* ALL_SEND_CID
- * -Broadcast, R2 response */
+ * -Broadcast, R2 response, 31:0=CID */
# define MMC_CMDIDX3 3 /* SET_RELATIVE_ADDR
* -Addressed Command, R1 response 31:16=RCA */
# define SD_CMDIDX3 3 /* SEND_RELATIVE_ADDR
- * -Addressed Command, R6 response 31:16=RCA */
+ * -Broadcast Command, R6 response 31:16=RCA */
# define MMCSD_CMDIDX4 4 /* SET_DSR
- * -Broadcast command, no response 31:16=RCA */
+ * -Broadcast command, no response 31:16=DSR */
+# define MMC_CMDIDX5 5 /* SLEEP_AWAKE
+ * -Addressed Command, R1b response 31:16=RCA */
# define SDIO_CMDIDX5 5 /* SDIO_SEND_OP_COND
* -Addressed Command, R4 response 47:16=IO_OCR */
# define MMCSD_CMDIDX6 6 /* HS_SWITCH: Checks switchable function */
# define MMCSD_CMDIDX7 7 /* SELECT/DESELECT CARD
* -Addressed Command, R1 response 31:16=RCA */
-# define MMCSD_CMDIDX8 8 /* SD: IF_COND: Sends SD Memory Card interface condition
- * R7 response;
- * MMC: get extended CSD register 512 bytes R1 response */
-# define MMCSD_CMDIDX9 9 /* SEND_CSD: Asks card to send its card specific data (CSD)
+# define MMC_CMDIDX8 8 /* SEND_EXT_CSD: get extended CSD register 512 bytes R1 response */
+# define SD_CMDIDX8 8 /* SEND_IF_COND: Sends SD Memory Card interface condition
+ * R7 response */
+# define MMCSD_CMDIDX9 9 /* SEND_CSD: Asks card to send its card specific data (CSD)
* -Addressed Command, R2 response 31:16=RCA */
# define MMCSD_CMDIDX10 10 /* SEND_CID: Asks card to send its card identification (CID)
* -Addressed Command, R2 response 31:16=RCA */
# define MMC_CMDIDX11 11 /* READ_DAT_UNTIL_STOP
* -Addressed data transfer command, R1 response 31:0=DADR */
+# define SD_CMDIDX11 11 /* VOLTAGE_SWITCH
+ * -Addressed command, R1 response */
# define MMCSD_CMDIDX12 12 /* STOP_TRANSMISSION: Forces the card to stop transmission
* -Addressed Command, R1b response */
# define MMCSD_CMDIDX13 13 /* SEND_STATUS: Asks card to send its status register
* -Addressed Command, R1 response 31:16=RCA */
# define MMCSD_CMDIDX14 14 /* HS_BUSTEST_READ: */
# define MMCSD_CMDIDX15 15 /* GO_INACTIVE_STATE
- * Addressed Command, Response 31:16=RCA */
+ * Addressed Command, no response 31:16=RCA */
# define MMCSD_CMDIDX16 16 /* SET_BLOCKLEN: Sets a block length (in bytes)
* -Addressed Command, R1 response 31:0=BLEN */
# define MMCSD_CMDIDX17 17 /* READ_SINGLE_BLOCK: Reads a block of the selected size
* -Addressed data transfer command, R1 response 31:0=DADR */
# define MMCSD_CMDIDX18 18 /* READ_MULTIPLE_BLOCK: Continuously transfers blocks from card to host
* -Addressed data transfer command, R1 response 31:0=DADR */
-# define MMCSD_CMDIDX19 19 /* HS_BUSTEST_WRITE: */
+# define MMC_CMDIDX19 19 /* HS_BUSTEST_WRITE: */
+# define SD_CMDIDX19 19 /* SEND_TUNING_BLOCK:
+ * -Addressed data transfer command, R1 response */
# define MMC_CMDIDX20 20 /* WRITE_DAT_UNTIL_STOP: (MMC)
- * -Addressed data transfer command, R1 response 31:0=DADR R1 */
-# define MMC_CMDIDX23 23 /* SET_BLOCK_COUNT: (MMC)
- * -Addressed command, R1 response 31:0=DADR */
+ * -Addressed data transfer command, R1 response 31:0=DADR */
+# define SD_CMDIDX20 20 /* SPEED_CLASS_CONTROL: (SD)
+ * -Addressed command, R1b response */
+# define MMC_CMDIDX21 21 /* SEND_TUNING_BLOCK: (MMC)
+ * -Addressed data transfer command, R1 response */
+# define SD_CMDIDX22 22 /* ADDRESS_EXTENSION: (SD)
+ * -Addressed command, R1 response */
+# define MMCSD_CMDIDX23 23 /* SET_BLOCK_COUNT: Sets the block count for read/write
+ * -Addressed command, R1 response 31:0=BCNT */
# define MMCSD_CMDIDX24 24 /* WRITE_BLOCK: Writes a block of the selected size
* -Addressed data transfer command, R1 response 31:0=DADR */
# define MMCSD_CMDIDX25 25 /* WRITE_MULTIPLE_BLOCK: Continuously writes blocks of data
@@ -145,6 +157,8 @@
* -Addressed Command, R1b response 31:0=DADR */
# define MMCSD_CMDIDX30 30 /* SEND_WRITE_PROT: Asks card to send state of write protection bits
* -Addressed data transfer command, R1 response 31:0=WADR */
+# define MMC_CMDIDX31 31 /* SEND_WRITE_PROT_TYPE: Asks card to send state of write protection type bits
+ * -Addressed data transfer command, R1 response 31:0=WADR */
# define SD_CMDIDX32 32 /* ERASE_GRP_START: Sets address of first block to erase (SD)
* -Addressed Command, R1 response 31:0=DADR */
# define SD_CMDIDX33 33 /* ERASE_GRP_END: Sets address of last block to erase (SD)
@@ -163,8 +177,30 @@
* -Addressed Command, R4 response (Complex) */
# define MMC_CMDIDX40 40 /* GO_IRQ_STATE: (MMC)
* -Broadcast command, R5 response */
+# define SD_CMDIDX40 40 /* DPS: (SD)
+ * -Addressed data transfer command, R1 response */
# define MMCSD_CMDIDX42 42 /* LOCK_UNLOCK: Used to Set/Reset the Password or lock/unlock card
- * -Addressed data transfer command, R1b response */
+ * -Addressed data transfer command, R1 response */
+# define MMC_CMDIDX44 44 /* QUEUED_TASK_PARAMS: (MMC)
+ * -Addressed Command, R1 response */
+# define MMC_CMDIDX45 45 /* QUEUED_TASK_ADDRESS: (MMC)
+ * -Addressed Command, R1 response */
+# define MMC_CMDIDX46 46 /* EXECUTE_READ_TASK: (MMC)
+ * -Addressed data transfer command, R1 response */
+# define MMC_CMDIDX47 47 /* EXECUTE_WRITE_TASK: (MMC)
+ * -Addressed data transfer command, R1 response */
+# define MMC_CMDIDX48 48 /* CMDQ_TASK_MGMT: (MMC)
+ * -Addressed Command, R1b response */
+# define MMC_CMDIDX49 49 /* SET_TIME: (MMC)
+ * -Addressed data transfer command, R1 response */
+# define SDIO_CMDIDX52 52 /* IO_RW_DIRECT: (SDIO)
+ * -Addressed command, R5 response */
+# define MMC_CMDIDX53 53 /* PROTOCOL_RD: (MMC)
+ * -Addressed data transfer command, R1 response */
+# define SDIO_CMDIDX53 53 /* IO_RW_EXTENDED: (SDIO)
+ * -Addressed data transfer command, R5 response */
+# define MMC_CMDIDX54 54 /* PROTOCOL_WR: (MMC)
+ * -Addressed data transfer command, R1 response */
# define SD_CMDIDX55 55 /* APP_CMD: Tells card that the next command is an application specific command
* - Addressed Command, R1 response 31:16=RCA */
# define MMCSD_CMDIDX56 56 /* GEN_CMD: Used transfer a block to or get block from card
@@ -203,12 +239,12 @@
/* Response Encodings:
*
- * xxxx xxxx xxxx xxxx OSMX XXRR RRCC CCCC
+ * xxxx xxxx xxxx xxxD OSMT TTRR RRCC CCCC
*
* x - Bit not used
* C - Bits 0-5: Command index
* R - Bits 6-9: Response type
- * X - Bits 10-12: Data transfer type
+ * T - Bits 10-12: Data transfer type
* M - Bit 13: MMC Multiblock transfer
* S - Bit 14: Stop data transfer
* O - Bit 15: Open drain
@@ -252,37 +288,44 @@
/* Fully decorated MMC, SD, SDIO commands */
#define MMCSD_CMD0 (MMCSD_CMDIDX0 |MMCSD_NO_RESPONSE |MMCSD_NODATAXFR)
-#define MMC_CMD1 (MMC_CMDIDX1 |MMCSD_R3_RESPONSE |MMCSD_NODATAXFR |MMCSD_OPENDRAIN)
+#define MMC_CMD1 (MMC_CMDIDX1 |MMCSD_R3_RESPONSE |MMCSD_NODATAXFR|MMCSD_OPENDRAIN)
#define MMCSD_CMD2 (MMCSD_CMDIDX2 |MMCSD_R2_RESPONSE |MMCSD_NODATAXFR)
#define MMC_CMD3 (MMC_CMDIDX3 |MMCSD_R1_RESPONSE |MMCSD_NODATAXFR)
#define SD_CMD3 (SD_CMDIDX3 |MMCSD_R6_RESPONSE |MMCSD_NODATAXFR)
#define MMCSD_CMD4 (MMCSD_CMDIDX4 |MMCSD_NO_RESPONSE |MMCSD_NODATAXFR)
+#define MMC_CMD5 (MMC_CMDIDX5 |MMCSD_R1B_RESPONSE|MMCSD_NODATAXFR)
#define SDIO_CMD5 (SDIO_CMDIDX5 |MMCSD_R4_RESPONSE |MMCSD_NODATAXFR)
-#define MMCSD_CMD6 (MMCSD_CMDIDX6 |MMCSD_R1_RESPONSE |MMCSD_RDDATAXFR)
+#define MMCSD_CMD6 (MMCSD_CMDIDX6 |MMCSD_R1B_RESPONSE|MMCSD_NODATAXFR)
#define MMCSD_CMD7S (MMCSD_CMDIDX7 |MMCSD_R1B_RESPONSE|MMCSD_NODATAXFR)
#define MMCSD_CMD7D (MMCSD_CMDIDX7 |MMCSD_NO_RESPONSE |MMCSD_NODATAXFR) /* No response when de-selecting card */
-#define SD_CMD8 (MMCSD_CMDIDX8 |MMCSD_R7_RESPONSE |MMCSD_NODATAXFR)
-#define MMC_CMD8 (MMCSD_CMDIDX8 |MMCSD_R1_RESPONSE |MMCSD_RDDATAXFR)
+#define MMC_CMD8 (MMC_CMDIDX8 |MMCSD_R1_RESPONSE |MMCSD_RDDATAXFR)
+#define SD_CMD8 (SD_CMDIDX8 |MMCSD_R7_RESPONSE |MMCSD_NODATAXFR)
#define MMCSD_CMD9 (MMCSD_CMDIDX9 |MMCSD_R2_RESPONSE |MMCSD_NODATAXFR)
#define MMCSD_CMD10 (MMCSD_CMDIDX10|MMCSD_R2_RESPONSE |MMCSD_NODATAXFR)
#define MMC_CMD11 (MMC_CMDIDX11 |MMCSD_R1_RESPONSE |MMCSD_RDSTREAM )
-#define MMCSD_CMD12 (MMCSD_CMDIDX12|MMCSD_R1B_RESPONSE|MMCSD_NODATAXFR |MMCSD_STOPXFR)
+#define SD_CMD11 (SD_CMDIDX11 |MMCSD_R1_RESPONSE |MMCSD_NODATAXFR)
+#define MMCSD_CMD12 (MMCSD_CMDIDX12|MMCSD_R1B_RESPONSE|MMCSD_NODATAXFR|MMCSD_STOPXFR)
#define MMCSD_CMD13 (MMCSD_CMDIDX13|MMCSD_R1_RESPONSE |MMCSD_NODATAXFR)
-#define MMCSD_CMD14 (MMCSD_CMDIDX14|MMCSD_R1_RESPONSE |MMCSD_NODATAXFR)
+#define MMCSD_CMD14 (MMCSD_CMDIDX14|MMCSD_R1_RESPONSE |MMCSD_RDDATAXFR)
#define MMCSD_CMD15 (MMCSD_CMDIDX15|MMCSD_NO_RESPONSE |MMCSD_NODATAXFR)
#define MMCSD_CMD16 (MMCSD_CMDIDX16|MMCSD_R1_RESPONSE |MMCSD_NODATAXFR)
#define MMCSD_CMD17 (MMCSD_CMDIDX17|MMCSD_R1_RESPONSE |MMCSD_RDDATAXFR)
-#define MMCSD_CMD18 (MMCSD_CMDIDX18|MMCSD_R1_RESPONSE |MMCSD_RDDATAXFR |MMCSD_MULTIBLOCK)
-#define MMCSD_CMD19 (MMCSD_CMDIDX19|MMCSD_R1_RESPONSE |MMCSD_NODATAXFR)
-#define MMC_CMD20 (MMC_CMDIDX20 |MMCSD_R1B_RESPONSE|MMCSD_WRSTREAM )
-#define MMC_CMD23 (MMC_CMDIDX23 |MMCSD_R1_RESPONSE |MMCSD_NODATAXFR)
+#define MMCSD_CMD18 (MMCSD_CMDIDX18|MMCSD_R1_RESPONSE |MMCSD_RDDATAXFR|MMCSD_MULTIBLOCK)
+#define MMC_CMD19 (MMC_CMDIDX19 |MMCSD_R1_RESPONSE |MMCSD_WRDATAXFR)
+#define SD_CMD19 (SD_CMDIDX19 |MMCSD_R1_RESPONSE |MMCSD_RDDATAXFR)
+#define MMC_CMD20 (MMC_CMDIDX20 |MMCSD_R1_RESPONSE |MMCSD_WRSTREAM )
+#define SD_CMD20 (SD_CMDIDX20 |MMCSD_R1B_RESPONSE|MMCSD_NODATAXFR)
+#define MMC_CMD21 (MMC_CMDIDX21 |MMCSD_R1_RESPONSE |MMCSD_RDDATAXFR)
+#define SD_CMD22 (SD_CMDIDX22 |MMCSD_R1_RESPONSE |MMCSD_NODATAXFR)
+#define MMCSD_CMD23 (MMCSD_CMDIDX23|MMCSD_R1_RESPONSE |MMCSD_NODATAXFR)
#define MMCSD_CMD24 (MMCSD_CMDIDX24|MMCSD_R1_RESPONSE |MMCSD_WRDATAXFR)
-#define MMCSD_CMD25 (MMCSD_CMDIDX25|MMCSD_R1_RESPONSE |MMCSD_WRDATAXFR |MMCSD_MULTIBLOCK)
+#define MMCSD_CMD25 (MMCSD_CMDIDX25|MMCSD_R1_RESPONSE |MMCSD_WRDATAXFR|MMCSD_MULTIBLOCK)
#define MMCSD_CMD26 (MMCSD_CMDIDX26|MMCSD_R1_RESPONSE |MMCSD_WRDATAXFR)
#define MMCSD_CMD27 (MMCSD_CMDIDX27|MMCSD_R1_RESPONSE |MMCSD_WRDATAXFR)
#define MMCSD_CMD28 (MMCSD_CMDIDX28|MMCSD_R1B_RESPONSE|MMCSD_NODATAXFR)
#define MMCSD_CMD29 (MMCSD_CMDIDX29|MMCSD_R1B_RESPONSE|MMCSD_NODATAXFR)
#define MMCSD_CMD30 (MMCSD_CMDIDX30|MMCSD_R1_RESPONSE |MMCSD_RDDATAXFR)
+#define MMC_CMD31 (MMC_CMDIDX31 |MMCSD_R1_RESPONSE |MMCSD_RDDATAXFR)
#define SD_CMD32 (SD_CMDIDX32 |MMCSD_R1_RESPONSE |MMCSD_NODATAXFR)
#define SD_CMD33 (SD_CMDIDX33 |MMCSD_R1_RESPONSE |MMCSD_NODATAXFR)
#define MMC_CMD34 (MMC_CMDIDX34 |MMCSD_R1_RESPONSE |MMCSD_NODATAXFR)
@@ -292,9 +335,22 @@
#define MMCSD_CMD38 (MMCSD_CMDIDX38|MMCSD_R1B_RESPONSE|MMCSD_NODATAXFR)
#define MMC_CMD39 (MMC_CMDIDX39 |MMCSD_R4_RESPONSE |MMCSD_NODATAXFR)
#define MMC_CMD40 (MMC_CMDIDX40 |MMCSD_R5_RESPONSE |MMCSD_NODATAXFR)
-#define MMCSD_CMD42 (MMCSD_CMDIDX42|MMCSD_R1B_RESPONSE|MMCSD_WRDATAXFR)
+#define SD_CMD40 (SD_CMDIDX40 |MMCSD_R1_RESPONSE |MMCSD_RDDATAXFR)
+#define MMCSD_CMD42 (MMCSD_CMDIDX42|MMCSD_R1_RESPONSE |MMCSD_WRDATAXFR)
+#define MMC_CMD44 (MMC_CMDIDX44 |MMCSD_R1_RESPONSE |MMCSD_NODATAXFR)
+#define MMC_CMD45 (MMC_CMDIDX45 |MMCSD_R1_RESPONSE |MMCSD_NODATAXFR)
+#define MMC_CMD46 (MMC_CMDIDX46 |MMCSD_R1_RESPONSE |MMCSD_RDDATAXFR|MMCSD_MULTIBLOCK)
+#define MMC_CMD47 (MMC_CMDIDX47 |MMCSD_R1_RESPONSE |MMCSD_WRDATAXFR|MMCSD_MULTIBLOCK)
+#define MMC_CMD48 (MMC_CMDIDX48 |MMCSD_R1B_RESPONSE|MMCSD_NODATAXFR)
+#define MMC_CMD49 (MMC_CMDIDX49 |MMCSD_R1_RESPONSE |MMCSD_WRDATAXFR)
+#define SDIO_CMD52 (SDIO_CMDIDX52 |MMCSD_R5_RESPONSE |MMCSD_NODATAXFR)
+#define MMC_CMD53 (MMC_CMDIDX53 |MMCSD_R1_RESPONSE |MMCSD_RDDATAXFR|MMCSD_MULTIBLOCK)
+#define SDIO_CMD53RD (SDIO_CMDIDX53 |MMCSD_R5_RESPONSE |MMCSD_RDDATAXFR)
+#define SDIO_CMD53WR (SDIO_CMDIDX53 |MMCSD_R5_RESPONSE |MMCSD_WRDATAXFR)
+#define MMC_CMD54 (MMC_CMDIDX54 |MMCSD_R1_RESPONSE |MMCSD_WRDATAXFR|MMCSD_MULTIBLOCK)
#define SD_CMD55 (SD_CMDIDX55 |MMCSD_R1_RESPONSE |MMCSD_NODATAXFR)
-#define MMCSD_CMD56 (MMCSD_CMDIDX56|MMCSD_R1_RESPONSE |MMCSD_RDDATAXFR)
+#define MMCSD_CMD56RD (MMCSD_CMDIDX56|MMCSD_R1_RESPONSE |MMCSD_RDDATAXFR)
+#define MMCSD_CMD56WR (MMCSD_CMDIDX56|MMCSD_R1_RESPONSE |MMCSD_WRDATAXFR)
/* SD/SDIO APP commands (must be preceded by CMD55) */
@@ -343,7 +399,9 @@
#define SDIO_CCCR_FN0_BLKSIZE_1 0x11 /* FN0 Block Size */
#define SDIO_CCCR_POWER 0x12 /* Power Control */
#define SDIO_CCCR_HIGHSPEED 0x13 /* High-Speed */
-#define SDIO_CCCR_RFU 0x14 /* Reserved for future use */
+#define SDIO_CCCR_UHSI 0x14 /* UHS-I Support */
+#define SDIO_CCCR_DRIVER 0x15 /* Driver Strength */
+#define SDIO_CCCR_INTEXT 0x16 /* Interrupt Extension */
#define SDIO_CCCR_VENDOR 0xF0 /* Reserved for Vendors */
#define SDIO_CCCR_BUS_IF_WIDTH_MASK 0x03 /* Bus width configuration */
@@ -375,7 +433,7 @@
*
****************************************************************************/
-#define SDIO_LOCK(dev,state) ((dev)->lock(dev,state))
+#define SDIO_LOCK(dev,state) ((dev)->lock(dev,state))
/****************************************************************************
* Name: SDIO_RESET
@@ -503,7 +561,6 @@
* dev - An instance of the SDIO device interface
* cmd - The command to send. See 32-bit command definitions above.
* arg - 32-bit argument required with some commands
- * data - A reference to data required with some commands
*
* Returned Value:
* None
@@ -656,7 +713,7 @@
* Enable/disable of a set of SDIO wait events. This is part of the
* the SDIO_WAITEVENT sequence. The set of to-be-waited-for events is
* configured before calling either calling SDIO_DMARECVSETUP,
- * SDIO_DMASENDSETUP, or or SDIO_WAITEVENT. This is the recommended
+ * SDIO_DMASENDSETUP, or SDIO_WAITEVENT. This is the recommended
* ordering:
*
* SDIO_WAITENABLE: Discard any pending interrupts, enable event(s)
@@ -678,13 +735,16 @@
* dev - An instance of the SDIO device interface
* eventset - A bitset of events to enable or disable (see SDIOWAIT_*
* definitions). 0=disable; 1=enable.
+ * timeout - Maximum time in milliseconds to wait. Zero means immediate
+ * timeout with no wait. The timeout value is ignored if
+ * SDIOWAIT_TIMEOUT is not included in the waited-for eventset.
*
* Returned Value:
* None
*
****************************************************************************/
-#define SDIO_WAITENABLE(dev,eventset,timeout) ((dev)->waitenable(dev,eventset,timeout))
+#define SDIO_WAITENABLE(dev,eventset,timeout) ((dev)->waitenable(dev,eventset,timeout))
/****************************************************************************
* Name: SDIO_EVENTWAIT
@@ -696,10 +756,7 @@
* can be used again.
*
* Input Parameters:
- * dev - An instance of the SDIO device interface
- * timeout - Maximum time in milliseconds to wait. Zero means immediate
- * timeout with no wait. The timeout value is ignored if
- * SDIOWAIT_TIMEOUT is not included in the waited-for eventset.
+ * dev - An instance of the SDIO device interface
*
* Returned Value:
* Event set containing the event(s) that ended the wait. Should always
@@ -707,7 +764,7 @@
*
****************************************************************************/
-#define SDIO_EVENTWAIT(dev) ((dev)->eventwait(dev))
+#define SDIO_EVENTWAIT(dev) ((dev)->eventwait(dev))
/****************************************************************************
* Name: SDIO_CALLBACKENABLE
@@ -731,7 +788,7 @@
*
****************************************************************************/
-#define SDIO_CALLBACKENABLE(dev,eventset) ((dev)->callbackenable(dev,eventset))
+#define SDIO_CALLBACKENABLE(dev,eventset) ((dev)->callbackenable(dev,eventset))
/****************************************************************************
* Name: SDIO_REGISTERCALLBACK