summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--firmware/target/arm/as3525/sd-as3525v2.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/firmware/target/arm/as3525/sd-as3525v2.c b/firmware/target/arm/as3525/sd-as3525v2.c
index 72a3631bb7..c547befa35 100644
--- a/firmware/target/arm/as3525/sd-as3525v2.c
+++ b/firmware/target/arm/as3525/sd-as3525v2.c
@@ -160,6 +160,13 @@ static void printf(const char *format, ...)
160 160
161 161
162#define MCI_FIFOTH SD_REG(0x4C) /* FIFO threshold */ 162#define MCI_FIFOTH SD_REG(0x4C) /* FIFO threshold */
163/* TX watermark : bits 11:0
164 * RX watermark : bits 27:16
165 * DMA MTRANS SIZE : bits 30:28
166 * bits 31, 15:12 : unused
167 */
168#define MCI_FIFOTH_MASK 0x8000f000
169
163#define MCI_CDETECT SD_REG(0x50) /* card detect */ 170#define MCI_CDETECT SD_REG(0x50) /* card detect */
164#define MCI_WRTPRT SD_REG(0x54) /* write protect */ 171#define MCI_WRTPRT SD_REG(0x54) /* write protect */
165#define MCI_GPIO SD_REG(0x58) 172#define MCI_GPIO SD_REG(0x58)
@@ -499,10 +506,10 @@ static void init_controller(void)
499 506
500 MCI_DEBNCE = 0xfffff; /* default value */ 507 MCI_DEBNCE = 0xfffff; /* default value */
501 508
502 MCI_FIFOTH = ~0x7fff0fff; 509 MCI_FIFOTH &= MCI_FIFOTH_MASK;
503 MCI_FIFOTH |= 0x503f0080; 510 MCI_FIFOTH |= 0x503f0080;
504 511
505 MCI_MASK = 0xffffffff & (~MCI_INT_ACD & ~MCI_INTCRDRET); 512 MCI_MASK = 0xffffffff & ~(MCI_INT_ACD|MCI_INT_CRDDET);
506} 513}
507 514
508int sd_init(void) 515int sd_init(void)
@@ -669,7 +676,7 @@ static int sd_transfer_sectors(unsigned long start, int count, void* buf, bool w
669 MCI_MASK = MCI_INT_CD|MCI_INT_DTO|MCI_INT_DCRC|MCI_INT_DRTO| \ 676 MCI_MASK = MCI_INT_CD|MCI_INT_DTO|MCI_INT_DCRC|MCI_INT_DRTO| \
670 MCI_INT_HTO|MCI_INT_FRUN|MCI_INT_HLE|MCI_INT_SBE|MCI_INT_EBE; 677 MCI_INT_HTO|MCI_INT_FRUN|MCI_INT_HLE|MCI_INT_SBE|MCI_INT_EBE;
671 678
672 MCI_FIFOTH &= ~0x7fff0fff; 679 MCI_FIFOTH &= MCI_FIFOTH_MASK;
673 MCI_FIFOTH |= 0x503f0080; 680 MCI_FIFOTH |= 0x503f0080;
674 681
675 682