Lines Matching refs:spi_device
39 static rt_err_t MSD_take_owner(struct rt_spi_device *spi_device);
52 static rt_err_t MSD_take_owner(struct rt_spi_device *spi_device) in MSD_take_owner() argument
56 result = rt_mutex_take(&(spi_device->bus->lock), RT_WAITING_FOREVER); in MSD_take_owner()
59 if (spi_device->bus->owner != spi_device) in MSD_take_owner()
62 result = spi_device->bus->ops->configure(spi_device, &spi_device->config); in MSD_take_owner()
66 spi_device->bus->owner = spi_device; in MSD_take_owner()
468 if (msd->spi_device == RT_NULL) in rt_msd_init()
480 rt_spi_configure(msd->spi_device, &cfg); in rt_msd_init()
487 result = MSD_take_owner(msd->spi_device); in rt_msd_init()
494 rt_spi_release(msd->spi_device); in rt_msd_init()
510 msd->spi_device->bus->ops->xfer(msd->spi_device, &message); in rt_msd_init()
519 rt_spi_take(msd->spi_device); in rt_msd_init()
520 … result = _send_cmd(msd->spi_device, GO_IDLE_STATE, 0x00, 0x95, response_r1, response); in rt_msd_init()
521 rt_spi_release(msd->spi_device); in rt_msd_init()
545 rt_spi_take(msd->spi_device); in rt_msd_init()
546 … result = _send_cmd(msd->spi_device, SEND_IF_COND, 0x01AA, 0x87, response_r7, response); in rt_msd_init()
547 rt_spi_release(msd->spi_device); in rt_msd_init()
599 rt_spi_take(msd->spi_device); in rt_msd_init()
601 result = _send_cmd(msd->spi_device, READ_OCR, 0x00, 0x00, response_r3, response); in rt_msd_init()
604 rt_spi_release(msd->spi_device); in rt_msd_init()
611 rt_spi_release(msd->spi_device); in rt_msd_init()
615 rt_spi_release(msd->spi_device); in rt_msd_init()
638 rt_spi_release(msd->spi_device); in rt_msd_init()
643 rt_spi_take(msd->spi_device); in rt_msd_init()
646 result = _send_cmd(msd->spi_device, APP_CMD, 0x00, 0x00, response_r1, response); in rt_msd_init()
649 rt_spi_release(msd->spi_device); in rt_msd_init()
655 rt_spi_release(msd->spi_device); in rt_msd_init()
661 … result = _send_cmd(msd->spi_device, SD_SEND_OP_COND, 0x00, 0x00, response_r1, response); in rt_msd_init()
664 rt_spi_release(msd->spi_device); in rt_msd_init()
670 rt_spi_release(msd->spi_device); in rt_msd_init()
677 rt_spi_release(msd->spi_device); in rt_msd_init()
693 rt_spi_release(msd->spi_device); in rt_msd_init()
709 msd->spi_device->bus->ops->xfer(msd->spi_device, &message); in rt_msd_init()
717 rt_spi_take(msd->spi_device); in rt_msd_init()
718 … result = _send_cmd(msd->spi_device, GO_IDLE_STATE, 0x00, 0x95, response_r1, response); in rt_msd_init()
719 rt_spi_release(msd->spi_device); in rt_msd_init()
738 rt_spi_take(msd->spi_device); in rt_msd_init()
739 … result = _send_cmd(msd->spi_device, SEND_OP_COND, 0x00, 0x00, response_r1, response); in rt_msd_init()
740 rt_spi_release(msd->spi_device); in rt_msd_init()
760 rt_spi_take(msd->spi_device); in rt_msd_init()
762 result = _send_cmd(msd->spi_device, READ_OCR, 0x00, 0x00, response_r3, response); in rt_msd_init()
765 rt_spi_release(msd->spi_device); in rt_msd_init()
772 rt_spi_release(msd->spi_device); in rt_msd_init()
778 rt_spi_release(msd->spi_device); in rt_msd_init()
799 rt_spi_take(msd->spi_device); in rt_msd_init()
802 rt_spi_release(msd->spi_device); in rt_msd_init()
809 result = _send_cmd(msd->spi_device, APP_CMD, 0x00, 0x65, response_r1, response); in rt_msd_init()
813 rt_spi_release(msd->spi_device); in rt_msd_init()
819 rt_spi_release(msd->spi_device); in rt_msd_init()
826 … result = _send_cmd(msd->spi_device, SD_SEND_OP_COND, 0x40000000, 0x77, response_r1, response); in rt_msd_init()
829 rt_spi_release(msd->spi_device); in rt_msd_init()
837 rt_spi_release(msd->spi_device); in rt_msd_init()
843 rt_spi_release(msd->spi_device); in rt_msd_init()
847 rt_spi_take(msd->spi_device); in rt_msd_init()
848 result = _send_cmd(msd->spi_device, READ_OCR, 0x00, 0x00, response_r3, response); in rt_msd_init()
851 rt_spi_release(msd->spi_device); in rt_msd_init()
858 rt_spi_release(msd->spi_device); in rt_msd_init()
863 rt_spi_release(msd->spi_device); in rt_msd_init()
910 rt_spi_release(msd->spi_device); in rt_msd_init()
911 rt_spi_take(msd->spi_device); in rt_msd_init()
913 result = _send_cmd(msd->spi_device, CRC_ON_OFF, 0x01, 0x83, response_r1, response); in rt_msd_init()
915 result = _send_cmd(msd->spi_device, CRC_ON_OFF, 0x00, 0x91, response_r1, response); in rt_msd_init()
917 rt_spi_release(msd->spi_device); in rt_msd_init()
928 rt_spi_release(msd->spi_device); in rt_msd_init()
929 rt_spi_take(msd->spi_device); in rt_msd_init()
930 result = _send_cmd(msd->spi_device, SET_BLOCKLEN, SECTOR_SIZE, 0x00, response_r1, response); in rt_msd_init()
931 rt_spi_release(msd->spi_device); in rt_msd_init()
946 rt_spi_take(msd->spi_device); in rt_msd_init()
948 result = _send_cmd(msd->spi_device, SEND_CSD, 0x00, 0x00, response_r1, response); in rt_msd_init()
952 rt_spi_release(msd->spi_device); in rt_msd_init()
959 rt_spi_release(msd->spi_device); in rt_msd_init()
965 result = _read_block(msd->spi_device, CSD_buffer, MSD_CSD_LEN); in rt_msd_init()
966 rt_spi_release(msd->spi_device); in rt_msd_init()
1191 rt_spi_configure(msd->spi_device, &cfg); in rt_msd_init()
1195 rt_spi_release(msd->spi_device); in rt_msd_init()
1196 rt_mutex_release(&(msd->spi_device->bus->lock)); in rt_msd_init()
1218 result = MSD_take_owner(msd->spi_device); in rt_msd_read()
1228 rt_spi_take(msd->spi_device); in rt_msd_read()
1230 …result = _send_cmd(msd->spi_device, READ_SINGLE_BLOCK, pos * msd->geometry.bytes_per_sector, 0x00,… in rt_msd_read()
1238 result = _read_block(msd->spi_device, buffer, msd->geometry.bytes_per_sector); in rt_msd_read()
1249 rt_spi_take(msd->spi_device); in rt_msd_read()
1251 …result = _send_cmd(msd->spi_device, READ_MULTIPLE_BLOCK, pos * msd->geometry.bytes_per_sector, 0x0… in rt_msd_read()
1261 result = _read_block(msd->spi_device, in rt_msd_read()
1273 result = _send_cmd(msd->spi_device, STOP_TRANSMISSION, 0x00, 0x00, response_r1b, response); in rt_msd_read()
1282 rt_spi_release(msd->spi_device); in rt_msd_read()
1283 rt_mutex_release(&(msd->spi_device->bus->lock)); in rt_msd_read()
1294 result = MSD_take_owner(msd->spi_device); in rt_msd_sdhc_read()
1304 rt_spi_take(msd->spi_device); in rt_msd_sdhc_read()
1306 result = _send_cmd(msd->spi_device, READ_SINGLE_BLOCK, pos, 0x00, response_r1, response); in rt_msd_sdhc_read()
1314 result = _read_block(msd->spi_device, buffer, msd->geometry.bytes_per_sector); in rt_msd_sdhc_read()
1325 rt_spi_take(msd->spi_device); in rt_msd_sdhc_read()
1327 result = _send_cmd(msd->spi_device, READ_MULTIPLE_BLOCK, pos, 0x00, response_r1, response); in rt_msd_sdhc_read()
1337 result = _read_block(msd->spi_device, in rt_msd_sdhc_read()
1349 result = _send_cmd(msd->spi_device, STOP_TRANSMISSION, 0x00, 0x00, response_r1b, response); in rt_msd_sdhc_read()
1358 rt_spi_release(msd->spi_device); in rt_msd_sdhc_read()
1359 rt_mutex_release(&(msd->spi_device->bus->lock)); in rt_msd_sdhc_read()
1370 result = MSD_take_owner(msd->spi_device); in rt_msd_write()
1382 rt_spi_take(msd->spi_device); in rt_msd_write()
1383 …result = _send_cmd(msd->spi_device, WRITE_BLOCK, pos * msd->geometry.bytes_per_sector, 0x00, respo… in rt_msd_write()
1391 …result = _write_block(msd->spi_device, buffer, msd->geometry.bytes_per_sector, MSD_TOKEN_WRITE_SIN… in rt_msd_write()
1403 rt_spi_take(msd->spi_device); in rt_msd_write()
1409 result = _send_cmd(msd->spi_device, APP_CMD, 0x00, 0x00, response_r1, response); in rt_msd_write()
1418 … result = _send_cmd(msd->spi_device, SET_WR_BLK_ERASE_COUNT, size, 0x00, response_r1, response); in rt_msd_write()
1428 …result = _send_cmd(msd->spi_device, WRITE_MULTIPLE_BLOCK, pos * msd->geometry.bytes_per_sector, 0x… in rt_msd_write()
1439 result = _write_block(msd->spi_device, in rt_msd_write()
1465 msd->spi_device->bus->ops->xfer(msd->spi_device, &message); in rt_msd_write()
1469 result = _wait_ready(msd->spi_device); in rt_msd_write()
1478 rt_spi_release(msd->spi_device); in rt_msd_write()
1479 rt_mutex_release(&(msd->spi_device->bus->lock)); in rt_msd_write()
1490 result = MSD_take_owner(msd->spi_device); in rt_msd_sdhc_write()
1500 rt_spi_take(msd->spi_device); in rt_msd_sdhc_write()
1501 result = _send_cmd(msd->spi_device, WRITE_BLOCK, pos, 0x00, response_r1, response); in rt_msd_sdhc_write()
1509 …result = _write_block(msd->spi_device, buffer, msd->geometry.bytes_per_sector, MSD_TOKEN_WRITE_SIN… in rt_msd_sdhc_write()
1521 rt_spi_take(msd->spi_device); in rt_msd_sdhc_write()
1525 result = _send_cmd(msd->spi_device, APP_CMD, 0x00, 0x00, response_r1, response); in rt_msd_sdhc_write()
1534 … result = _send_cmd(msd->spi_device, SET_WR_BLK_ERASE_COUNT, size, 0x00, response_r1, response); in rt_msd_sdhc_write()
1543 result = _send_cmd(msd->spi_device, WRITE_MULTIPLE_BLOCK, pos, 0x00, response_r1, response); in rt_msd_sdhc_write()
1554 result = _write_block(msd->spi_device, in rt_msd_sdhc_write()
1580 msd->spi_device->bus->ops->xfer(msd->spi_device, &message); in rt_msd_sdhc_write()
1583 result = _wait_ready(msd->spi_device); in rt_msd_sdhc_write()
1592 rt_spi_release(msd->spi_device); in rt_msd_sdhc_write()
1593 rt_mutex_release(&(msd->spi_device->bus->lock)); in rt_msd_sdhc_write()
1622 struct rt_spi_device *spi_device; in msd_init() local
1624 spi_device = (struct rt_spi_device *)rt_device_find(spi_device_name); in msd_init()
1625 if (spi_device == RT_NULL) in msd_init()
1631 _msd_device.spi_device = spi_device; in msd_init()