25 #define SD_ERROR_AKE_SEQ_ERROR -2
29 #define SD_ERROR_ERROR -3
33 #define SD_ERROR_CC_ERROR -4
37 #define SD_ERROR_CARD_ECC_FAIELD -5
41 #define SD_ERROR_ILLEGAL_COMMAND -6
45 #define SD_ERROR_COM_CRC_ERROR -7
49 #define SD_ERROR_LOCK_UNLOCK_FAILED -8
53 #define SD_ERROR_CARD_IS_LOCKED -9
57 #define SD_ERROR_WP_VIOLATION -10
61 #define SD_ERROR_ERASE_PARAM -11
65 #define SD_ERROR_ERASE_SEQ_ERROR -12
70 #define SD_ERROR_ERASE_LEN_ERROR -13
74 #define SD_ERROR_ADDRESS_ERROR -14
78 #define SD_ERROR_OUT_OF_RANGE -15
82 #define SD_ERROR_FUNCTION_NUMBER -16
100 #ifdef CONFIG_SD_MULTI
105 struct sd *(*sd_init)(uint32_t index,
struct sd_setting *settings);
109 int32_t (*
sd_setClock)(
struct sd *sd, uint64_t clock);
110 int32_t (*
sd_sendCommand)(
struct sd *sd, uint32_t command, uint32_t argument,
struct sd_response *response, TickType_t waittime);
111 int32_t (*
sd_write)(
struct sd *sd, uint32_t command, uint32_t argument,
size_t size, uint32_t *data, TickType_t waittime);
112 int32_t (*
sd_read)(
struct sd *sd, uint32_t command, uint32_t argument,
size_t size, uint32_t *data, TickType_t waittime);
114 int32_t (*
sd_writeISR)(
struct sd *sd, uint32_t command, uint32_t argument,
size_t size, uint32_t *data);
115 int32_t (*
sd_readISR)(
struct sd *sd, uint32_t command, uint32_t argument,
size_t size, uint32_t *data);
144 #ifdef CONFIG_INSTANCE_NAME
150 #ifdef CONFIG_SD_THREAD_SAVE
156 #ifdef CONFIG_SD_MULTI
160 const struct sd_ops *ops;
220 #ifndef CONFIG_SD_MULTI
339 int32_t
sd_write(
struct sd *sd, uint32_t command, uint32_t argument,
size_t size, uint32_t *data, TickType_t waittime);
382 int32_t
sd_read(
struct sd *sd, uint32_t command, uint32_t argument,
size_t size, uint32_t *data, TickType_t waittime);
465 int32_t
sd_writeISR(
struct sd *sd, uint32_t command, uint32_t argument,
size_t size, uint32_t *data);
508 int32_t
sd_readISR(
struct sd *sd, uint32_t command, uint32_t argument,
size_t size, uint32_t *data);
516 return p->ops->sd_init(index, settings);
518 inline int32_t
sd_deinit(
struct sd *sd) {
520 return p->ops->sd_deinit(sd);
524 return p->ops->sd_setBlockSize(sd, blockSize);
528 return p->ops->sd_setBusWide(sd, busWide);
530 int32_t
sd_setClock(
struct sd *sd, uint64_t clock) {
532 return p->ops->sd_setClock(sd, clock);
534 inline int32_t
sd_write(
struct sd *sd, uint32_t command, uint32_t argument,
size_t size, uint32_t *data, TickType_t waittime) {
536 return p->ops->sd_write(sd, command, argument, size, data, waittime);
538 inline int32_t
sd_read(
struct sd *sd, uint32_t command, uint32_t argument,
size_t size, uint32_t *data, TickType_t waittime) {
540 return p->ops->sd_read(sd, command, argument, size, data, waittime);
542 inline int32_t
sd_writeISR(
struct sd *sd, uint32_t command, uint32_t argument,
size_t size, uint32_t *data) {
544 return p->ops->sd_write(sd, command, argument, size, data);
546 inline int32_t
sd_readISR(
struct sd *sd, uint32_t command, uint32_t argument,
size_t size, uint32_t *data) {
548 return p->ops->sd_read(sd, command, argument, size, data);