mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-10-03 18:10:42 +09:00
mmc: sdhci: Update sdhci_send_command() to handle HS200
This patch updates sdhci_send_command() to handle MMC HS200 tuning command. Signed-off-by: Siva Durga Prasad Paladugu <siva.durga.paladugu@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
This commit is contained in:
parent
ecb4d7481e
commit
434f9d454e
@ -161,7 +161,8 @@ static int sdhci_send_command(struct mmc *mmc, struct mmc_cmd *cmd,
|
|||||||
/* We shouldn't wait for data inihibit for stop commands, even
|
/* We shouldn't wait for data inihibit for stop commands, even
|
||||||
though they might use busy signaling */
|
though they might use busy signaling */
|
||||||
if (cmd->cmdidx == MMC_CMD_STOP_TRANSMISSION ||
|
if (cmd->cmdidx == MMC_CMD_STOP_TRANSMISSION ||
|
||||||
cmd->cmdidx == MMC_CMD_SEND_TUNING_BLOCK)
|
cmd->cmdidx == MMC_CMD_SEND_TUNING_BLOCK ||
|
||||||
|
cmd->cmdidx == MMC_CMD_SEND_TUNING_BLOCK_HS200)
|
||||||
mask &= ~SDHCI_DATA_INHIBIT;
|
mask &= ~SDHCI_DATA_INHIBIT;
|
||||||
|
|
||||||
while (sdhci_readl(host, SDHCI_PRESENT_STATE) & mask) {
|
while (sdhci_readl(host, SDHCI_PRESENT_STATE) & mask) {
|
||||||
@ -183,7 +184,8 @@ static int sdhci_send_command(struct mmc *mmc, struct mmc_cmd *cmd,
|
|||||||
sdhci_writel(host, SDHCI_INT_ALL_MASK, SDHCI_INT_STATUS);
|
sdhci_writel(host, SDHCI_INT_ALL_MASK, SDHCI_INT_STATUS);
|
||||||
|
|
||||||
mask = SDHCI_INT_RESPONSE;
|
mask = SDHCI_INT_RESPONSE;
|
||||||
if (cmd->cmdidx == MMC_CMD_SEND_TUNING_BLOCK)
|
if (cmd->cmdidx == MMC_CMD_SEND_TUNING_BLOCK ||
|
||||||
|
cmd->cmdidx == MMC_CMD_SEND_TUNING_BLOCK_HS200)
|
||||||
mask = SDHCI_INT_DATA_AVAIL;
|
mask = SDHCI_INT_DATA_AVAIL;
|
||||||
|
|
||||||
if (!(cmd->resp_type & MMC_RSP_PRESENT))
|
if (!(cmd->resp_type & MMC_RSP_PRESENT))
|
||||||
@ -201,7 +203,8 @@ static int sdhci_send_command(struct mmc *mmc, struct mmc_cmd *cmd,
|
|||||||
flags |= SDHCI_CMD_CRC;
|
flags |= SDHCI_CMD_CRC;
|
||||||
if (cmd->resp_type & MMC_RSP_OPCODE)
|
if (cmd->resp_type & MMC_RSP_OPCODE)
|
||||||
flags |= SDHCI_CMD_INDEX;
|
flags |= SDHCI_CMD_INDEX;
|
||||||
if (data || cmd->cmdidx == MMC_CMD_SEND_TUNING_BLOCK)
|
if (data || cmd->cmdidx == MMC_CMD_SEND_TUNING_BLOCK ||
|
||||||
|
cmd->cmdidx == MMC_CMD_SEND_TUNING_BLOCK_HS200)
|
||||||
flags |= SDHCI_CMD_DATA;
|
flags |= SDHCI_CMD_DATA;
|
||||||
|
|
||||||
/* Set Transfer mode regarding to data flag */
|
/* Set Transfer mode regarding to data flag */
|
||||||
|
Loading…
Reference in New Issue
Block a user