diff options
Diffstat (limited to 'include/linux/mmc/card.h')
| -rw-r--r-- | include/linux/mmc/card.h | 20 |
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 | ||
| 43 | struct mmc_ext_csd { | 44 | struct 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 | ||
| 50 | struct sd_scr { | 58 | struct 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 | ||
| 65 | struct sd_ssr { | ||
| 66 | unsigned int au; /* In sectors */ | ||
| 67 | unsigned int erase_timeout; /* In milliseconds */ | ||
| 68 | unsigned int erase_offset; /* In milliseconds */ | ||
| 69 | }; | ||
| 70 | |||
| 57 | struct sd_switch_caps { | 71 | struct 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 */ |
