aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/mmc/card.h
diff options
context:
space:
mode:
authorPierre Ossman <drzeus@drzeus.cx>2006-11-08 17:03:10 -0500
committerPierre Ossman <drzeus@drzeus.cx>2006-12-01 12:53:37 -0500
commit7ccd266e676a3f0c6f8f897f58b684cac3dd1650 (patch)
treeaba8632fc523c5c663a56876ce67c580ce8d38eb /include/linux/mmc/card.h
parent73778120c4088a0a7b59c4c378904f7a230b4820 (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/card.h')
-rw-r--r--include/linux/mmc/card.h7
1 files changed, 6 insertions, 1 deletions
diff --git a/include/linux/mmc/card.h b/include/linux/mmc/card.h
index ce25256f80d5..d0e6a5497614 100644
--- a/include/linux/mmc/card.h
+++ b/include/linux/mmc/card.h
@@ -50,6 +50,10 @@ struct sd_scr {
50#define SD_SCR_BUS_WIDTH_4 (1<<2) 50#define SD_SCR_BUS_WIDTH_4 (1<<2)
51}; 51};
52 52
53struct sd_switch_caps {
54 unsigned int hs_max_dtr;
55};
56
53struct mmc_host; 57struct mmc_host;
54 58
55/* 59/*
@@ -66,7 +70,7 @@ struct mmc_card {
66#define MMC_STATE_BAD (1<<2) /* unrecognised device */ 70#define MMC_STATE_BAD (1<<2) /* unrecognised device */
67#define MMC_STATE_SDCARD (1<<3) /* is an SD card */ 71#define MMC_STATE_SDCARD (1<<3) /* is an SD card */
68#define MMC_STATE_READONLY (1<<4) /* card is read-only */ 72#define MMC_STATE_READONLY (1<<4) /* card is read-only */
69#define MMC_STATE_HIGHSPEED (1<<5) /* card is in mmc4 highspeed mode */ 73#define MMC_STATE_HIGHSPEED (1<<5) /* card is in high speed mode */
70 u32 raw_cid[4]; /* raw card CID */ 74 u32 raw_cid[4]; /* raw card CID */
71 u32 raw_csd[4]; /* raw card CSD */ 75 u32 raw_csd[4]; /* raw card CSD */
72 u32 raw_scr[2]; /* raw card SCR */ 76 u32 raw_scr[2]; /* raw card SCR */
@@ -74,6 +78,7 @@ struct mmc_card {
74 struct mmc_csd csd; /* card specific */ 78 struct mmc_csd csd; /* card specific */
75 struct mmc_ext_csd ext_csd; /* mmc v4 extended card specific */ 79 struct mmc_ext_csd ext_csd; /* mmc v4 extended card specific */
76 struct sd_scr scr; /* extra SD information */ 80 struct sd_scr scr; /* extra SD information */
81 struct sd_switch_caps sw_caps; /* switch (CMD6) caps */
77}; 82};
78 83
79#define mmc_card_present(c) ((c)->state & MMC_STATE_PRESENT) 84#define mmc_card_present(c) ((c)->state & MMC_STATE_PRESENT)