summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorweety <[email protected]>2013-04-02 20:42:11 +0800
committerweety <[email protected]>2013-04-02 20:42:11 +0800
commite7885df2f143a4e605b8798aeb34a89c240354d9 (patch)
treeaabdc74990790cd02a45d19d5bd3653a099a7c55
parent0594734d8deeb4082fb04f0ad904e39cf0b463d9 (diff)
add At91SAM9260 SDIO highspeed and SDIO IRQ capability, fixed compiling warnning
-rwxr-xr-xbsp/at91sam9260/at91_mci.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/bsp/at91sam9260/at91_mci.c b/bsp/at91sam9260/at91_mci.c
index b9c2611f36..39fd364f11 100755
--- a/bsp/at91sam9260/at91_mci.c
+++ b/bsp/at91sam9260/at91_mci.c
@@ -340,7 +340,7 @@ static void at91_mci_send_command(struct at91_mci *mci, struct rt_mmcsd_cmd *cmd
* Handle a read
*/
- mmu_invalidate_dcache(data->buf, data->blksize*data->blks);
+ mmu_invalidate_dcache((rt_uint32_t)data->buf, data->blksize*data->blks);
at91_mci_init_dma_read(mci);
ier = AT91_MCI_ENDRX /* | AT91_MCI_RXBUFF */;
}
@@ -367,14 +367,14 @@ static void at91_mci_send_command(struct at91_mci *mci, struct rt_mmcsd_cmd *cmd
}
rt_memset(mci->buf, 0, 12);
rt_memcpy(mci->buf, data->buf, length);
- mmu_clean_dcache(mci->buf, length);
+ mmu_clean_dcache((rt_uint32_t)mci->buf, length);
at91_mci_write(AT91_PDC_TPR, (rt_uint32_t)(mci->buf));
at91_mci_write(AT91_PDC_TCR, (data->blksize & 0x3) ?
length : length / 4);
}
else
{
- mmu_clean_dcache(data->buf, data->blksize*data->blks);
+ mmu_clean_dcache((rt_uint32_t)data->buf, data->blksize*data->blks);
at91_mci_write(AT91_PDC_TPR, (rt_uint32_t)(data->buf));
at91_mci_write(AT91_PDC_TCR, (data->blksize & 0x3) ?
length : length / 4);
@@ -848,7 +848,8 @@ rt_int32_t at91_mci_init(void)
host->freq_min = 375000;
host->freq_max = 25000000;
host->valid_ocr = VDD_32_33 | VDD_33_34;
- host->flags = MMCSD_BUSWIDTH_4 | MMCSD_MUTBLKWRITE;
+ host->flags = MMCSD_BUSWIDTH_4 | MMCSD_MUTBLKWRITE | \
+ MMCSD_SUP_HIGHSPEED | MMCSD_SUP_SDIO_IRQ;
host->max_seg_size = 65535;
host->max_dma_segs = 2;
host->max_blk_size = 512;