Lines Matching refs:cmd
87 void mmmc_trace_before_send(struct mmc *mmc, struct mmc_cmd *cmd) in mmmc_trace_before_send() argument
89 printf("CMD_SEND:%d\n", cmd->cmdidx); in mmmc_trace_before_send()
90 printf("\t\tARG\t\t\t 0x%08X\n", cmd->cmdarg); in mmmc_trace_before_send()
93 void mmmc_trace_after_send(struct mmc *mmc, struct mmc_cmd *cmd, int ret) in mmmc_trace_after_send() argument
101 switch (cmd->resp_type) { in mmmc_trace_after_send()
107 cmd->response[0]); in mmmc_trace_after_send()
111 cmd->response[0]); in mmmc_trace_after_send()
115 cmd->response[0]); in mmmc_trace_after_send()
117 cmd->response[1]); in mmmc_trace_after_send()
119 cmd->response[2]); in mmmc_trace_after_send()
121 cmd->response[3]); in mmmc_trace_after_send()
127 ptr = (u8 *)&cmd->response[i]; in mmmc_trace_after_send()
136 cmd->response[0]); in mmmc_trace_after_send()
145 void mmc_trace_state(struct mmc *mmc, struct mmc_cmd *cmd) in mmc_trace_state() argument
149 status = (cmd->response[0] & MMC_STATUS_CURR_STATE) >> 9; in mmc_trace_state()
155 int mmc_send_cmd(struct mmc *mmc, struct mmc_cmd *cmd, struct mmc_data *data) in mmc_send_cmd() argument
159 mmmc_trace_before_send(mmc, cmd); in mmc_send_cmd()
160 ret = mmc->cfg->ops->send_cmd(mmc, cmd, data); in mmc_send_cmd()
161 mmmc_trace_after_send(mmc, cmd, ret); in mmc_send_cmd()
169 struct mmc_cmd cmd; in mmc_send_status() local
172 cmd.cmdidx = MMC_CMD_SEND_STATUS; in mmc_send_status()
173 cmd.resp_type = MMC_RSP_R1; in mmc_send_status()
175 cmd.cmdarg = mmc->rca << 16; in mmc_send_status()
178 err = mmc_send_cmd(mmc, &cmd, NULL); in mmc_send_status()
180 if ((cmd.response[0] & MMC_STATUS_RDY_FOR_DATA) && in mmc_send_status()
181 (cmd.response[0] & MMC_STATUS_CURR_STATE) != in mmc_send_status()
184 else if (cmd.response[0] & MMC_STATUS_MASK) { in mmc_send_status()
187 cmd.response[0]); in mmc_send_status()
200 mmc_trace_state(mmc, &cmd); in mmc_send_status()
213 struct mmc_cmd cmd; in mmc_set_blocklen() local
218 cmd.cmdidx = MMC_CMD_SET_BLOCKLEN; in mmc_set_blocklen()
219 cmd.resp_type = MMC_RSP_R1; in mmc_set_blocklen()
220 cmd.cmdarg = len; in mmc_set_blocklen()
222 return mmc_send_cmd(mmc, &cmd, NULL); in mmc_set_blocklen()
228 struct mmc_cmd cmd; in mmc_read_blocks() local
232 cmd.cmdidx = MMC_CMD_READ_MULTIPLE_BLOCK; in mmc_read_blocks()
234 cmd.cmdidx = MMC_CMD_READ_SINGLE_BLOCK; in mmc_read_blocks()
237 cmd.cmdarg = start; in mmc_read_blocks()
239 cmd.cmdarg = start * mmc->read_bl_len; in mmc_read_blocks()
241 cmd.resp_type = MMC_RSP_R1; in mmc_read_blocks()
248 if (mmc_send_cmd(mmc, &cmd, &data)) in mmc_read_blocks()
252 cmd.cmdidx = MMC_CMD_STOP_TRANSMISSION; in mmc_read_blocks()
253 cmd.cmdarg = 0; in mmc_read_blocks()
254 cmd.resp_type = MMC_RSP_R1b; in mmc_read_blocks()
255 if (mmc_send_cmd(mmc, &cmd, NULL)) { in mmc_read_blocks()
270 struct mmc_cmd cmd; in mmc_read_blocks_prepare() local
274 cmd.cmdidx = MMC_CMD_READ_MULTIPLE_BLOCK; in mmc_read_blocks_prepare()
276 cmd.cmdidx = MMC_CMD_READ_SINGLE_BLOCK; in mmc_read_blocks_prepare()
279 cmd.cmdarg = start; in mmc_read_blocks_prepare()
281 cmd.cmdarg = start * mmc->read_bl_len; in mmc_read_blocks_prepare()
283 cmd.resp_type = MMC_RSP_R1; in mmc_read_blocks_prepare()
290 if (mmc_send_cmd_prepare(mmc, &cmd, &data)) in mmc_read_blocks_prepare()
480 struct mmc_cmd cmd; in mmc_go_idle() local
485 cmd.cmdidx = MMC_CMD_GO_IDLE_STATE; in mmc_go_idle()
486 cmd.cmdarg = 0; in mmc_go_idle()
487 cmd.resp_type = MMC_RSP_NONE; in mmc_go_idle()
489 err = mmc_send_cmd(mmc, &cmd, NULL); in mmc_go_idle()
504 struct mmc_cmd cmd; in sd_send_op_cond() local
507 cmd.cmdidx = MMC_CMD_APP_CMD; in sd_send_op_cond()
508 cmd.resp_type = MMC_RSP_R1; in sd_send_op_cond()
509 cmd.cmdarg = 0; in sd_send_op_cond()
511 err = mmc_send_cmd(mmc, &cmd, NULL); in sd_send_op_cond()
516 cmd.cmdidx = SD_CMD_APP_SEND_OP_COND; in sd_send_op_cond()
517 cmd.resp_type = MMC_RSP_R3; in sd_send_op_cond()
526 cmd.cmdarg = mmc_host_is_spi(mmc) ? 0 : in sd_send_op_cond()
530 cmd.cmdarg |= OCR_HCS; in sd_send_op_cond()
532 err = mmc_send_cmd(mmc, &cmd, NULL); in sd_send_op_cond()
537 if (cmd.response[0] & OCR_BUSY) in sd_send_op_cond()
550 cmd.cmdidx = MMC_CMD_SPI_READ_OCR; in sd_send_op_cond()
551 cmd.resp_type = MMC_RSP_R3; in sd_send_op_cond()
552 cmd.cmdarg = 0; in sd_send_op_cond()
554 err = mmc_send_cmd(mmc, &cmd, NULL); in sd_send_op_cond()
560 mmc->ocr = cmd.response[0]; in sd_send_op_cond()
571 struct mmc_cmd cmd; in mmc_send_op_cond_iter() local
574 cmd.cmdidx = MMC_CMD_SEND_OP_COND; in mmc_send_op_cond_iter()
575 cmd.resp_type = MMC_RSP_R3; in mmc_send_op_cond_iter()
576 cmd.cmdarg = 0; in mmc_send_op_cond_iter()
578 cmd.cmdarg = OCR_HCS | in mmc_send_op_cond_iter()
583 err = mmc_send_cmd(mmc, &cmd, NULL); in mmc_send_op_cond_iter()
586 mmc->ocr = cmd.response[0]; in mmc_send_op_cond_iter()
614 struct mmc_cmd cmd; in mmc_complete_op_cond() local
638 cmd.cmdidx = MMC_CMD_SPI_READ_OCR; in mmc_complete_op_cond()
639 cmd.resp_type = MMC_RSP_R3; in mmc_complete_op_cond()
640 cmd.cmdarg = 0; in mmc_complete_op_cond()
642 err = mmc_send_cmd(mmc, &cmd, NULL); in mmc_complete_op_cond()
647 mmc->ocr = cmd.response[0]; in mmc_complete_op_cond()
661 struct mmc_cmd cmd; in mmc_send_ext_csd() local
675 cmd.cmdidx = MMC_CMD_SEND_EXT_CSD; in mmc_send_ext_csd()
676 cmd.resp_type = MMC_RSP_R1; in mmc_send_ext_csd()
677 cmd.cmdarg = 0; in mmc_send_ext_csd()
684 err = mmc_send_cmd(mmc, &cmd, &data); in mmc_send_ext_csd()
702 struct mmc_cmd cmd; in mmc_poll_for_busy() local
708 cmd.cmdidx = MMC_CMD_SEND_STATUS; in mmc_poll_for_busy()
709 cmd.resp_type = MMC_RSP_R1; in mmc_poll_for_busy()
710 cmd.cmdarg = mmc->rca << 16; in mmc_poll_for_busy()
723 ret = mmc_send_cmd(mmc, &cmd, NULL); in mmc_poll_for_busy()
728 if (cmd.response[0] & MMC_STATUS_SWITCH_ERROR) in mmc_poll_for_busy()
730 busy = (cmd.response[0] & MMC_STATUS_CURR_STATE) == in mmc_poll_for_busy()
744 struct mmc_cmd cmd; in __mmc_switch() local
748 cmd.cmdidx = MMC_CMD_SWITCH; in __mmc_switch()
749 cmd.resp_type = MMC_RSP_R1b; in __mmc_switch()
750 cmd.cmdarg = (MMC_SWITCH_MODE_WRITE_BYTE << 24) | in __mmc_switch()
755 ret = mmc_send_cmd(mmc, &cmd, NULL); in __mmc_switch()
875 struct mmc_cmd cmd; in mmc_send_tuning() local
895 cmd.cmdidx = opcode; in mmc_send_tuning()
896 cmd.resp_type = MMC_RSP_R1; in mmc_send_tuning()
897 cmd.cmdarg = 0; in mmc_send_tuning()
904 err = mmc_send_cmd(mmc, &cmd, &data); in mmc_send_tuning()
1494 struct mmc_cmd cmd; local
1498 cmd.cmdidx = SD_CMD_SWITCH_FUNC;
1499 cmd.resp_type = MMC_RSP_R1;
1500 cmd.cmdarg = (mode << 31) | 0xffffff;
1501 cmd.cmdarg &= ~(0xf << (group * 4));
1502 cmd.cmdarg |= value << (group * 4);
1509 return mmc_send_cmd(mmc, &cmd, &data);
1516 struct mmc_cmd cmd; local
1528 cmd.cmdidx = MMC_CMD_APP_CMD;
1529 cmd.resp_type = MMC_RSP_R1;
1530 cmd.cmdarg = mmc->rca << 16;
1532 err = mmc_send_cmd(mmc, &cmd, NULL);
1537 cmd.cmdidx = SD_CMD_APP_SEND_SCR;
1538 cmd.resp_type = MMC_RSP_R1;
1539 cmd.cmdarg = 0;
1549 err = mmc_send_cmd(mmc, &cmd, &data);
1626 struct mmc_cmd cmd; local
1632 cmd.cmdidx = MMC_CMD_APP_CMD;
1633 cmd.resp_type = MMC_RSP_R1;
1634 cmd.cmdarg = mmc->rca << 16;
1636 err = mmc_send_cmd(mmc, &cmd, NULL);
1640 cmd.cmdidx = SD_CMD_APP_SD_STATUS;
1641 cmd.resp_type = MMC_RSP_R1;
1642 cmd.cmdarg = 0;
1650 err = mmc_send_cmd(mmc, &cmd, &data);
1736 struct mmc_cmd cmd; local
1744 cmd.cmdidx = MMC_CMD_SPI_CRC_ON_OFF;
1745 cmd.resp_type = MMC_RSP_R1;
1746 cmd.cmdarg = 1;
1747 err = mmc_send_cmd(mmc, &cmd, NULL);
1755 cmd.cmdidx = mmc_host_is_spi(mmc) ? MMC_CMD_SEND_CID :
1757 cmd.resp_type = MMC_RSP_R2;
1758 cmd.cmdarg = 0;
1760 err = mmc_send_cmd(mmc, &cmd, NULL);
1765 memcpy(mmc->cid, cmd.response, 16);
1773 cmd.cmdidx = SD_CMD_SEND_RELATIVE_ADDR;
1774 cmd.cmdarg = mmc->rca << 16;
1775 cmd.resp_type = MMC_RSP_R6;
1777 err = mmc_send_cmd(mmc, &cmd, NULL);
1783 mmc->rca = (cmd.response[0] >> 16) & 0xffff;
1787 cmd.cmdidx = MMC_CMD_SEND_CSD;
1788 cmd.resp_type = MMC_RSP_R2;
1789 cmd.cmdarg = mmc->rca << 16;
1791 err = mmc_send_cmd(mmc, &cmd, NULL);
1796 mmc->csd[0] = cmd.response[0];
1797 mmc->csd[1] = cmd.response[1];
1798 mmc->csd[2] = cmd.response[2];
1799 mmc->csd[3] = cmd.response[3];
1802 int version = (cmd.response[0] >> 26) & 0xf;
1827 freq = fbase[(cmd.response[0] & 0x7)];
1828 mult = multipliers[((cmd.response[0] >> 3) & 0xf)];
1832 mmc->dsr_imp = ((cmd.response[1] >> 12) & 0x1);
1833 mmc->read_bl_len = 1 << ((cmd.response[1] >> 16) & 0xf);
1838 mmc->write_bl_len = 1 << ((cmd.response[3] >> 22) & 0xf);
1864 cmd.cmdidx = MMC_CMD_SET_DSR;
1865 cmd.cmdarg = (mmc->dsr & 0xffff) << 16;
1866 cmd.resp_type = MMC_RSP_NONE;
1867 if (mmc_send_cmd(mmc, &cmd, NULL))
1873 cmd.cmdidx = MMC_CMD_SELECT_CARD;
1874 cmd.resp_type = MMC_RSP_R1;
1875 cmd.cmdarg = mmc->rca << 16;
1876 err = mmc_send_cmd(mmc, &cmd, NULL);
2062 cmd.cmdidx = MMC_CMD_APP_CMD;
2063 cmd.resp_type = MMC_RSP_R1;
2064 cmd.cmdarg = mmc->rca << 16;
2066 err = mmc_send_cmd(mmc, &cmd, NULL);
2070 cmd.cmdidx = SD_CMD_APP_SET_BUS_WIDTH;
2071 cmd.resp_type = MMC_RSP_R1;
2072 cmd.cmdarg = 2;
2073 err = mmc_send_cmd(mmc, &cmd, NULL);
2133 struct mmc_cmd cmd; local
2136 cmd.cmdidx = SD_CMD_SEND_IF_COND;
2138 cmd.cmdarg = ((mmc->cfg->voltages & 0xff8000) != 0) << 8 | 0xaa;
2139 cmd.resp_type = MMC_RSP_R7;
2141 err = mmc_send_cmd(mmc, &cmd, NULL);
2146 if ((cmd.response[0] & 0xff) != 0xaa)
2196 struct mmc_cmd cmd; local
2199 memset(&cmd, 0, sizeof(struct mmc_cmd));
2202 cmd.cmdidx = MMC_CMD_SELECT_CARD;
2203 cmd.resp_type = MMC_RSP_R1;
2204 cmd.cmdarg = mmc->rca << 16;
2205 err = mmc_send_cmd(mmc, &cmd, NULL);