summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorPavan Kunapuli <pkunapuli@nvidia.com>2011-08-10 20:28:59 +0530
committerVarun Colbert <vcolbert@nvidia.com>2011-08-10 16:04:20 -0700
commit219f2250a35ae6590268943a83508da8370085a2 (patch)
tree8b11b0b53a45d6ad1c956b43abb23349f4fdd3e6 /include
parentfa1a2809608379d9c839700c83c2b3cce4c83392 (diff)
mmc: sdio: Adding SDIO 3.0 support
Adding SDIO 3.0 support. Adding support for voltage switch, bus speed mode selection, 8 bit buswidth support and frequency tuning. Bug 853800 Change-Id: Ie778b7d67f2f09a9840cc8576d1dc750f18c7978 Reviewed-on: http://git-master/r/46388 Reviewed-by: Pavan Kunapuli <pkunapuli@nvidia.com> Tested-by: Pavan Kunapuli <pkunapuli@nvidia.com> Reviewed-by: Bitan Biswas <bbiswas@nvidia.com>
Diffstat (limited to 'include')
-rw-r--r--include/linux/mmc/card.h7
-rw-r--r--include/linux/mmc/sdio.h12
2 files changed, 17 insertions, 2 deletions
diff --git a/include/linux/mmc/card.h b/include/linux/mmc/card.h
index 832e494296c3..9ef70d49296b 100644
--- a/include/linux/mmc/card.h
+++ b/include/linux/mmc/card.h
@@ -80,9 +80,13 @@ struct sdio_cccr {
unsigned int multi_block:1,
low_speed:1,
wide_bus:1,
+ wide_8bitbus:1,
high_power:1,
high_speed:1,
- disable_cd:1;
+ disable_cd:1,
+ uhs_sdr104:1,
+ uhs_sdr50:1,
+ uhs_ddr50:1;
};
struct sdio_cis {
@@ -123,6 +127,7 @@ struct mmc_card {
/* (missing CIA registers) */
#define MMC_QUIRK_INAND_CMD38 (1<<3) /* iNAND devices have broken CMD38 */
+ unsigned char bus_width; /* bus width configured */
unsigned char bus_speed; /* bus speed mode */
unsigned int erase_size; /* erase size in sectors */
unsigned int erase_shift; /* if erase unit is power 2 */
diff --git a/include/linux/mmc/sdio.h b/include/linux/mmc/sdio.h
index 245cdacee544..afb03af2153f 100644
--- a/include/linux/mmc/sdio.h
+++ b/include/linux/mmc/sdio.h
@@ -71,12 +71,14 @@
#define SDIO_CCCR_REV_1_00 0 /* CCCR/FBR Version 1.00 */
#define SDIO_CCCR_REV_1_10 1 /* CCCR/FBR Version 1.10 */
-#define SDIO_CCCR_REV_1_20 2 /* CCCR/FBR Version 1.20 */
+#define SDIO_CCCR_REV_2_00 2 /* CCCR/FBR Version 1.20 */
+#define SDIO_CCCR_REV_3_00 3 /* CCCR/FBR Version 1.20 */
#define SDIO_SDIO_REV_1_00 0 /* SDIO Spec Version 1.00 */
#define SDIO_SDIO_REV_1_10 1 /* SDIO Spec Version 1.10 */
#define SDIO_SDIO_REV_1_20 2 /* SDIO Spec Version 1.20 */
#define SDIO_SDIO_REV_2_00 3 /* SDIO Spec Version 2.00 */
+#define SDIO_SDIO_REV_3_00 4 /* SDIO Spec Version 3.00 */
#define SDIO_CCCR_SD 0x01
@@ -96,6 +98,8 @@
#define SDIO_BUS_WIDTH_1BIT 0x00
#define SDIO_BUS_WIDTH_4BIT 0x02
+#define SDIO_BUS_WIDTH_8BIT 0x03
+#define SDIO_CCCR_IF_CAP_8BIT 0x04
#define SDIO_BUS_ECSI 0x20 /* Enable continuous SPI interrupt */
#define SDIO_BUS_SCSI 0x40 /* Support continuous SPI interrupt */
@@ -134,6 +138,12 @@
#define SDIO_SPEED_SHS 0x01 /* Supports High-Speed mode */
#define SDIO_SPEED_EHS 0x02 /* Enable High-Speed mode */
+#define SDIO_CCCR_UHS_SUPPORT 0x14
+#define SDIO_UHS_SUPPORT_SDR50 0x01
+#define SDIO_UHS_SUPPORT_SDR104 0x02
+#define SDIO_UHS_SUPPORT_DDR50 0x04
+#define SDIO_UHS_SUPPORT_MASK 0x0E
+
/*
* Function Basic Registers (FBR)
*/