diff options
author | Pavan Kunapuli <pkunapuli@nvidia.com> | 2011-01-10 20:43:32 +0530 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2011-04-26 15:49:23 -0700 |
commit | 320395ccc6b474be0855c7323126fa62fb4ef143 (patch) | |
tree | 2d68f85ac753597a9f07fca291e7143ecce9d94c /include/linux | |
parent | ff77b31c173918111e98cf7f9d704d94c5deb3c2 (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.h | 24 | ||||
-rw-r--r-- | include/linux/mmc/sd.h | 2 |
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 */ |