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/card.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/card.h')
-rw-r--r-- | include/linux/mmc/card.h | 7 |
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 | ||
53 | struct sd_switch_caps { | ||
54 | unsigned int hs_max_dtr; | ||
55 | }; | ||
56 | |||
53 | struct mmc_host; | 57 | struct 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) |