summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
a0595d9)
This just dumps info in trace mode about read and write commands
Signed-off-by: Keith Packard <keithp@keithp.com>
#define ao_sdcard_select() ao_gpio_set(AO_SDCARD_SPI_CS_PORT,AO_SDCARD_SPI_CS_PIN,AO_SDCARD_SPI_CS,0)
#define ao_sdcard_deselect() ao_gpio_set(AO_SDCARD_SPI_CS_PORT,AO_SDCARD_SPI_CS_PIN,AO_SDCARD_SPI_CS,1)
#define ao_sdcard_select() ao_gpio_set(AO_SDCARD_SPI_CS_PORT,AO_SDCARD_SPI_CS_PIN,AO_SDCARD_SPI_CS,0)
#define ao_sdcard_deselect() ao_gpio_set(AO_SDCARD_SPI_CS_PORT,AO_SDCARD_SPI_CS_PIN,AO_SDCARD_SPI_CS,1)
+/* Include SD card commands */
+/* Spew SD tracing */
+#define SDCARD_TRACE 0
+
static uint8_t initialized;
static uint8_t present;
static uint8_t mutex;
static uint8_t initialized;
static uint8_t present;
static uint8_t mutex;
#define ao_sdcard_lock() ao_mutex_get(&mutex)
#define ao_sdcard_unlock() ao_mutex_put(&mutex)
#define ao_sdcard_lock() ao_mutex_get(&mutex)
#define ao_sdcard_unlock() ao_mutex_put(&mutex)
#define DBG(...) printf(__VA_ARGS__)
#else
#define DBG(...)
#define DBG(...) printf(__VA_ARGS__)
#else
#define DBG(...)
ao_sdcard_unlock();
return 0;
}
ao_sdcard_unlock();
return 0;
}
+ DBG("read block %d\n", block);
if (sdtype != ao_sdtype_sd2block)
block <<= 9;
ao_sdcard_get();
if (sdtype != ao_sdtype_sd2block)
block <<= 9;
ao_sdcard_get();
ao_sdcard_deselect();
ao_sdcard_put();
ao_sdcard_unlock();
ao_sdcard_deselect();
ao_sdcard_put();
ao_sdcard_unlock();
+ DBG("read %s\n", ret == SDCARD_STATUS_READY_STATE ? "success" : "failure");
return ret == SDCARD_STATUS_READY_STATE;
}
return ret == SDCARD_STATUS_READY_STATE;
}
ao_sdcard_unlock();
return 0;
}
ao_sdcard_unlock();
return 0;
}
+ DBG("write block %d\n", block);
if (sdtype != ao_sdtype_sd2block)
block <<= 9;
ao_sdcard_get();
if (sdtype != ao_sdtype_sd2block)
block <<= 9;
ao_sdcard_get();
ao_sdcard_deselect();
ao_sdcard_put();
ao_sdcard_unlock();
ao_sdcard_deselect();
ao_sdcard_put();
ao_sdcard_unlock();
+ DBG("write %s\n", ret == SDCARD_STATUS_READY_STATE ? "success" : "failure");
return ret == SDCARD_STATUS_READY_STATE;
}
return ret == SDCARD_STATUS_READY_STATE;
}
#define SDCARD_CMD_TIMEOUT 100
#define SDCARD_IDLE_WAIT 100
#define SDCARD_BLOCK_TIMEOUT 100
#define SDCARD_CMD_TIMEOUT 100
#define SDCARD_IDLE_WAIT 100
#define SDCARD_BLOCK_TIMEOUT 100
-#define SDCARD_IDLE_TIMEOUT 1000
+#define SDCARD_IDLE_TIMEOUT 10000
enum ao_sdtype {
ao_sdtype_unknown,
enum ao_sdtype {
ao_sdtype_unknown,