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()
227 struct mmc_cmd cmd = {0}; in mmc_set_blockcount() local
229 cmd.cmdidx = MMC_CMD_SET_BLOCK_COUNT; in mmc_set_blockcount()
230 cmd.cmdarg = blkcnt & 0x0000FFFF; in mmc_set_blockcount()
232 cmd.cmdarg |= 1 << 31; in mmc_set_blockcount()
233 cmd.resp_type = MMC_RSP_R1; in mmc_set_blockcount()
235 return mmc_send_cmd(mmc, &cmd, NULL); in mmc_set_blockcount()
241 struct mmc_cmd cmd; in mmc_read_blocks() local
245 cmd.cmdidx = MMC_CMD_READ_MULTIPLE_BLOCK; in mmc_read_blocks()
247 cmd.cmdidx = MMC_CMD_READ_SINGLE_BLOCK; in mmc_read_blocks()
250 cmd.cmdarg = start; in mmc_read_blocks()
252 cmd.cmdarg = start * mmc->read_bl_len; in mmc_read_blocks()
254 cmd.resp_type = MMC_RSP_R1; in mmc_read_blocks()
261 if (mmc_send_cmd(mmc, &cmd, &data)) in mmc_read_blocks()
265 cmd.cmdidx = MMC_CMD_STOP_TRANSMISSION; in mmc_read_blocks()
266 cmd.cmdarg = 0; in mmc_read_blocks()
267 cmd.resp_type = MMC_RSP_R1b; in mmc_read_blocks()
268 if (mmc_send_cmd(mmc, &cmd, NULL)) { in mmc_read_blocks()
283 struct mmc_cmd cmd; in mmc_read_blocks_prepare() local
288 cmd.cmdidx = MMC_CMD_READ_MULTIPLE_BLOCK; in mmc_read_blocks_prepare()
290 cmd.cmdidx = MMC_CMD_READ_SINGLE_BLOCK; in mmc_read_blocks_prepare()
294 cmd.cmdarg = start; in mmc_read_blocks_prepare()
296 cmd.cmdarg = start * mmc->read_bl_len; in mmc_read_blocks_prepare()
298 cmd.resp_type = MMC_RSP_R1; in mmc_read_blocks_prepare()
305 if (mmc_send_cmd_prepare(mmc, &cmd, &data)) in mmc_read_blocks_prepare()
495 struct mmc_cmd cmd; in mmc_go_idle() local
500 cmd.cmdidx = MMC_CMD_GO_IDLE_STATE; in mmc_go_idle()
501 cmd.cmdarg = 0; in mmc_go_idle()
502 cmd.resp_type = MMC_RSP_NONE; in mmc_go_idle()
504 err = mmc_send_cmd(mmc, &cmd, NULL); in mmc_go_idle()
519 struct mmc_cmd cmd; in sd_send_op_cond() local
522 cmd.cmdidx = MMC_CMD_APP_CMD; in sd_send_op_cond()
523 cmd.resp_type = MMC_RSP_R1; in sd_send_op_cond()
524 cmd.cmdarg = 0; in sd_send_op_cond()
526 err = mmc_send_cmd(mmc, &cmd, NULL); in sd_send_op_cond()
531 cmd.cmdidx = SD_CMD_APP_SEND_OP_COND; in sd_send_op_cond()
532 cmd.resp_type = MMC_RSP_R3; in sd_send_op_cond()
541 cmd.cmdarg = mmc_host_is_spi(mmc) ? 0 : in sd_send_op_cond()
545 cmd.cmdarg |= OCR_HCS; in sd_send_op_cond()
547 err = mmc_send_cmd(mmc, &cmd, NULL); in sd_send_op_cond()
552 if (cmd.response[0] & OCR_BUSY) in sd_send_op_cond()
565 cmd.cmdidx = MMC_CMD_SPI_READ_OCR; in sd_send_op_cond()
566 cmd.resp_type = MMC_RSP_R3; in sd_send_op_cond()
567 cmd.cmdarg = 0; in sd_send_op_cond()
569 err = mmc_send_cmd(mmc, &cmd, NULL); in sd_send_op_cond()
575 mmc->ocr = cmd.response[0]; in sd_send_op_cond()
586 struct mmc_cmd cmd; in mmc_send_op_cond_iter() local
589 cmd.cmdidx = MMC_CMD_SEND_OP_COND; in mmc_send_op_cond_iter()
590 cmd.resp_type = MMC_RSP_R3; in mmc_send_op_cond_iter()
591 cmd.cmdarg = 0; in mmc_send_op_cond_iter()
593 cmd.cmdarg = OCR_HCS | in mmc_send_op_cond_iter()
598 err = mmc_send_cmd(mmc, &cmd, NULL); in mmc_send_op_cond_iter()
601 mmc->ocr = cmd.response[0]; in mmc_send_op_cond_iter()
629 struct mmc_cmd cmd; in mmc_complete_op_cond() local
653 cmd.cmdidx = MMC_CMD_SPI_READ_OCR; in mmc_complete_op_cond()
654 cmd.resp_type = MMC_RSP_R3; in mmc_complete_op_cond()
655 cmd.cmdarg = 0; in mmc_complete_op_cond()
657 err = mmc_send_cmd(mmc, &cmd, NULL); in mmc_complete_op_cond()
662 mmc->ocr = cmd.response[0]; in mmc_complete_op_cond()
676 struct mmc_cmd cmd; in mmc_send_ext_csd() local
690 cmd.cmdidx = MMC_CMD_SEND_EXT_CSD; in mmc_send_ext_csd()
691 cmd.resp_type = MMC_RSP_R1; in mmc_send_ext_csd()
692 cmd.cmdarg = 0; in mmc_send_ext_csd()
699 err = mmc_send_cmd(mmc, &cmd, &data); in mmc_send_ext_csd()
717 struct mmc_cmd cmd; in mmc_poll_for_busy() local
723 cmd.cmdidx = MMC_CMD_SEND_STATUS; in mmc_poll_for_busy()
724 cmd.resp_type = MMC_RSP_R1; in mmc_poll_for_busy()
725 cmd.cmdarg = mmc->rca << 16; in mmc_poll_for_busy()
738 ret = mmc_send_cmd(mmc, &cmd, NULL); in mmc_poll_for_busy()
743 if (cmd.response[0] & MMC_STATUS_SWITCH_ERROR) in mmc_poll_for_busy()
745 busy = (cmd.response[0] & MMC_STATUS_CURR_STATE) == in mmc_poll_for_busy()
759 struct mmc_cmd cmd; in __mmc_switch() local
763 cmd.cmdidx = MMC_CMD_SWITCH; in __mmc_switch()
764 cmd.resp_type = MMC_RSP_R1b; in __mmc_switch()
765 cmd.cmdarg = (MMC_SWITCH_MODE_WRITE_BYTE << 24) | in __mmc_switch()
770 ret = mmc_send_cmd(mmc, &cmd, NULL); in __mmc_switch()
890 struct mmc_cmd cmd; in mmc_send_tuning() local
910 cmd.cmdidx = opcode; in mmc_send_tuning()
911 cmd.resp_type = MMC_RSP_R1; in mmc_send_tuning()
912 cmd.cmdarg = 0; in mmc_send_tuning()
919 err = mmc_send_cmd(mmc, &cmd, &data); in mmc_send_tuning()
921 cmd.cmdidx = MMC_CMD_STOP_TRANSMISSION; in mmc_send_tuning()
922 cmd.cmdarg = 0; in mmc_send_tuning()
923 cmd.resp_type = MMC_RSP_R1b; in mmc_send_tuning()
924 mmc_send_cmd(mmc, &cmd, NULL); in mmc_send_tuning()
1513 struct mmc_cmd cmd; local
1517 cmd.cmdidx = SD_CMD_SWITCH_FUNC;
1518 cmd.resp_type = MMC_RSP_R1;
1519 cmd.cmdarg = (mode << 31) | 0xffffff;
1520 cmd.cmdarg &= ~(0xf << (group * 4));
1521 cmd.cmdarg |= value << (group * 4);
1528 return mmc_send_cmd(mmc, &cmd, &data);
1535 struct mmc_cmd cmd; local
1547 cmd.cmdidx = MMC_CMD_APP_CMD;
1548 cmd.resp_type = MMC_RSP_R1;
1549 cmd.cmdarg = mmc->rca << 16;
1551 err = mmc_send_cmd(mmc, &cmd, NULL);
1556 cmd.cmdidx = SD_CMD_APP_SEND_SCR;
1557 cmd.resp_type = MMC_RSP_R1;
1558 cmd.cmdarg = 0;
1568 err = mmc_send_cmd(mmc, &cmd, &data);
1645 struct mmc_cmd cmd; local
1651 cmd.cmdidx = MMC_CMD_APP_CMD;
1652 cmd.resp_type = MMC_RSP_R1;
1653 cmd.cmdarg = mmc->rca << 16;
1655 err = mmc_send_cmd(mmc, &cmd, NULL);
1659 cmd.cmdidx = SD_CMD_APP_SD_STATUS;
1660 cmd.resp_type = MMC_RSP_R1;
1661 cmd.cmdarg = 0;
1669 err = mmc_send_cmd(mmc, &cmd, &data);
1755 struct mmc_cmd cmd; local
1763 cmd.cmdidx = MMC_CMD_SPI_CRC_ON_OFF;
1764 cmd.resp_type = MMC_RSP_R1;
1765 cmd.cmdarg = 1;
1766 err = mmc_send_cmd(mmc, &cmd, NULL);
1774 cmd.cmdidx = mmc_host_is_spi(mmc) ? MMC_CMD_SEND_CID :
1776 cmd.resp_type = MMC_RSP_R2;
1777 cmd.cmdarg = 0;
1779 err = mmc_send_cmd(mmc, &cmd, NULL);
1784 memcpy(mmc->cid, cmd.response, 16);
1792 cmd.cmdidx = SD_CMD_SEND_RELATIVE_ADDR;
1793 cmd.cmdarg = mmc->rca << 16;
1794 cmd.resp_type = MMC_RSP_R6;
1796 err = mmc_send_cmd(mmc, &cmd, NULL);
1802 mmc->rca = (cmd.response[0] >> 16) & 0xffff;
1806 cmd.cmdidx = MMC_CMD_SEND_CSD;
1807 cmd.resp_type = MMC_RSP_R2;
1808 cmd.cmdarg = mmc->rca << 16;
1810 err = mmc_send_cmd(mmc, &cmd, NULL);
1815 mmc->csd[0] = cmd.response[0];
1816 mmc->csd[1] = cmd.response[1];
1817 mmc->csd[2] = cmd.response[2];
1818 mmc->csd[3] = cmd.response[3];
1821 int version = (cmd.response[0] >> 26) & 0xf;
1846 freq = fbase[(cmd.response[0] & 0x7)];
1847 mult = multipliers[((cmd.response[0] >> 3) & 0xf)];
1851 mmc->dsr_imp = ((cmd.response[1] >> 12) & 0x1);
1852 mmc->read_bl_len = 1 << ((cmd.response[1] >> 16) & 0xf);
1857 mmc->write_bl_len = 1 << ((cmd.response[3] >> 22) & 0xf);
1883 cmd.cmdidx = MMC_CMD_SET_DSR;
1884 cmd.cmdarg = (mmc->dsr & 0xffff) << 16;
1885 cmd.resp_type = MMC_RSP_NONE;
1886 if (mmc_send_cmd(mmc, &cmd, NULL))
1892 cmd.cmdidx = MMC_CMD_SELECT_CARD;
1893 cmd.resp_type = MMC_RSP_R1;
1894 cmd.cmdarg = mmc->rca << 16;
1895 err = mmc_send_cmd(mmc, &cmd, NULL);
2081 cmd.cmdidx = MMC_CMD_APP_CMD;
2082 cmd.resp_type = MMC_RSP_R1;
2083 cmd.cmdarg = mmc->rca << 16;
2085 err = mmc_send_cmd(mmc, &cmd, NULL);
2089 cmd.cmdidx = SD_CMD_APP_SET_BUS_WIDTH;
2090 cmd.resp_type = MMC_RSP_R1;
2091 cmd.cmdarg = 2;
2092 err = mmc_send_cmd(mmc, &cmd, NULL);
2152 struct mmc_cmd cmd; local
2155 cmd.cmdidx = SD_CMD_SEND_IF_COND;
2157 cmd.cmdarg = ((mmc->cfg->voltages & 0xff8000) != 0) << 8 | 0xaa;
2158 cmd.resp_type = MMC_RSP_R7;
2160 err = mmc_send_cmd(mmc, &cmd, NULL);
2165 if ((cmd.response[0] & 0xff) != 0xaa)
2215 struct mmc_cmd cmd; local
2218 memset(&cmd, 0, sizeof(struct mmc_cmd));
2221 cmd.cmdidx = MMC_CMD_SELECT_CARD;
2222 cmd.resp_type = MMC_RSP_R1;
2223 cmd.cmdarg = mmc->rca << 16;
2224 err = mmc_send_cmd(mmc, &cmd, NULL);