![]() |
RTEMS 6.3
|
SD Card LibI2C driver. More...
#include <stdio.h>#include <string.h>#include <errno.h>#include <inttypes.h>#include <rtems.h>#include <rtems/libi2c.h>#include <rtems/libio.h>#include <rtems/blkdev.h>#include <libchip/spi-sd-card.h>#include <rtems/status-checks.h>Macros | |
| #define | SD_CARD_BUSY_TOKEN 0 |
| #define | SD_CARD_BLOCK_SIZE_DEFAULT 512 |
| #define | SD_CARD_COMMAND_RESPONSE_START 7 |
| #define | SD_CARD_INVALIDATE_RESPONSE_INDEX(e) |
Commands | |
| #define | SD_CARD_CMD_GO_IDLE_STATE 0 |
| #define | SD_CARD_CMD_SEND_OP_COND 1 |
| #define | SD_CARD_CMD_SEND_IF_COND 8 |
| #define | SD_CARD_CMD_SEND_CSD 9 |
| #define | SD_CARD_CMD_SEND_CID 10 |
| #define | SD_CARD_CMD_STOP_TRANSMISSION 12 |
| #define | SD_CARD_CMD_SEND_STATUS 13 |
| #define | SD_CARD_CMD_SET_BLOCKLEN 16 |
| #define | SD_CARD_CMD_READ_SINGLE_BLOCK 17 |
| #define | SD_CARD_CMD_READ_MULTIPLE_BLOCK 18 |
| #define | SD_CARD_CMD_SET_BLOCK_COUNT 23 |
| #define | SD_CARD_CMD_WRITE_BLOCK 24 |
| #define | SD_CARD_CMD_WRITE_MULTIPLE_BLOCK 25 |
| #define | SD_CARD_CMD_PROGRAM_CSD 27 |
| #define | SD_CARD_CMD_SET_WRITE_PROT 28 |
| #define | SD_CARD_CMD_CLR_WRITE_PROT 29 |
| #define | SD_CARD_CMD_SEND_WRITE_PROT 30 |
| #define | SD_CARD_CMD_TAG_SECTOR_START 32 |
| #define | SD_CARD_CMD_TAG_SECTOR_END 33 |
| #define | SD_CARD_CMD_UNTAG_SECTOR 34 |
| #define | SD_CARD_CMD_TAG_ERASE_GROUP_START 35 |
| #define | SD_CARD_CMD_TAG_ERASE_GROUP_END 36 |
| #define | SD_CARD_CMD_UNTAG_ERASE_GROUP 37 |
| #define | SD_CARD_CMD_ERASE 38 |
| #define | SD_CARD_CMD_LOCK_UNLOCK 42 |
| #define | SD_CARD_CMD_APP_CMD 55 |
| #define | SD_CARD_CMD_GEN_CND 56 |
| #define | SD_CARD_CMD_READ_OCR 58 |
| #define | SD_CARD_CMD_CRC_ON_OFF 59 |
Application Commands | |
| #define | SD_CARD_ACMD_SD_SEND_OP_COND 41 |
Command Flags | |
| #define | SD_CARD_FLAG_HCS 0x40000000U |
| #define | SD_CARD_FLAG_VHS_2_7_TO_3_3 0x00000100U |
| #define | SD_CARD_FLAG_CHECK_PATTERN 0x000000aaU |
Command Fields | |
| #define | SD_CARD_COMMAND_SET_COMMAND(c, cmd) |
| #define | SD_CARD_COMMAND_SET_ARGUMENT(c, arg) |
| #define | SD_CARD_COMMAND_SET_CRC7(c, crc7) |
| #define | SD_CARD_COMMAND_GET_CRC7(c) |
Response Fields | |
| #define | SD_CARD_IS_RESPONSE(r) |
| #define | SD_CARD_IS_ERRORLESS_RESPONSE(r) |
| #define | SD_CARD_IS_NOT_IDLE_RESPONSE(r) |
| #define | SD_CARD_IS_DATA_ERROR(r) |
| #define | SD_CARD_IS_DATA_REJECTED(r) |
Card Identification | |
| #define | SD_CARD_CID_SIZE 16 |
| #define | SD_CARD_CID_GET_MID(cid) |
| #define | SD_CARD_CID_GET_OID(cid) |
| #define | SD_CARD_CID_GET_PNM(cid, i) |
| #define | SD_CARD_CID_GET_PRV(cid) |
| #define | SD_CARD_CID_GET_PSN(cid) |
| #define | SD_CARD_CID_GET_MDT(cid) |
| #define | SD_CARD_CID_GET_CRC7(cid) |
Card Specific Data | |
| #define | SD_CARD_CSD_SIZE 16 |
| #define | SD_CARD_CSD_GET_CSD_STRUCTURE(csd) |
| #define | SD_CARD_CSD_GET_SPEC_VERS(csd) |
| #define | SD_CARD_CSD_GET_TAAC(csd) |
| #define | SD_CARD_CSD_GET_NSAC(csd) |
| #define | SD_CARD_CSD_GET_TRAN_SPEED(csd) |
| #define | SD_CARD_CSD_GET_C_SIZE(csd) |
| #define | SD_CARD_CSD_GET_C_SIZE_MULT(csd) |
| #define | SD_CARD_CSD_GET_READ_BLK_LEN(csd) |
| #define | SD_CARD_CSD_GET_WRITE_BLK_LEN(csd) |
| #define | SD_CARD_CSD_1_GET_C_SIZE(csd) |
Data Start and Stop Tokens | |
| #define | SD_CARD_START_BLOCK_SINGLE_BLOCK_READ 0xfe |
| #define | SD_CARD_START_BLOCK_MULTIPLE_BLOCK_READ 0xfe |
| #define | SD_CARD_START_BLOCK_SINGLE_BLOCK_WRITE 0xfe |
| #define | SD_CARD_START_BLOCK_MULTIPLE_BLOCK_WRITE 0xfc |
| #define | SD_CARD_STOP_TRANSFER_MULTIPLE_BLOCK_WRITE 0xfd |
Functions | |
Integer to and from Byte-Stream Converter | |
Card Specific Data Functions | |
CRC functions | |
Communication Functions | |
Disk Driver Functions | |
| rtems_status_code | sd_card_register (void) |
SD Card LibI2C driver.
| #define SD_CARD_CID_GET_CRC7 | ( | cid | ) |
| #define SD_CARD_CID_GET_MDT | ( | cid | ) |
| #define SD_CARD_CID_GET_MID | ( | cid | ) |
| #define SD_CARD_CID_GET_OID | ( | cid | ) |
| #define SD_CARD_CID_GET_PNM | ( | cid, | |
| i ) |
| #define SD_CARD_CID_GET_PRV | ( | cid | ) |
| #define SD_CARD_CID_GET_PSN | ( | cid | ) |
| #define SD_CARD_COMMAND_GET_CRC7 | ( | c | ) |
| #define SD_CARD_COMMAND_SET_ARGUMENT | ( | c, | |
| arg ) |
| #define SD_CARD_COMMAND_SET_COMMAND | ( | c, | |
| cmd ) |
| #define SD_CARD_COMMAND_SET_CRC7 | ( | c, | |
| crc7 ) |
| #define SD_CARD_CSD_1_GET_C_SIZE | ( | csd | ) |
| #define SD_CARD_CSD_GET_C_SIZE | ( | csd | ) |
| #define SD_CARD_CSD_GET_C_SIZE_MULT | ( | csd | ) |
| #define SD_CARD_CSD_GET_CSD_STRUCTURE | ( | csd | ) |
| #define SD_CARD_CSD_GET_NSAC | ( | csd | ) |
| #define SD_CARD_CSD_GET_READ_BLK_LEN | ( | csd | ) |
| #define SD_CARD_CSD_GET_SPEC_VERS | ( | csd | ) |
| #define SD_CARD_CSD_GET_TAAC | ( | csd | ) |
| #define SD_CARD_CSD_GET_TRAN_SPEED | ( | csd | ) |
| #define SD_CARD_CSD_GET_WRITE_BLK_LEN | ( | csd | ) |
| #define SD_CARD_INVALIDATE_RESPONSE_INDEX | ( | e | ) |
| #define SD_CARD_IS_DATA_ERROR | ( | r | ) |
| #define SD_CARD_IS_DATA_REJECTED | ( | r | ) |
| #define SD_CARD_IS_ERRORLESS_RESPONSE | ( | r | ) |
| #define SD_CARD_IS_NOT_IDLE_RESPONSE | ( | r | ) |
| #define SD_CARD_IS_RESPONSE | ( | r | ) |