Lines Matching refs:cmd

67 void mmmc_trace_before_send(struct mmc *mmc, struct mmc_cmd *cmd)  in mmmc_trace_before_send()  argument
69 printf("CMD_SEND:%d\n", cmd->cmdidx); in mmmc_trace_before_send()
70 printf("\t\tARG\t\t\t 0x%08x\n", cmd->cmdarg); in mmmc_trace_before_send()
73 void mmmc_trace_after_send(struct mmc *mmc, struct mmc_cmd *cmd, int ret) in mmmc_trace_after_send() argument
81 switch (cmd->resp_type) { in mmmc_trace_after_send()
87 cmd->response[0]); in mmmc_trace_after_send()
91 cmd->response[0]); in mmmc_trace_after_send()
95 cmd->response[0]); in mmmc_trace_after_send()
97 cmd->response[1]); in mmmc_trace_after_send()
99 cmd->response[2]); in mmmc_trace_after_send()
101 cmd->response[3]); in mmmc_trace_after_send()
107 ptr = (u8 *)&cmd->response[i]; in mmmc_trace_after_send()
116 cmd->response[0]); in mmmc_trace_after_send()
125 void mmc_trace_state(struct mmc *mmc, struct mmc_cmd *cmd) in mmc_trace_state() argument
129 status = (cmd->response[0] & MMC_STATUS_CURR_STATE) >> 9; in mmc_trace_state()
197 int mmc_send_cmd(struct mmc *mmc, struct mmc_cmd *cmd, struct mmc_data *data) in mmc_send_cmd() argument
201 mmmc_trace_before_send(mmc, cmd); in mmc_send_cmd()
202 ret = mmc->cfg->ops->send_cmd(mmc, cmd, data); in mmc_send_cmd()
203 mmmc_trace_after_send(mmc, cmd, ret); in mmc_send_cmd()
211 struct mmc_cmd cmd; in mmc_send_status() local
214 cmd.cmdidx = MMC_CMD_SEND_STATUS; in mmc_send_status()
215 cmd.resp_type = MMC_RSP_R1; in mmc_send_status()
217 cmd.cmdarg = mmc->rca << 16; in mmc_send_status()
220 err = mmc_send_cmd(mmc, &cmd, NULL); in mmc_send_status()
222 if ((cmd.response[0] & MMC_STATUS_RDY_FOR_DATA) && in mmc_send_status()
223 (cmd.response[0] & MMC_STATUS_CURR_STATE) != in mmc_send_status()
227 if (cmd.response[0] & MMC_STATUS_MASK) { in mmc_send_status()
230 cmd.response[0]); in mmc_send_status()
243 mmc_trace_state(mmc, &cmd); in mmc_send_status()
256 struct mmc_cmd cmd; in mmc_set_blocklen() local
262 cmd.cmdidx = MMC_CMD_SET_BLOCKLEN; in mmc_set_blocklen()
263 cmd.resp_type = MMC_RSP_R1; in mmc_set_blocklen()
264 cmd.cmdarg = len; in mmc_set_blocklen()
266 err = mmc_send_cmd(mmc, &cmd, NULL); in mmc_set_blocklen()
276 err = mmc_send_cmd(mmc, &cmd, NULL); in mmc_set_blocklen()
319 struct mmc_cmd cmd; in mmc_send_tuning() local
336 cmd.cmdidx = opcode; in mmc_send_tuning()
337 cmd.cmdarg = 0; in mmc_send_tuning()
338 cmd.resp_type = MMC_RSP_R1; in mmc_send_tuning()
345 err = mmc_send_cmd(mmc, &cmd, &data); in mmc_send_tuning()
359 struct mmc_cmd cmd; in mmc_read_blocks() local
363 cmd.cmdidx = MMC_CMD_READ_MULTIPLE_BLOCK; in mmc_read_blocks()
365 cmd.cmdidx = MMC_CMD_READ_SINGLE_BLOCK; in mmc_read_blocks()
368 cmd.cmdarg = start; in mmc_read_blocks()
370 cmd.cmdarg = start * mmc->read_bl_len; in mmc_read_blocks()
372 cmd.resp_type = MMC_RSP_R1; in mmc_read_blocks()
379 if (mmc_send_cmd(mmc, &cmd, &data)) in mmc_read_blocks()
383 cmd.cmdidx = MMC_CMD_STOP_TRANSMISSION; in mmc_read_blocks()
384 cmd.cmdarg = 0; in mmc_read_blocks()
385 cmd.resp_type = MMC_RSP_R1b; in mmc_read_blocks()
386 if (mmc_send_cmd(mmc, &cmd, NULL)) { in mmc_read_blocks()
456 struct mmc_cmd cmd; in mmc_go_idle() local
461 cmd.cmdidx = MMC_CMD_GO_IDLE_STATE; in mmc_go_idle()
462 cmd.cmdarg = 0; in mmc_go_idle()
463 cmd.resp_type = MMC_RSP_NONE; in mmc_go_idle()
465 err = mmc_send_cmd(mmc, &cmd, NULL); in mmc_go_idle()
478 struct mmc_cmd cmd; in mmc_switch_voltage() local
488 cmd.cmdidx = SD_CMD_SWITCH_UHS18V; in mmc_switch_voltage()
489 cmd.cmdarg = 0; in mmc_switch_voltage()
490 cmd.resp_type = MMC_RSP_R1; in mmc_switch_voltage()
492 err = mmc_send_cmd(mmc, &cmd, NULL); in mmc_switch_voltage()
496 if (!mmc_host_is_spi(mmc) && (cmd.response[0] & MMC_STATUS_ERROR)) in mmc_switch_voltage()
541 struct mmc_cmd cmd; in sd_send_op_cond() local
544 cmd.cmdidx = MMC_CMD_APP_CMD; in sd_send_op_cond()
545 cmd.resp_type = MMC_RSP_R1; in sd_send_op_cond()
546 cmd.cmdarg = 0; in sd_send_op_cond()
548 err = mmc_send_cmd(mmc, &cmd, NULL); in sd_send_op_cond()
553 cmd.cmdidx = SD_CMD_APP_SEND_OP_COND; in sd_send_op_cond()
554 cmd.resp_type = MMC_RSP_R3; in sd_send_op_cond()
563 cmd.cmdarg = mmc_host_is_spi(mmc) ? 0 : in sd_send_op_cond()
567 cmd.cmdarg |= OCR_HCS; in sd_send_op_cond()
570 cmd.cmdarg |= OCR_S18R; in sd_send_op_cond()
572 err = mmc_send_cmd(mmc, &cmd, NULL); in sd_send_op_cond()
577 if (cmd.response[0] & OCR_BUSY) in sd_send_op_cond()
590 cmd.cmdidx = MMC_CMD_SPI_READ_OCR; in sd_send_op_cond()
591 cmd.resp_type = MMC_RSP_R3; in sd_send_op_cond()
592 cmd.cmdarg = 0; in sd_send_op_cond()
594 err = mmc_send_cmd(mmc, &cmd, NULL); in sd_send_op_cond()
600 mmc->ocr = cmd.response[0]; in sd_send_op_cond()
603 if (uhs_en && !(mmc_host_is_spi(mmc)) && (cmd.response[0] & 0x41000000) in sd_send_op_cond()
619 struct mmc_cmd cmd; in mmc_send_op_cond_iter() local
622 cmd.cmdidx = MMC_CMD_SEND_OP_COND; in mmc_send_op_cond_iter()
623 cmd.resp_type = MMC_RSP_R3; in mmc_send_op_cond_iter()
624 cmd.cmdarg = 0; in mmc_send_op_cond_iter()
626 cmd.cmdarg = OCR_HCS | in mmc_send_op_cond_iter()
631 err = mmc_send_cmd(mmc, &cmd, NULL); in mmc_send_op_cond_iter()
634 mmc->ocr = cmd.response[0]; in mmc_send_op_cond_iter()
661 struct mmc_cmd cmd; in mmc_complete_op_cond() local
685 cmd.cmdidx = MMC_CMD_SPI_READ_OCR; in mmc_complete_op_cond()
686 cmd.resp_type = MMC_RSP_R3; in mmc_complete_op_cond()
687 cmd.cmdarg = 0; in mmc_complete_op_cond()
689 err = mmc_send_cmd(mmc, &cmd, NULL); in mmc_complete_op_cond()
694 mmc->ocr = cmd.response[0]; in mmc_complete_op_cond()
708 struct mmc_cmd cmd; in mmc_send_ext_csd() local
713 cmd.cmdidx = MMC_CMD_SEND_EXT_CSD; in mmc_send_ext_csd()
714 cmd.resp_type = MMC_RSP_R1; in mmc_send_ext_csd()
715 cmd.cmdarg = 0; in mmc_send_ext_csd()
722 err = mmc_send_cmd(mmc, &cmd, &data); in mmc_send_ext_csd()
730 struct mmc_cmd cmd; in __mmc_switch() local
735 cmd.cmdidx = MMC_CMD_SWITCH; in __mmc_switch()
736 cmd.resp_type = MMC_RSP_R1b; in __mmc_switch()
737 cmd.cmdarg = (MMC_SWITCH_MODE_WRITE_BYTE << 24) | in __mmc_switch()
742 ret = mmc_send_cmd(mmc, &cmd, NULL); in __mmc_switch()
1181 struct mmc_cmd cmd; in sd_switch() local
1185 cmd.cmdidx = SD_CMD_SWITCH_FUNC; in sd_switch()
1186 cmd.resp_type = MMC_RSP_R1; in sd_switch()
1187 cmd.cmdarg = (mode << 31) | 0xffffff; in sd_switch()
1188 cmd.cmdarg &= ~(0xf << (group * 4)); in sd_switch()
1189 cmd.cmdarg |= value << (group * 4); in sd_switch()
1196 return mmc_send_cmd(mmc, &cmd, &data); in sd_switch()
1202 struct mmc_cmd cmd; in sd_get_capabilities() local
1217 cmd.cmdidx = MMC_CMD_APP_CMD; in sd_get_capabilities()
1218 cmd.resp_type = MMC_RSP_R1; in sd_get_capabilities()
1219 cmd.cmdarg = mmc->rca << 16; in sd_get_capabilities()
1221 err = mmc_send_cmd(mmc, &cmd, NULL); in sd_get_capabilities()
1226 cmd.cmdidx = SD_CMD_APP_SEND_SCR; in sd_get_capabilities()
1227 cmd.resp_type = MMC_RSP_R1; in sd_get_capabilities()
1228 cmd.cmdarg = 0; in sd_get_capabilities()
1238 err = mmc_send_cmd(mmc, &cmd, &data); in sd_get_capabilities()
1364 struct mmc_cmd cmd; in sd_select_bus_width() local
1369 cmd.cmdidx = MMC_CMD_APP_CMD; in sd_select_bus_width()
1370 cmd.resp_type = MMC_RSP_R1; in sd_select_bus_width()
1371 cmd.cmdarg = mmc->rca << 16; in sd_select_bus_width()
1373 err = mmc_send_cmd(mmc, &cmd, NULL); in sd_select_bus_width()
1377 cmd.cmdidx = SD_CMD_APP_SET_BUS_WIDTH; in sd_select_bus_width()
1378 cmd.resp_type = MMC_RSP_R1; in sd_select_bus_width()
1380 cmd.cmdarg = 2; in sd_select_bus_width()
1382 cmd.cmdarg = 0; in sd_select_bus_width()
1383 err = mmc_send_cmd(mmc, &cmd, NULL); in sd_select_bus_width()
1403 struct mmc_cmd cmd; in sd_read_ssr() local
1409 cmd.cmdidx = MMC_CMD_APP_CMD; in sd_read_ssr()
1410 cmd.resp_type = MMC_RSP_R1; in sd_read_ssr()
1411 cmd.cmdarg = mmc->rca << 16; in sd_read_ssr()
1413 err = mmc_send_cmd(mmc, &cmd, NULL); in sd_read_ssr()
1417 cmd.cmdidx = SD_CMD_APP_SD_STATUS; in sd_read_ssr()
1418 cmd.resp_type = MMC_RSP_R1; in sd_read_ssr()
1419 cmd.cmdarg = 0; in sd_read_ssr()
1427 err = mmc_send_cmd(mmc, &cmd, &data); in sd_read_ssr()
2256 struct mmc_cmd cmd; in mmc_startup() local
2261 cmd.cmdidx = MMC_CMD_SPI_CRC_ON_OFF; in mmc_startup()
2262 cmd.resp_type = MMC_RSP_R1; in mmc_startup()
2263 cmd.cmdarg = 1; in mmc_startup()
2264 err = mmc_send_cmd(mmc, &cmd, NULL); in mmc_startup()
2271 cmd.cmdidx = mmc_host_is_spi(mmc) ? MMC_CMD_SEND_CID : in mmc_startup()
2273 cmd.resp_type = MMC_RSP_R2; in mmc_startup()
2274 cmd.cmdarg = 0; in mmc_startup()
2276 err = mmc_send_cmd(mmc, &cmd, NULL); in mmc_startup()
2286 err = mmc_send_cmd(mmc, &cmd, NULL); in mmc_startup()
2296 memcpy(mmc->cid, cmd.response, 16); in mmc_startup()
2304 cmd.cmdidx = SD_CMD_SEND_RELATIVE_ADDR; in mmc_startup()
2305 cmd.cmdarg = mmc->rca << 16; in mmc_startup()
2306 cmd.resp_type = MMC_RSP_R6; in mmc_startup()
2308 err = mmc_send_cmd(mmc, &cmd, NULL); in mmc_startup()
2314 mmc->rca = (cmd.response[0] >> 16) & 0xffff; in mmc_startup()
2318 cmd.cmdidx = MMC_CMD_SEND_CSD; in mmc_startup()
2319 cmd.resp_type = MMC_RSP_R2; in mmc_startup()
2320 cmd.cmdarg = mmc->rca << 16; in mmc_startup()
2322 err = mmc_send_cmd(mmc, &cmd, NULL); in mmc_startup()
2327 mmc->csd[0] = cmd.response[0]; in mmc_startup()
2328 mmc->csd[1] = cmd.response[1]; in mmc_startup()
2329 mmc->csd[2] = cmd.response[2]; in mmc_startup()
2330 mmc->csd[3] = cmd.response[3]; in mmc_startup()
2333 int version = (cmd.response[0] >> 26) & 0xf; in mmc_startup()
2358 freq = fbase[(cmd.response[0] & 0x7)]; in mmc_startup()
2359 mult = multipliers[((cmd.response[0] >> 3) & 0xf)]; in mmc_startup()
2364 mmc->dsr_imp = ((cmd.response[1] >> 12) & 0x1); in mmc_startup()
2365 mmc->read_bl_len = 1 << ((cmd.response[1] >> 16) & 0xf); in mmc_startup()
2371 mmc->write_bl_len = 1 << ((cmd.response[3] >> 22) & 0xf); in mmc_startup()
2400 cmd.cmdidx = MMC_CMD_SET_DSR; in mmc_startup()
2401 cmd.cmdarg = (mmc->dsr & 0xffff) << 16; in mmc_startup()
2402 cmd.resp_type = MMC_RSP_NONE; in mmc_startup()
2403 if (mmc_send_cmd(mmc, &cmd, NULL)) in mmc_startup()
2409 cmd.cmdidx = MMC_CMD_SELECT_CARD; in mmc_startup()
2410 cmd.resp_type = MMC_RSP_R1; in mmc_startup()
2411 cmd.cmdarg = mmc->rca << 16; in mmc_startup()
2412 err = mmc_send_cmd(mmc, &cmd, NULL); in mmc_startup()
2499 struct mmc_cmd cmd; in mmc_send_if_cond() local
2502 cmd.cmdidx = SD_CMD_SEND_IF_COND; in mmc_send_if_cond()
2504 cmd.cmdarg = ((mmc->cfg->voltages & 0xff8000) != 0) << 8 | 0xaa; in mmc_send_if_cond()
2505 cmd.resp_type = MMC_RSP_R7; in mmc_send_if_cond()
2507 err = mmc_send_cmd(mmc, &cmd, NULL); in mmc_send_if_cond()
2512 if ((cmd.response[0] & 0xff) != 0xaa) in mmc_send_if_cond()