diff options
| author | Girish K S <girish.shivananjappa@linaro.org> | 2011-10-13 12:04:16 +0530 | 
|---|---|---|
| committer | Chris Ball <cjb@laptop.org> | 2011-10-26 16:32:23 -0400 | 
| commit | bec8726abc72bf30d2743a722aa37cd69e7a0580 (patch) | |
| tree | eed4a3c441ff64f5719b021fce419de0fc5196d9 /include/linux/mmc/card.h | |
| parent | 326adda53a50ece492c3edaa60afc26fba5e3232 (diff) | |
mmc: core: Add Power Off Notify Feature eMMC 4.5
This patch adds support for the power off notify feature, available in
eMMC 4.5 devices. If the host has support for this feature, then the
mmc core will notify the device by setting the POWER_OFF_NOTIFICATION
byte in the extended csd register with a value of 1 (POWER_ON).
For suspend mode short timeout is used, whereas for the normal poweroff
long timeout is used.
Signed-off-by: Girish K S <girish.shivananjappa@linaro.org>
Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
Signed-off-by: Chris Ball <cjb@laptop.org>
Diffstat (limited to 'include/linux/mmc/card.h')
| -rw-r--r-- | include/linux/mmc/card.h | 6 | 
1 files changed, 6 insertions, 0 deletions
| diff --git a/include/linux/mmc/card.h b/include/linux/mmc/card.h index 2fcd24ccd38c..711c3f8bfabd 100644 --- a/include/linux/mmc/card.h +++ b/include/linux/mmc/card.h @@ -55,6 +55,7 @@ struct mmc_ext_csd {  	unsigned int		part_time;		/* Units: ms */  	unsigned int		sa_timeout;		/* Units: 100ns */  	unsigned int		generic_cmd6_time;	/* Units: 10ms */ +	unsigned int            power_off_longtime;     /* Units: ms */  	unsigned int		hs_max_dtr;  	unsigned int		sectors;  	unsigned int		card_type; @@ -209,6 +210,11 @@ struct mmc_card {  #define MMC_QUIRK_BLK_NO_CMD23	(1<<7)		/* Avoid CMD23 for regular multiblock */  #define MMC_QUIRK_BROKEN_BYTE_MODE_512 (1<<8)	/* Avoid sending 512 bytes in */  						/* byte mode */ +	unsigned int    poweroff_notify_state;	/* eMMC4.5 notify feature */ +#define MMC_NO_POWER_NOTIFICATION	0 +#define MMC_POWERED_ON			1 +#define MMC_POWEROFF_SHORT		2 +#define MMC_POWEROFF_LONG		3  	unsigned int		erase_size;	/* erase size in sectors */   	unsigned int		erase_shift;	/* if erase unit is power 2 */ | 
