aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/mmc/card.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/mmc/card.h')
-rw-r--r--include/linux/mmc/card.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/include/linux/mmc/card.h b/include/linux/mmc/card.h
index 4d893eaf8174..6b7525099e56 100644
--- a/include/linux/mmc/card.h
+++ b/include/linux/mmc/card.h
@@ -31,6 +31,7 @@ struct mmc_csd {
31 unsigned int tacc_ns; 31 unsigned int tacc_ns;
32 unsigned int r2w_factor; 32 unsigned int r2w_factor;
33 unsigned int max_dtr; 33 unsigned int max_dtr;
34 unsigned int erase_size; /* In sectors */
34 unsigned int read_blkbits; 35 unsigned int read_blkbits;
35 unsigned int write_blkbits; 36 unsigned int write_blkbits;
36 unsigned int capacity; 37 unsigned int capacity;
@@ -42,9 +43,16 @@ struct mmc_csd {
42 43
43struct mmc_ext_csd { 44struct mmc_ext_csd {
44 u8 rev; 45 u8 rev;
46 u8 erase_group_def;
47 u8 sec_feature_support;
45 unsigned int sa_timeout; /* Units: 100ns */ 48 unsigned int sa_timeout; /* Units: 100ns */
46 unsigned int hs_max_dtr; 49 unsigned int hs_max_dtr;
47 unsigned int sectors; 50 unsigned int sectors;
51 unsigned int hc_erase_size; /* In sectors */
52 unsigned int hc_erase_timeout; /* In milliseconds */
53 unsigned int sec_trim_mult; /* Secure trim multiplier */
54 unsigned int sec_erase_mult; /* Secure erase multiplier */
55 unsigned int trim_timeout; /* In milliseconds */
48}; 56};
49 57
50struct sd_scr { 58struct sd_scr {
@@ -54,6 +62,12 @@ struct sd_scr {
54#define SD_SCR_BUS_WIDTH_4 (1<<2) 62#define SD_SCR_BUS_WIDTH_4 (1<<2)
55}; 63};
56 64
65struct sd_ssr {
66 unsigned int au; /* In sectors */
67 unsigned int erase_timeout; /* In milliseconds */
68 unsigned int erase_offset; /* In milliseconds */
69};
70
57struct sd_switch_caps { 71struct sd_switch_caps {
58 unsigned int hs_max_dtr; 72 unsigned int hs_max_dtr;
59}; 73};
@@ -106,6 +120,11 @@ struct mmc_card {
106#define MMC_QUIRK_NONSTD_SDIO (1<<2) /* non-standard SDIO card attached */ 120#define MMC_QUIRK_NONSTD_SDIO (1<<2) /* non-standard SDIO card attached */
107 /* (missing CIA registers) */ 121 /* (missing CIA registers) */
108 122
123 unsigned int erase_size; /* erase size in sectors */
124 unsigned int erase_shift; /* if erase unit is power 2 */
125 unsigned int pref_erase; /* in sectors */
126 u8 erased_byte; /* value of erased bytes */
127
109 u32 raw_cid[4]; /* raw card CID */ 128 u32 raw_cid[4]; /* raw card CID */
110 u32 raw_csd[4]; /* raw card CSD */ 129 u32 raw_csd[4]; /* raw card CSD */
111 u32 raw_scr[2]; /* raw card SCR */ 130 u32 raw_scr[2]; /* raw card SCR */
@@ -113,6 +132,7 @@ struct mmc_card {
113 struct mmc_csd csd; /* card specific */ 132 struct mmc_csd csd; /* card specific */
114 struct mmc_ext_csd ext_csd; /* mmc v4 extended card specific */ 133 struct mmc_ext_csd ext_csd; /* mmc v4 extended card specific */
115 struct sd_scr scr; /* extra SD information */ 134 struct sd_scr scr; /* extra SD information */
135 struct sd_ssr ssr; /* yet more SD information */
116 struct sd_switch_caps sw_caps; /* switch (CMD6) caps */ 136 struct sd_switch_caps sw_caps; /* switch (CMD6) caps */
117 137
118 unsigned int sdio_funcs; /* number of SDIO functions */ 138 unsigned int sdio_funcs; /* number of SDIO functions */