Lines Matching refs:cmd
141 static int stm32_sdmmc2_send_cmd_req(struct mmc_cmd *cmd);
142 static int stm32_sdmmc2_send_cmd(struct mmc_cmd *cmd);
227 static int stm32_sdmmc2_send_cmd_req(struct mmc_cmd *cmd) in stm32_sdmmc2_send_cmd_req() argument
236 if (cmd == NULL) { in stm32_sdmmc2_send_cmd_req()
241 arg_reg = cmd->cmd_arg; in stm32_sdmmc2_send_cmd_req()
247 cmd_reg = cmd->cmd_idx | SDMMC_CMDR_CPSMEN; in stm32_sdmmc2_send_cmd_req()
249 if (cmd->resp_type == 0U) { in stm32_sdmmc2_send_cmd_req()
253 if ((cmd->resp_type & MMC_RSP_48) != 0U) { in stm32_sdmmc2_send_cmd_req()
254 if ((cmd->resp_type & MMC_RSP_136) != 0U) { in stm32_sdmmc2_send_cmd_req()
257 } else if ((cmd->resp_type & MMC_RSP_CRC) != 0U) { in stm32_sdmmc2_send_cmd_req()
266 switch (cmd->cmd_idx) { in stm32_sdmmc2_send_cmd_req()
321 next_cmd_is_acmd = (cmd->cmd_idx == MMC_CMD(55)); in stm32_sdmmc2_send_cmd_req()
334 if ((cmd->resp_type & MMC_RSP_BUSY) != 0U) { in stm32_sdmmc2_send_cmd_req()
350 __func__, cmd->cmd_idx, status); in stm32_sdmmc2_send_cmd_req()
365 if (!((cmd->cmd_idx == MMC_CMD(1)) || in stm32_sdmmc2_send_cmd_req()
366 (cmd->cmd_idx == MMC_CMD(13)) || in stm32_sdmmc2_send_cmd_req()
367 ((cmd->cmd_idx == MMC_CMD(8)) && in stm32_sdmmc2_send_cmd_req()
368 (cmd->resp_type == MMC_RESPONSE_R7)))) { in stm32_sdmmc2_send_cmd_req()
370 __func__, cmd->cmd_idx, status); in stm32_sdmmc2_send_cmd_req()
375 __func__, cmd->cmd_idx, status); in stm32_sdmmc2_send_cmd_req()
382 if ((cmd->cmd_idx == MMC_CMD(9)) && in stm32_sdmmc2_send_cmd_req()
385 cmd->resp_data[0] = mmio_read_32(base + SDMMC_RESP4R); in stm32_sdmmc2_send_cmd_req()
386 cmd->resp_data[1] = mmio_read_32(base + SDMMC_RESP3R); in stm32_sdmmc2_send_cmd_req()
387 cmd->resp_data[2] = mmio_read_32(base + SDMMC_RESP2R); in stm32_sdmmc2_send_cmd_req()
388 cmd->resp_data[3] = mmio_read_32(base + SDMMC_RESP1R); in stm32_sdmmc2_send_cmd_req()
390 cmd->resp_data[0] = mmio_read_32(base + SDMMC_RESP1R); in stm32_sdmmc2_send_cmd_req()
393 cmd->resp_data[1] = mmio_read_32(base + in stm32_sdmmc2_send_cmd_req()
395 cmd->resp_data[2] = mmio_read_32(base + in stm32_sdmmc2_send_cmd_req()
397 cmd->resp_data[3] = mmio_read_32(base + in stm32_sdmmc2_send_cmd_req()
416 __func__, cmd->cmd_idx, status); in stm32_sdmmc2_send_cmd_req()
428 cmd->cmd_idx, status); in stm32_sdmmc2_send_cmd_req()
447 static int stm32_sdmmc2_send_cmd(struct mmc_cmd *cmd) in stm32_sdmmc2_send_cmd() argument
452 assert(cmd != NULL); in stm32_sdmmc2_send_cmd()
455 err = stm32_sdmmc2_send_cmd_req(cmd); in stm32_sdmmc2_send_cmd()
460 if ((cmd->cmd_idx == MMC_CMD(1)) || in stm32_sdmmc2_send_cmd()
461 (cmd->cmd_idx == MMC_CMD(13))) { in stm32_sdmmc2_send_cmd()
466 if (cmd->cmd_idx != MMC_CMD(8)) { in stm32_sdmmc2_send_cmd()
468 cmd->cmd_idx, retry + 1U, err); in stm32_sdmmc2_send_cmd()
531 struct mmc_cmd cmd; in stm32_sdmmc2_prepare() local
558 zeromem(&cmd, sizeof(struct mmc_cmd)); in stm32_sdmmc2_prepare()
560 cmd.cmd_idx = MMC_CMD(16); in stm32_sdmmc2_prepare()
561 cmd.cmd_arg = arg_size; in stm32_sdmmc2_prepare()
562 cmd.resp_type = MMC_RESPONSE_R1; in stm32_sdmmc2_prepare()
564 ret = stm32_sdmmc2_send_cmd(&cmd); in stm32_sdmmc2_prepare()