Lines Matching refs:card

32     struct rt_mmcsd_card *card;  member
44 static int __send_status(struct rt_mmcsd_card *card, rt_uint32_t *status, unsigned retries) in __send_status() argument
51 cmd.arg = card->rca << 16; in __send_status()
53 err = mmcsd_send_cmd(card->host, &cmd, retries); in __send_status()
63 static int card_busy_detect(struct rt_mmcsd_card *card, unsigned int timeout_ms, in card_busy_detect() argument
76 err = __send_status(card, &status, 5); in card_busy_detect()
104 rt_int32_t mmcsd_num_wr_blocks(struct rt_mmcsd_card *card) in mmcsd_num_wr_blocks() argument
117 cmd.arg = card->rca << 16; in mmcsd_num_wr_blocks()
120 err = mmcsd_send_cmd(card->host, &cmd, 0); in mmcsd_num_wr_blocks()
123 if (!controller_is_spi(card->host) && !(cmd.resp[0] & R1_APP_CMD)) in mmcsd_num_wr_blocks()
134 data.timeout_ns = card->tacc_ns * 100; in mmcsd_num_wr_blocks()
135 data.timeout_clks = card->tacc_clks * 100; in mmcsd_num_wr_blocks()
139 (card->host->io_cfg.clock / 1000); in mmcsd_num_wr_blocks()
157 mmcsd_send_request(card->host, &req); in mmcsd_num_wr_blocks()
165 static rt_err_t rt_mmcsd_req_blk(struct rt_mmcsd_card *card, in rt_mmcsd_req_blk() argument
174 struct rt_mmcsd_host *host = card->host; in rt_mmcsd_req_blk()
186 if (!(card->flags & CARD_FLAG_SDHC)) in rt_mmcsd_req_blk()
197 if (!controller_is_spi(card->host) || !dir) in rt_mmcsd_req_blk()
214 if (!controller_is_spi(card->host) && (card->flags & 0x8000)) in rt_mmcsd_req_blk()
217 card_busy_detect(card, 10000, RT_NULL); in rt_mmcsd_req_blk()
224 card->flags &= 0x7fff; in rt_mmcsd_req_blk()
230 card->flags |= 0x8000; in rt_mmcsd_req_blk()
233 mmcsd_set_data_timeout(&data, card); in rt_mmcsd_req_blk()
252 static rt_int32_t mmcsd_set_blksize(struct rt_mmcsd_card *card) in mmcsd_set_blksize() argument
258 if (card->flags & CARD_FLAG_SDHC) in mmcsd_set_blksize()
261 mmcsd_host_lock(card->host); in mmcsd_set_blksize()
265 err = mmcsd_send_cmd(card->host, &cmd, 5); in mmcsd_set_blksize()
266 mmcsd_host_unlock(card->host); in mmcsd_set_blksize()
292 err = rt_mmcsd_req_blk(blk_dev->card, sector + offset, rd_ptr, req_size, 0); in mmcsd_blk_read()
321 err = rt_mmcsd_req_blk(blk_dev->card, sector + offset, wr_ptr, req_size, 1); in mmcsd_blk_write()
353 rt_int32_t rt_mmcsd_blk_probe(struct rt_mmcsd_card *card) in rt_mmcsd_blk_probe() argument
356 struct rt_mmcsd_host *host = card->host; in rt_mmcsd_blk_probe()
363 card->blk_dev = blk_dev; in rt_mmcsd_blk_probe()
373 blk_dev->card = card; in rt_mmcsd_blk_probe()
378 blk_dev->geometry.block_size = card->card_blksize; in rt_mmcsd_blk_probe()
379 blk_dev->geometry.sector_count = card->card_capacity * (1024 / 512); in rt_mmcsd_blk_probe()
382 if ((err = mmcsd_set_blksize(card))) in rt_mmcsd_blk_probe()
402 card->blk_dev = RT_NULL; in rt_mmcsd_blk_probe()
408 void rt_mmcsd_blk_remove(struct rt_mmcsd_card *card) in rt_mmcsd_blk_remove() argument
410 struct mmcsd_blk_device *blk_dev = card->blk_dev; in rt_mmcsd_blk_remove()
419 card->blk_dev = RT_NULL; in rt_mmcsd_blk_remove()