- uint32_t rca;
- uint32_t status;
-} SDAddr;
-
-int sd_decode_csd(SDcsd *csd, uint32_t *resp, size_t len);
-void sd_dump_csd(SDcsd *csd);
-void sd_decode_cid(SDcid *cid, uint32_t *resp, size_t len);
-void sd_dump_cid(SDcid *cid);
-void sd_send_init(void);
-void sd_go_idle(void);
-int sd_send_if_cond(void);
-int sd_send_app_op_cond(void);
-int sd_get_cid(uint32_t *resp, size_t len);
-int sd_get_csd(uint32_t *resp, size_t len);
-int sd_app_status(uint32_t *resp, size_t len);
-int sd_send_relative_addr(uint32_t *resp, size_t len);
-void sd_decode_addr(SDAddr *addr, uint32_t *resp, size_t len);
-void sd_dump_addr(SDAddr *addr);
-#endif
+ uint8_t bus_width;
+ uint8_t card_type;
+ uint8_t speed_class;
+ uint8_t au_size;
+ uint8_t erase_size;
+} SdSSR;
+
+#define SD_START_DELAY 10
+#define SD_INIT_TIMEOUT ms_to_ticks(2000)
+#define SD_IDLE_RETRIES 4
+#define SD_DEFAULT_BLOCKLEN 512