#define HSMCI_CLK_DIV(RATE) ((CPU_FREQ / (RATE << 1)) - 1)
-#define HSMCI_ERROR_MASK (BV(HSMCI_SR_RINDE) | \
- BV(HSMCI_SR_RDIRE) | \
- BV(HSMCI_SR_RCRCE) | \
- BV(HSMCI_SR_RENDE) | \
- BV(HSMCI_SR_RTOE) | \
- BV(HSMCI_SR_DCRCE) | \
- BV(HSMCI_SR_DTOE) | \
- BV(HSMCI_SR_CSTOE) | \
- BV(HSMCI_SR_BLKOVRE) | \
- BV(HSMCI_SR_ACKRCVE))
-
#define HSMCI_RESP_ERROR_MASK (BV(HSMCI_SR_RINDE) | BV(HSMCI_SR_RDIRE) \
| BV(HSMCI_SR_RENDE)| BV(HSMCI_SR_RTOE))
cpu_relax(); \
} while (!(HSMCI_SR & BV(HSMCI_SR_RXRDY)))
-#define HSMCI_ERROR() (HSMCI_SR & HSMCI_ERROR_MASK)
-
#define HSMCI_HW_INIT() \
do { \
PIOA_PDR = BV(19) | BV(20) | BV(21) | BV(22) | BV(23) | BV(24); \
HSMCI_BLKR = blk_size << HSMCI_BLKR_BLKLEN_SHIFT;
}
-void hsmci_prgTxDMA(uint32_t *buf, size_t word_num, size_t blk_size)
+void hsmci_prgTxDMA(const uint32_t *buf, size_t word_num, size_t blk_size)
{
hsmci_setBlockSize(blk_size);