diff options
author | Peng Fan <van.freenix@gmail.com> | 2016-09-01 11:13:38 +0800 |
---|---|---|
committer | Robby Cai <robby.cai@nxp.com> | 2016-11-16 16:58:51 +0800 |
commit | a9f2abd24d4184d2862b98a5826e84a29a53eb56 (patch) | |
tree | 645739e29400d540a2253786c7b0aef227bdc5d7 /include/mmc.h | |
parent | 8bf9d633b344eaf47490137ab47d172fc87af322 (diff) | |
download | u-boot-imx-a9f2abd24d4184d2862b98a5826e84a29a53eb56.zip u-boot-imx-a9f2abd24d4184d2862b98a5826e84a29a53eb56.tar.gz u-boot-imx-a9f2abd24d4184d2862b98a5826e84a29a53eb56.tar.bz2 |
mmc: sd: extracting erase related information from sd status
Add function to read SD_STATUS information.
According to the information, get erase_timeout/erase_size/erase_offset.
Add a structure sd_ssr to include the erase related information.
Signed-off-by: Peng Fan <peng.fan@nxp.com>
Cc: Jaehoon Chung <jh80.chung@samsung.com>
Cc: Simon Glass <sjg@chromium.org>
Cc: Bin Meng <bmeng.cn@gmail.com>
Cc: Stefan Wahren <stefan.wahren@i2se.com>
Cc: Clemens Gruber <clemens.gruber@pqgruber.com>
Cc: Kever Yang <kever.yang@rock-chips.com>
Cc: Eric Nelson <eric@nelint.com>
Cc: Stephen Warren <swarren@nvidia.com>
(cherry picked from commit 3697e5992f89c923aca17d7d9174739da28cb3cd)
(cherry picked from commit be950ab9d0625ae1a23c7a5e03dde8e5a676ea80)
Diffstat (limited to 'include/mmc.h')
-rw-r--r-- | include/mmc.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/include/mmc.h b/include/mmc.h index d652c14..55e9924 100644 --- a/include/mmc.h +++ b/include/mmc.h @@ -11,6 +11,7 @@ #define _MMC_H_ #include <linux/list.h> +#include <linux/sizes.h> #include <linux/compiler.h> #include <part.h> @@ -107,6 +108,7 @@ #define SD_CMD_SWITCH_UHS18V 11 #define SD_CMD_APP_SET_BUS_WIDTH 6 +#define SD_CMD_APP_SD_STATUS 13 #define SD_CMD_ERASE_WR_BLK_START 32 #define SD_CMD_ERASE_WR_BLK_END 33 #define SD_CMD_APP_SEND_OP_COND 41 @@ -342,6 +344,12 @@ struct mmc_config { unsigned char part_type; }; +struct sd_ssr { + unsigned int au; /* In sectors */ + unsigned int erase_timeout; /* In milliseconds */ + unsigned int erase_offset; /* In milliseconds */ +}; + /* TODO struct mmc should be in mmc_private but it's hard to fix right now */ struct mmc { struct list_head link; @@ -369,6 +377,7 @@ struct mmc { uint write_bl_len; uint erase_grp_size; /* in 512-byte sectors */ uint hc_wp_grp_size; /* in 512-byte sectors */ + struct sd_ssr ssr; /* SD status register */ u64 capacity; u64 capacity_user; u64 capacity_boot; |