diff options
author | Jaehoon Chung <jh80.chung@samsung.com> | 2011-10-18 01:26:42 -0400 |
---|---|---|
committer | Chris Ball <cjb@laptop.org> | 2011-10-26 16:32:29 -0400 |
commit | eb0d8f135b6730d6d0324a064664d121334290e7 (patch) | |
tree | 74876f5d20163bb5e9b185d9357237e1f22a2262 /include/linux/mmc | |
parent | 881d1c25f765938a95def5afe39486ce39f9fc96 (diff) |
mmc: core: support HPI send command
HPI command is defined in eMMC4.41.
This feature is important for eMMC4.5 devices.
Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
Signed-off-by: Chris Ball <cjb@laptop.org>
Diffstat (limited to 'include/linux/mmc')
-rw-r--r-- | include/linux/mmc/card.h | 4 | ||||
-rw-r--r-- | include/linux/mmc/core.h | 1 | ||||
-rw-r--r-- | include/linux/mmc/mmc.h | 3 |
3 files changed, 8 insertions, 0 deletions
diff --git a/include/linux/mmc/card.h b/include/linux/mmc/card.h index 32492b78aed6..1684d92a8015 100644 --- a/include/linux/mmc/card.h +++ b/include/linux/mmc/card.h | |||
@@ -69,10 +69,14 @@ struct mmc_ext_csd { | |||
69 | unsigned long long enhanced_area_offset; /* Units: Byte */ | 69 | unsigned long long enhanced_area_offset; /* Units: Byte */ |
70 | unsigned int enhanced_area_size; /* Units: KB */ | 70 | unsigned int enhanced_area_size; /* Units: KB */ |
71 | unsigned int cache_size; /* Units: KB */ | 71 | unsigned int cache_size; /* Units: KB */ |
72 | bool hpi_en; /* HPI enablebit */ | ||
73 | bool hpi; /* HPI support bit */ | ||
74 | unsigned int hpi_cmd; /* cmd used as HPI */ | ||
72 | u8 raw_partition_support; /* 160 */ | 75 | u8 raw_partition_support; /* 160 */ |
73 | u8 raw_erased_mem_count; /* 181 */ | 76 | u8 raw_erased_mem_count; /* 181 */ |
74 | u8 raw_ext_csd_structure; /* 194 */ | 77 | u8 raw_ext_csd_structure; /* 194 */ |
75 | u8 raw_card_type; /* 196 */ | 78 | u8 raw_card_type; /* 196 */ |
79 | u8 out_of_int_time; /* 198 */ | ||
76 | u8 raw_s_a_timeout; /* 217 */ | 80 | u8 raw_s_a_timeout; /* 217 */ |
77 | u8 raw_hc_erase_gap_size; /* 221 */ | 81 | u8 raw_hc_erase_gap_size; /* 221 */ |
78 | u8 raw_erase_timeout_mult; /* 223 */ | 82 | u8 raw_erase_timeout_mult; /* 223 */ |
diff --git a/include/linux/mmc/core.h b/include/linux/mmc/core.h index 67bac374d122..174a844a5dda 100644 --- a/include/linux/mmc/core.h +++ b/include/linux/mmc/core.h | |||
@@ -136,6 +136,7 @@ struct mmc_async_req; | |||
136 | 136 | ||
137 | extern struct mmc_async_req *mmc_start_req(struct mmc_host *, | 137 | extern struct mmc_async_req *mmc_start_req(struct mmc_host *, |
138 | struct mmc_async_req *, int *); | 138 | struct mmc_async_req *, int *); |
139 | extern int mmc_interrupt_hpi(struct mmc_card *); | ||
139 | extern void mmc_wait_for_req(struct mmc_host *, struct mmc_request *); | 140 | extern void mmc_wait_for_req(struct mmc_host *, struct mmc_request *); |
140 | extern int mmc_wait_for_cmd(struct mmc_host *, struct mmc_command *, int); | 141 | extern int mmc_wait_for_cmd(struct mmc_host *, struct mmc_command *, int); |
141 | extern int mmc_app_cmd(struct mmc_host *, struct mmc_card *); | 142 | extern int mmc_app_cmd(struct mmc_host *, struct mmc_card *); |
diff --git a/include/linux/mmc/mmc.h b/include/linux/mmc/mmc.h index 160e4c5bdae0..0e7135697d11 100644 --- a/include/linux/mmc/mmc.h +++ b/include/linux/mmc/mmc.h | |||
@@ -276,6 +276,7 @@ struct _mmc_csd { | |||
276 | #define EXT_CSD_GP_SIZE_MULT 143 /* R/W */ | 276 | #define EXT_CSD_GP_SIZE_MULT 143 /* R/W */ |
277 | #define EXT_CSD_PARTITION_ATTRIBUTE 156 /* R/W */ | 277 | #define EXT_CSD_PARTITION_ATTRIBUTE 156 /* R/W */ |
278 | #define EXT_CSD_PARTITION_SUPPORT 160 /* RO */ | 278 | #define EXT_CSD_PARTITION_SUPPORT 160 /* RO */ |
279 | #define EXT_CSD_HPI_MGMT 161 /* R/W */ | ||
279 | #define EXT_CSD_RST_N_FUNCTION 162 /* R/W */ | 280 | #define EXT_CSD_RST_N_FUNCTION 162 /* R/W */ |
280 | #define EXT_CSD_SANITIZE_START 165 /* W */ | 281 | #define EXT_CSD_SANITIZE_START 165 /* W */ |
281 | #define EXT_CSD_WR_REL_PARAM 166 /* RO */ | 282 | #define EXT_CSD_WR_REL_PARAM 166 /* RO */ |
@@ -288,6 +289,7 @@ struct _mmc_csd { | |||
288 | #define EXT_CSD_REV 192 /* RO */ | 289 | #define EXT_CSD_REV 192 /* RO */ |
289 | #define EXT_CSD_STRUCTURE 194 /* RO */ | 290 | #define EXT_CSD_STRUCTURE 194 /* RO */ |
290 | #define EXT_CSD_CARD_TYPE 196 /* RO */ | 291 | #define EXT_CSD_CARD_TYPE 196 /* RO */ |
292 | #define EXT_CSD_OUT_OF_INTERRUPT_TIME 198 /* RO */ | ||
291 | #define EXT_CSD_PART_SWITCH_TIME 199 /* RO */ | 293 | #define EXT_CSD_PART_SWITCH_TIME 199 /* RO */ |
292 | #define EXT_CSD_PWR_CL_52_195 200 /* RO */ | 294 | #define EXT_CSD_PWR_CL_52_195 200 /* RO */ |
293 | #define EXT_CSD_PWR_CL_26_195 201 /* RO */ | 295 | #define EXT_CSD_PWR_CL_26_195 201 /* RO */ |
@@ -311,6 +313,7 @@ struct _mmc_csd { | |||
311 | #define EXT_CSD_POWER_OFF_LONG_TIME 247 /* RO */ | 313 | #define EXT_CSD_POWER_OFF_LONG_TIME 247 /* RO */ |
312 | #define EXT_CSD_GENERIC_CMD6_TIME 248 /* RO */ | 314 | #define EXT_CSD_GENERIC_CMD6_TIME 248 /* RO */ |
313 | #define EXT_CSD_CACHE_SIZE 249 /* RO, 4 bytes */ | 315 | #define EXT_CSD_CACHE_SIZE 249 /* RO, 4 bytes */ |
316 | #define EXT_CSD_HPI_FEATURES 503 /* RO */ | ||
314 | 317 | ||
315 | /* | 318 | /* |
316 | * EXT_CSD field definitions | 319 | * EXT_CSD field definitions |