MCPcopy Create free account
hub / github.com/RT-Thread/rt-thread / mmcsd_send_if_cond

Function mmcsd_send_if_cond

components/drivers/sdio/dev_sd.c:487–510  ·  view source on GitHub ↗

* To support SD 2.0 cards, we must always invoke SD_SEND_IF_COND * before SD_APP_OP_COND. This command will harmlessly fail for * SD 1.0 cards. */

Source from the content-addressed store, hash-verified

485 * SD 1.0 cards.
486 */
487rt_err_t mmcsd_send_if_cond(struct rt_mmcsd_host *host, rt_uint32_t ocr)
488{
489 struct rt_mmcsd_cmd cmd;
490 rt_err_t err;
491 rt_uint8_t pattern;
492
493 cmd.cmd_code = SD_SEND_IF_COND;
494 cmd.arg = ((ocr & 0xFF8000) != 0) << 8 | 0xAA;
495 cmd.flags = RESP_SPI_R7 | RESP_R7 | CMD_BCR;
496
497 err = mmcsd_send_cmd(host, &cmd, 0);
498 if (err)
499 return err;
500
501 if (controller_is_spi(host))
502 pattern = cmd.resp[1] & 0xFF;
503 else
504 pattern = cmd.resp[0] & 0xFF;
505
506 if (pattern != 0xAA)
507 return -RT_ERROR;
508
509 return RT_EOK;
510}
511
512rt_err_t mmcsd_get_card_addr(struct rt_mmcsd_host *host, rt_uint32_t *rca)
513{

Callers 2

mmcsd_sd_init_cardFunction · 0.85
mmcsd_detectFunction · 0.85

Calls 1

mmcsd_send_cmdFunction · 0.85

Tested by

no test coverage detected