diff options
author | Pierre Ossman <drzeus@drzeus.cx> | 2006-11-08 17:03:10 -0500 |
---|---|---|
committer | Pierre Ossman <drzeus@drzeus.cx> | 2006-12-01 12:53:37 -0500 |
commit | 7ccd266e676a3f0c6f8f897f58b684cac3dd1650 (patch) | |
tree | aba8632fc523c5c663a56876ce67c580ce8d38eb /include/linux/mmc/protocol.h | |
parent | 73778120c4088a0a7b59c4c378904f7a230b4820 (diff) |
mmc: Support for high speed SD cards
Modern SD cards support a clock speed of 50 MHz. Make sure we test for
this capability and do the song and dance required to activate it.
Activating high speed support actually modifies the TRAN_SPEED field
of the CSD. But as the spec says that the cards must report 50 MHz,
we might as well skip re-reading the CSD.
Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
Diffstat (limited to 'include/linux/mmc/protocol.h')
-rw-r--r-- | include/linux/mmc/protocol.h | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/include/linux/mmc/protocol.h b/include/linux/mmc/protocol.h index 45c51fd85786..2dce60c43f4b 100644 --- a/include/linux/mmc/protocol.h +++ b/include/linux/mmc/protocol.h | |||
@@ -82,6 +82,7 @@ | |||
82 | /* class 8 */ | 82 | /* class 8 */ |
83 | /* This is basically the same command as for MMC with some quirks. */ | 83 | /* This is basically the same command as for MMC with some quirks. */ |
84 | #define SD_SEND_RELATIVE_ADDR 3 /* bcr R6 */ | 84 | #define SD_SEND_RELATIVE_ADDR 3 /* bcr R6 */ |
85 | #define SD_SWITCH 6 /* adtc [31:0] See below R1 */ | ||
85 | 86 | ||
86 | /* Application commands */ | 87 | /* Application commands */ |
87 | #define SD_APP_SET_BUS_WIDTH 6 /* ac [1:0] bus width R1 */ | 88 | #define SD_APP_SET_BUS_WIDTH 6 /* ac [1:0] bus width R1 */ |
@@ -101,6 +102,19 @@ | |||
101 | */ | 102 | */ |
102 | 103 | ||
103 | /* | 104 | /* |
105 | * SD_SWITCH argument format: | ||
106 | * | ||
107 | * [31] Check (0) or switch (1) | ||
108 | * [30:24] Reserved (0) | ||
109 | * [23:20] Function group 6 | ||
110 | * [19:16] Function group 5 | ||
111 | * [15:12] Function group 4 | ||
112 | * [11:8] Function group 3 | ||
113 | * [7:4] Function group 2 | ||
114 | * [3:0] Function group 1 | ||
115 | */ | ||
116 | |||
117 | /* | ||
104 | MMC status in R1 | 118 | MMC status in R1 |
105 | Type | 119 | Type |
106 | e : error bit | 120 | e : error bit |
@@ -285,6 +299,14 @@ struct _mmc_csd { | |||
285 | #define MMC_SWITCH_MODE_WRITE_BYTE 0x03 /* Set target to value */ | 299 | #define MMC_SWITCH_MODE_WRITE_BYTE 0x03 /* Set target to value */ |
286 | 300 | ||
287 | /* | 301 | /* |
302 | * SCR field definitions | ||
303 | */ | ||
304 | |||
305 | #define SCR_SPEC_VER_0 0 /* Implements system specification 1.0 - 1.01 */ | ||
306 | #define SCR_SPEC_VER_1 1 /* Implements system specification 1.10 */ | ||
307 | #define SCR_SPEC_VER_2 2 /* Implements system specification 2.00 */ | ||
308 | |||
309 | /* | ||
288 | * SD bus widths | 310 | * SD bus widths |
289 | */ | 311 | */ |
290 | #define SD_BUS_WIDTH_1 0 | 312 | #define SD_BUS_WIDTH_1 0 |