altos: Delay while waking up SD card a bit
[fw/altos] / src / drivers / ao_sdcard.h
index be0ff1f3596d852677b931f1a36af39686f48f52..50b70c73fd24a1d63d2dc67e226fa34915586f21 100644 (file)
@@ -49,9 +49,14 @@ ao_sdcard_init(void);
 #define SDCARD_APP_SEND_OP_COMD                        41
 
 /* Status */
-#define SDCARD_STATUS_READY_STATE      0
-#define SDCARD_STATUS_IDLE_STATE       1
-#define SDCARD_STATUS_ILLEGAL_COMMAND  4
+#define SDCARD_STATUS_READY_STATE      0x00
+#define SDCARD_STATUS_IDLE_STATE       0x01
+#define SDCARD_STATUS_ERASE_RESET      0x02
+#define SDCARD_STATUS_ILLEGAL_COMMAND  0x04
+#define SDCARD_STATUS_COM_CRC_ERROR    0x08
+#define SDCARD_STATUS_ERASE_SEQ_ERROR  0x10
+#define SDCARD_STATUS_ADDRESS_ERROR    0x20
+#define SDCARD_STATUS_PARAMETER_ERROR  0x40
 #define SDCARD_STATUS_TIMEOUT          0xff
 
 #define SDCARD_DATA_START_BLOCK                0xfe
@@ -60,10 +65,11 @@ ao_sdcard_init(void);
 #define SDCARD_DATA_RES_MASK           0x1f
 #define SDCARD_DATA_RES_ACCEPTED       0x05
 
-#define SDCARD_CMD_TIMEOUT             100
-#define SDCARD_IDLE_WAIT               100
-#define SDCARD_BLOCK_TIMEOUT           100
-#define SDCARD_IDLE_TIMEOUT            10000
+#define SDCARD_CMD_TIMEOUT             AO_MS_TO_TICKS(20)
+#define SDCARD_BUSY_TIMEOUT            AO_MS_TO_TICKS(20)
+#define SDCARD_BLOCK_TIMEOUT           AO_MS_TO_TICKS(200)
+#define SDCARD_IDLE_RETRY              10
+#define SDCARD_OP_COND_RETRY           10
 
 enum ao_sdtype {
        ao_sdtype_unknown,