aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/mmc
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/mmc')
-rw-r--r--include/linux/mmc/host.h15
-rw-r--r--include/linux/mmc/sd.h7
2 files changed, 22 insertions, 0 deletions
diff --git a/include/linux/mmc/host.h b/include/linux/mmc/host.h
index 0fffa5cdc183..bde5a0b1c47e 100644
--- a/include/linux/mmc/host.h
+++ b/include/linux/mmc/host.h
@@ -56,6 +56,11 @@ struct mmc_ios {
56#define MMC_SDR_MODE 0 56#define MMC_SDR_MODE 0
57#define MMC_1_2V_DDR_MODE 1 57#define MMC_1_2V_DDR_MODE 1
58#define MMC_1_8V_DDR_MODE 2 58#define MMC_1_8V_DDR_MODE 2
59
60 unsigned char signal_voltage; /* signalling voltage (1.8V or 3.3V) */
61
62#define MMC_SIGNAL_VOLTAGE_330 0
63#define MMC_SIGNAL_VOLTAGE_180 1
59}; 64};
60 65
61struct mmc_host_ops { 66struct mmc_host_ops {
@@ -117,6 +122,8 @@ struct mmc_host_ops {
117 122
118 /* optional callback for HC quirks */ 123 /* optional callback for HC quirks */
119 void (*init_card)(struct mmc_host *host, struct mmc_card *card); 124 void (*init_card)(struct mmc_host *host, struct mmc_card *card);
125
126 int (*start_signal_voltage_switch)(struct mmc_host *host, struct mmc_ios *ios);
120}; 127};
121 128
122struct mmc_card; 129struct mmc_card;
@@ -173,6 +180,14 @@ struct mmc_host {
173 /* DDR mode at 1.2V */ 180 /* DDR mode at 1.2V */
174#define MMC_CAP_POWER_OFF_CARD (1 << 13) /* Can power off after boot */ 181#define MMC_CAP_POWER_OFF_CARD (1 << 13) /* Can power off after boot */
175#define MMC_CAP_BUS_WIDTH_TEST (1 << 14) /* CMD14/CMD19 bus width ok */ 182#define MMC_CAP_BUS_WIDTH_TEST (1 << 14) /* CMD14/CMD19 bus width ok */
183#define MMC_CAP_UHS_SDR12 (1 << 15) /* Host supports UHS SDR12 mode */
184#define MMC_CAP_UHS_SDR25 (1 << 16) /* Host supports UHS SDR25 mode */
185#define MMC_CAP_UHS_SDR50 (1 << 17) /* Host supports UHS SDR50 mode */
186#define MMC_CAP_UHS_SDR104 (1 << 18) /* Host supports UHS SDR104 mode */
187#define MMC_CAP_UHS_DDR50 (1 << 19) /* Host supports UHS DDR50 mode */
188#define MMC_CAP_SET_XPC_330 (1 << 20) /* Host supports >150mA current at 3.3V */
189#define MMC_CAP_SET_XPC_300 (1 << 21) /* Host supports >150mA current at 3.0V */
190#define MMC_CAP_SET_XPC_180 (1 << 22) /* Host supports >150mA current at 1.8V */
176 191
177 mmc_pm_flag_t pm_caps; /* supported pm features */ 192 mmc_pm_flag_t pm_caps; /* supported pm features */
178 193
diff --git a/include/linux/mmc/sd.h b/include/linux/mmc/sd.h
index 3fd85e088cc3..c648878f6734 100644
--- a/include/linux/mmc/sd.h
+++ b/include/linux/mmc/sd.h
@@ -17,6 +17,7 @@
17/* This is basically the same command as for MMC with some quirks. */ 17/* This is basically the same command as for MMC with some quirks. */
18#define SD_SEND_RELATIVE_ADDR 3 /* bcr R6 */ 18#define SD_SEND_RELATIVE_ADDR 3 /* bcr R6 */
19#define SD_SEND_IF_COND 8 /* bcr [11:0] See below R7 */ 19#define SD_SEND_IF_COND 8 /* bcr [11:0] See below R7 */
20#define SD_SWITCH_VOLTAGE 11 /* ac R1 */
20 21
21 /* class 10 */ 22 /* class 10 */
22#define SD_SWITCH 6 /* adtc [31:0] See below R1 */ 23#define SD_SWITCH 6 /* adtc [31:0] See below R1 */
@@ -32,6 +33,12 @@
32#define SD_APP_OP_COND 41 /* bcr [31:0] OCR R3 */ 33#define SD_APP_OP_COND 41 /* bcr [31:0] OCR R3 */
33#define SD_APP_SEND_SCR 51 /* adtc R1 */ 34#define SD_APP_SEND_SCR 51 /* adtc R1 */
34 35
36/* OCR bit definitions */
37#define SD_OCR_S18R (1 << 24) /* 1.8V switching request */
38#define SD_ROCR_S18A SD_OCR_S18R /* 1.8V switching accepted by card */
39#define SD_OCR_XPC (1 << 28) /* SDXC power control */
40#define SD_OCR_CCS (1 << 30) /* Card Capacity Status */
41
35/* 42/*
36 * SD_SWITCH argument format: 43 * SD_SWITCH argument format:
37 * 44 *