mmc: core: Parse the SD SCR register for support of CMD48/49 and CMD58/59
In SD spec v4.x the support for CMD48/49 and CMD58/59 were introduced as optional features. To let the card announce whether it supports the commands, the SCR register has been extended with corresponding support bits. Let's parse and store this information for later use. Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> Reviewed-by: Linus Walleij <linus.walleij@linaro.org> Reviewed-by: Shawn Lin <shawn.lin@rock-chips.com> Acked-by: Avri Altman <avri.altman@wdc.com> Link: https://lore.kernel.org/r/20210504161222.101536-9-ulf.hansson@linaro.org
This commit is contained in:
parent
41e84fe164
commit
dbea8ae9fe
|
@ -222,7 +222,9 @@ static int mmc_decode_scr(struct mmc_card *card)
|
|||
else
|
||||
card->erased_byte = 0x0;
|
||||
|
||||
if (scr->sda_spec3)
|
||||
if (scr->sda_spec4)
|
||||
scr->cmds = UNSTUFF_BITS(resp, 32, 4);
|
||||
else if (scr->sda_spec3)
|
||||
scr->cmds = UNSTUFF_BITS(resp, 32, 2);
|
||||
|
||||
/* SD Spec says: any SD Card shall set at least bits 0 and 2 */
|
||||
|
|
|
@ -139,6 +139,8 @@ struct sd_scr {
|
|||
unsigned char cmds;
|
||||
#define SD_SCR_CMD20_SUPPORT (1<<0)
|
||||
#define SD_SCR_CMD23_SUPPORT (1<<1)
|
||||
#define SD_SCR_CMD48_SUPPORT (1<<2)
|
||||
#define SD_SCR_CMD58_SUPPORT (1<<3)
|
||||
};
|
||||
|
||||
struct sd_ssr {
|
||||
|
|
Loading…
Reference in New Issue