summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
authorPavan Kunapuli <pkunapuli@nvidia.com>2011-01-10 20:43:32 +0530
committerDan Willemsen <dwillemsen@nvidia.com>2011-04-26 15:49:23 -0700
commit320395ccc6b474be0855c7323126fa62fb4ef143 (patch)
tree2d68f85ac753597a9f07fca291e7143ecce9d94c /include/linux
parentff77b31c173918111e98cf7f9d704d94c5deb3c2 (diff)
sd:Adding support for sd3.0
Adding support for sd3.0 cards. Added support for SDR50, SDR104 and DDR50 modes. Bug 661035 Original-Change-Id: Iecd6634b8e25d5fcbc05f79f34aea40a8460b527 Reviewed-on: http://git-master/r/15003 Tested-by: Pavan Kunapuli <pkunapuli@nvidia.com> Reviewed-by: Venkata Nageswara Penumarty <vpenumarty@nvidia.com> Reviewed-by: Scott Williams <scwilliams@nvidia.com> Change-Id: Ic2119387d55b2e4263f50a606e0f957ab518f0cb
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/mmc/host.h24
-rw-r--r--include/linux/mmc/sd.h2
2 files changed, 25 insertions, 1 deletions
diff --git a/include/linux/mmc/host.h b/include/linux/mmc/host.h
index 29ddcb71c635..e9f3a489834a 100644
--- a/include/linux/mmc/host.h
+++ b/include/linux/mmc/host.h
@@ -53,8 +53,21 @@ struct mmc_ios {
unsigned char bus_speed_mode; /* bus speed mode */
+#define MMC_BUS_SPEED_MODE_SDR12 0
+#define MMC_BUS_SPEED_MODE_SDR25 1
+#define MMC_BUS_SPEED_MODE_SDR50 2
+#define MMC_BUS_SPEED_MODE_SDR104 3
#define MMC_BUS_SPEED_MODE_DDR50 4
+ unsigned char signalling_voltage; /* signalling voltage */
+#define MMC_3_3_VOLT_SIGNALLING 0
+#define MMC_1_8_VOLT_SIGNALLING 1
+
+ unsigned char tuning_arg; /* tuning execution */
+#define MMC_EXECUTE_TUNING 1
+#define MMC_QUERY_TUNING_STATUS 2
+#define MMC_SAMPLING_CLOCK_SELECT 3
+#define MMC_RESET_TUNING_CIRCUIT 4
};
struct mmc_host_ops {
@@ -164,6 +177,9 @@ struct mmc_host {
#define MMC_CAP_ERASE (1 << 10) /* Allow erase/trim commands */
#define MMC_CAP_FORCE_HS (1 << 11) /* Must enable highspeed mode */
#define MMC_CAP_DDR50 (1 << 12) /* Can support DDR mode at 50 MHz */
+#define MMC_CAP_SDR50 (1 << 13) /* Can support SDR mode at 50 MHz */
+#define MMC_CAP_SDR104 (1 << 14) /* Can support SDR mode at 104 MHz */
+#define MMC_CAP_SDR50_TUNING (1 << 15) /* Is tuning required for SDR50 */
mmc_pm_flag_t pm_caps; /* supported pm features */
@@ -189,7 +205,7 @@ struct mmc_host {
#ifdef CONFIG_MMC_DEBUG
unsigned int removed:1; /* host is being removed */
#endif
-
+ unsigned int is_voltage_switched:1; /* voltage switched */
/* Only used with MMC_CAP_DISABLE */
int enabled; /* host is enabled */
int rescan_disable; /* disable card detection */
@@ -213,6 +229,12 @@ struct mmc_host {
#define MMC_BUSRESUME_MANUAL_RESUME (1 << 0)
#define MMC_BUSRESUME_NEEDS_RESUME (1 << 1)
+ unsigned int tuning_status;
+#define MMC_SD_TUNING_COMPLETED (1 << 0)
+#define MMC_SD_SAMPLING_CLOCK_SELECT_SET (1 << 1)
+#define MMC_SD_TUNING_IN_PROGRESS (1 << 2)
+#define MMC_SD_RESET_TUNING_CIRCUIT (1 << 3)
+
unsigned int sdio_irqs;
struct task_struct *sdio_irq_thread;
atomic_t sdio_irq_thread_abort;
diff --git a/include/linux/mmc/sd.h b/include/linux/mmc/sd.h
index 3fd85e088cc3..0f70416b0a49 100644
--- a/include/linux/mmc/sd.h
+++ b/include/linux/mmc/sd.h
@@ -17,6 +17,8 @@
/* This is basically the same command as for MMC with some quirks. */
#define SD_SEND_RELATIVE_ADDR 3 /* bcr R6 */
#define SD_SEND_IF_COND 8 /* bcr [11:0] See below R7 */
+#define SD_VOLTAGE_SWITCH 11 /* ac R1 */
+#define SD_SEND_TUNING_PATTERN 19 /* adtc R1 */
/* class 10 */
#define SD_SWITCH 6 /* adtc [31:0] See below R1 */